PromQL cheat sheet: common queries with examples
Ready-made PromQL expressions for everyday monitoring tasks: rate on counters, aggregations, quantiles from histograms, top-N and alert starters. Copy and adapt them to your own metrics.
Selectors and matchers
http_requests_total{job="api", code=~"5.."}=exact match,!=negation=~regex match,!~regex negation
Rate on counters
sum(rate(http_requests_total[5m])) by (code)rate() is for counters (monotonic). The [5m] window must cover at least 4 scrapes.
Aggregations
avg by (instance) (node_load1)
topk(5, sum by (pod) (container_memory_working_set_bytes))Quantiles from histograms
histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))Group by le only inside histogram_quantile.
Error rate
sum(rate(http_requests_total{code=~"5.."}[5m]))
/
sum(rate(http_requests_total[5m]))Alert starters
# Host is down
up{job="node"} == 0
# CPU above 90% for five minutes
avg by (instance) (rate(node_cpu_seconds_total{mode!="idle"}[5m])) > 0.9
# Disk will fill up soon
predict_linear(node_filesystem_avail_bytes[6h], 4*3600) < 0Tips
increase(x[1h])— total counter growth over an hourirate()for snappy graphs,rate()for alerts- Filter by labels first, aggregate second — cheaper on cardinality