ObservaStack

rules/recording/use.yml

groups:
  - name: use
    rules:
      - record: instance:node_cpu_utilisation:rate5m
        expr: 1 - avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m]))
      # Catalog names are snake_case. promtool check metrics rejects
      # node_exporter's camelCase MemAvailable / MemTotal spellings.
      - record: instance:node_memory_utilisation:ratio
        expr: 1 - (node_memory_available_bytes / node_memory_total_bytes)
      - record: instance:node_filesystem_avail:ratio
        expr: |
          node_filesystem_avail_bytes{fstype!~"tmpfs|overlay"}
          /
          node_filesystem_size_bytes{fstype!~"tmpfs|overlay"}