Skip to content

ADR-0601: Operator metrics — no Prometheus export sink

Operator metrics live on /metrics; prometheus is not a KollectSink.type.

Theme: 06 · Observability & ops · Status: Current

Context

Phase 4 may add kube-state-metrics-style custom resource metrics. Phase 1 ships operator metrics per ADR-0602. Inventory export uses Git, object storage, Postgres, and Kafka sinks (ADR-0402) — not a KollectSink of type prometheus.

Decision

  1. Operator metrics (Phase 1): expose cardinality-safe gauges and histograms on the controller /metrics endpoint — including kollect_collect_items_total, kollect_collected_objects, kollect_export_duration_seconds, and reconcile counters.
  2. No Prometheus export sink: prometheus is not a valid KollectSink.spec.type. Do not register a prometheus sink in the export registry; avoids confusion with scrape endpoints.
  3. KSM-style domain metrics and target/inventory scope: Phase 4 spike landed on operator /metrics (ADR-0304); richer target/inventory labels and metricsScope are Parked in ADR-0604. Hub merge metrics were never shipped (hub tier removed v0.3). Scalar attribute gauges remain RFC-only (Prometheus attribute metrics).

Consequences

  • Portals scrape operator /metrics for health and export latency; inventory payloads go to configured sinks.
  • Helm chart optionally ships ServiceMonitor + PrometheusRule when Prometheus Operator is present (see operator manual metrics).
  • Phase 4 work must extend this ADR rather than invent a parallel metrics model.

See also