# Recording rules that pre-compute the expensive expressions used by the
# alerting rules and dashboards in this category.
groups:
  - name: shop-recording
    interval: 30s
    rules:
      - record: service:http_requests:rate5m
        expr: sum by (service) (rate(http_requests_total[5m]))

      - record: service:http_errors:rate5m
        expr: sum by (service) (rate(http_requests_total{status=~"5.."}[5m]))

      - record: service:http_error_ratio:rate5m
        expr: service:http_errors:rate5m / service:http_requests:rate5m

      - record: service:latency_p99:5m
        expr: |
          histogram_quantile(
            0.99,
            sum by (le, service) (rate(http_request_duration_seconds_bucket[5m]))
          )
        labels:
          quantile: "0.99"

  - name: shop-recording-slow
    interval: 5m
    rules:
      - record: service:http_requests:increase1d
        expr: sum by (service) (increase(http_requests_total[1d]))
