A recording rule is a Prometheus rule that precomputes a frequently used or expensive expression and stores its result as a new time series. It trades storage space for faster queries. section 4.2.1
A recording rule typically specifies:
- A rule group and evaluation interval. section 4.2.1
- A record name for the resulting time series. section 4.2.1
- A PromQL expression, such as an error-rate calculation over API request counters. section 4.2.1
API server-side error rate
The rule group evaluates every five minutes and records the ratio of 5xx request rates to total request rates as http_status_5xx:api_requests_total:ratio_rate_5m. section 4.2.1
- name: api_invocation_server_error #1
interval: 5m #2
rules:
- record: http_status_5xx:api_requests_total:ratio_rate_5m #3
expr: #4
sum(rate(api_requests_total{code=~"5.."}[5m]))
/
sum(rate(api_requests_total[5m]))
Inspect the complete Prometheus rule for the API error-rate example. section 4.2.1
Recording rules can also be generated by Pyrra from ServiceLevelObjective definitions, turning SLO and SLI configuration into Prometheus rules for evaluation and display. section 10.2.2

