Skip to content
Last9 Last9

Calculate usage patterns and data volume in Prometheus

Sample PromQL queries to understand ingestion rate, read query rate and total time series

Calculating Ingestion Rate

This query will calculate the per-minute ingestion rate by averaging the per-second ingestion rate over the past minute, as measured by the prometheus_tsdb_head_samples_appended_total metric. The result will be a single value representing the average number of samples ingested per minute over the past minute.

rate(prometheus_tsdb_head_samples_appended_total[1m]) * 60

Calculating Read Query Rate

This query will calculate the per-minute query rate by averaging the per-second query rate over the past minute, as measured by the prometheus_http_requests_total metric for GET requests to the /api/v1/query endpoint. This endpoint is used for executing queries against the Prometheus database, so this metric represents the number of read queries executed by the server.

sum by (handler) (rate(prometheus_http_requests_total{handler="/api/v1/query"}[1m]) * 60)

Calculating Total Time Series

This query will count the number of distinct time series in the database, regardless of the metric or label values. The regular expression ”.+” matches all series names, so this query effectively counts all series.

count({__name__=~".+"})