Metrics Catalog (v3)

April 15, 2026 · View on GitHub

Prometheus metrics exported by Kuberhealthy v3. Metric names and labels are stable within a major version — update this catalog and the release notes when they change.

Common labels

  • check: HealthCheck name.
  • namespace: HealthCheck namespace.
  • status: label value is 1 for OK, 0 for failure (only on kuberhealthy_check). The metric value mirrors the status label value.
  • error: Serialized error string (optional; suppressed when KH_PROM_SUPPRESS_ERROR_LABEL=true).
  • severity, category, run_uuid: Optional extra labels emitted only when allowlisted via KH_PROM_LABEL_ALLOWLIST.
    • severity and category map from HealthCheck labels kuberhealthy.io/severity and kuberhealthy.io/category.
    • run_uuid maps to the in-flight run UUID and should be allowlisted only when needed.

Metrics

MetricTypeLabelsDescription
kuberhealthy_cluster_stategaugenoneCluster-wide OK status for all checks.
kuberhealthy_controller_leadergaugenone1 when this controller instance is the elected leader.
kuberhealthy_scheduler_loop_duration_secondsgaugenoneDuration of the most recent scheduling loop.
kuberhealthy_scheduler_due_checksgaugenoneNumber of checks due to run in the last scheduling loop.
kuberhealthy_reaper_last_sweep_duration_secondsgaugenoneDuration of the most recent reaper sweep.
kuberhealthy_reaper_deleted_pods_totalcounterreasonCount of checker pods deleted by the reaper (timeout, completed, failed, expired).
kuberhealthy_checkgaugecheck, namespace, status, error (optional), extra labelsHealth status for each check.
kuberhealthy_check_duration_secondsgaugecheck, namespace, extra labelsDuration of the most recent check run.
kuberhealthy_check_consecutive_failuresgaugecheck, namespace, extra labelsConsecutive failures for the check.
kuberhealthy_check_success_totalcountercheck, namespace, extra labelsTotal successful runs for the check.
kuberhealthy_check_failure_totalcountercheck, namespace, extra labelsTotal failed runs for the check.
kuberhealthy_check_seconds_since_successgaugecheck, namespace, extra labelsSeconds since the last OK report (-1 when unknown).
kuberhealthy_check_run_duration_seconds_buckethistogramleDistribution of last run durations across checks.
kuberhealthy_check_run_duration_seconds_sumhistogramnoneSum of last run durations across checks.
kuberhealthy_check_run_duration_seconds_counthistogramnoneCount of checks included in the histogram.

Notes

  • Extra labels are drawn from HealthCheck labels and run metadata when allowlisted.
  • Avoid allowlisting high-cardinality labels (like run_uuid) in large environments.