Skip to main content
SRE

Prometheus

Recording Rules

Pre-computed expressions stored as new time series to speed up dashboards and alerts.

recording-rules.yml
groups:
  - name: node_recording_rules
    interval: 1m
    rules:
      # CPU usage averaged across all cores
      - record: instance:node_cpu_utilisation:rate5m
        expr: |
          1 - avg without(cpu, mode) (
            rate(node_cpu_seconds_total{mode="idle"}[5m])
          )

      # Memory utilisation
      - record: instance:node_memory_utilisation:ratio
        expr: |
          1 - (
            node_memory_MemAvailable_bytes /
            node_memory_MemTotal_bytes
          )

      # Disk I/O utilisation
      - record: instance:node_disk_utilisation:rate5m
        expr: |
          max without(device) (
            rate(node_disk_io_time_seconds_total[5m])
          )

      # Network receive bytes per second
      - record: instance:node_network_receive_bytes:rate5m
        expr: |
          sum without(device) (
            rate(node_network_receive_bytes_total{device!~"lo|veth.+|docker.+|flannel.+|cali.+|cbr.+"}[5m])
          )