What is PromQL?
PromQL is the Prometheus Query Language — used in the Prometheus UI, Grafana panels, and alert rules.
Essential functions
rate() — per-second growth of a counter
rate(http_requests_total[1m])
sum by (route) (rate(http_requests_total[1m]))
sum by (status_code) (rate(http_requests_total[5m]))Use rate() on counters over a range window.
increase() — total growth in a window
increase(http_requests_total[5m])Answers “how many?” not “how fast?”.
avg() / sum()
avg(http_requests_in_flight)
sum(rate(http_requests_total[1m]))Histogram average latency
Histograms expose _bucket, _sum, and _count:
rate(http_request_duration_seconds_sum[1m])
/
rate(http_request_duration_seconds_count[1m])Host metrics (Node Exporter)
# CPU (example pattern — tune for your exporter version)
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100
node_filesystem_avail_bytes{mountpoint="/"} Practice in Prometheus UI
- Open
http://<monitor>:9090→ Graph - Paste a query → Execute
- Switch between Table and Graph
Start every dashboard panel from a working PromQL query in the Prometheus UI, then paste it into Grafana.