---
title: Metrics Reference
description: Prometheus metrics exposed by fleet-management-operator, their labels, and histogram bucket boundaries.
---

<!--
Auto-generated by hack/docgen. Do not edit by hand.
Run `make docs` after touching prometheus.New* calls in pkg/fleetclient/metrics.go
or internal/controller/metrics.go.
-->

# Metrics Reference

The operator exposes Prometheus metrics on the manager binary's metrics
endpoint (defaults to `:8443` HTTPS or `:8080` HTTP, see `--metrics-bind-address`
in [flags.md](../flags.md)). All metric names are stable across patch releases;
new labels may be added.

Histogram bucket boundaries are tuned to the operator's 30s HTTP timeout —
anything in the 20-30s range indicates rate-limiter saturation or upstream
slowness, both of which warrant paging.


## Fleet API client

Latency, error rate, and rate-limiter saturation for outbound calls to the Fleet Management API. Use these to alert on Fleet API regressions.

| Metric | Kind | Labels | Buckets | Description | Source |
| --- | --- | --- | --- | --- | --- |
| `fleet_api_errors_total` | CounterVec | `operation`, `status` | — | Total number of Fleet Management API errors. | [pkg/fleetclient/metrics.go:49](https://github.com/rknightion/fleet-management-operator/blob/main/pkg/fleetclient/metrics.go#L49) |
| `fleet_api_rate_limiter_wait_duration_seconds` | Histogram | — | `0.005, 0.025, 0.1, 0.5, 1, 2, 5, 10, 20, 30` | Time spent waiting for the Fleet Management API rate limiter. | [pkg/fleetclient/metrics.go:60](https://github.com/rknightion/fleet-management-operator/blob/main/pkg/fleetclient/metrics.go#L60) |
| `fleet_api_request_duration_seconds` | HistogramVec | `operation`, `status` | `0.005, 0.025, 0.1, 0.5, 1, 2, 5, 10, 20, 30` | Duration of Fleet Management API requests in seconds. | [pkg/fleetclient/metrics.go:34](https://github.com/rknightion/fleet-management-operator/blob/main/pkg/fleetclient/metrics.go#L34) |
| `fleet_api_requests_total` | CounterVec | `operation` | — | Total number of Fleet Management API requests. | [pkg/fleetclient/metrics.go:42](https://github.com/rknightion/fleet-management-operator/blob/main/pkg/fleetclient/metrics.go#L42) |

## Controller reconciliation

Per-CRD reconcile outcome counters and gauges that track owned attributes / discovered collectors. Use these to alert on reconciliation health.

| Metric | Kind | Labels | Buckets | Description | Source |
| --- | --- | --- | --- | --- | --- |
| `fleet_discovery_list_collectors_result_size` | GaugeVec | `namespace`, `name` | — | Number of collectors returned by the last ListCollectors call. | [internal/controller/metrics.go:82](https://github.com/rknightion/fleet-management-operator/blob/main/internal/controller/metrics.go#L82) |
| `fleet_external_sync_owned_keys` | GaugeVec | `namespace`, `name` | — | Number of attribute keys currently owned by an ExternalAttributeSync CR. | [internal/controller/metrics.go:72](https://github.com/rknightion/fleet-management-operator/blob/main/internal/controller/metrics.go#L72) |
| `fleet_pipeline_name_migrations_total` | Counter | — | — | Total Fleet pipeline name-scope migrations (old pipeline deleted and recreated under the scoped name). | [internal/controller/metrics.go:92](https://github.com/rknightion/fleet-management-operator/blob/main/internal/controller/metrics.go#L92) |
| `fleet_resource_sync_age_seconds` | HistogramVec | `kind` | `0, 60, 300, 600, 1800, 3600, 7200` | Age in seconds since last successful sync, sampled at each reconcile. | [internal/controller/metrics.go:61](https://github.com/rknightion/fleet-management-operator/blob/main/internal/controller/metrics.go#L61) |
| `fleet_resource_synced_total` | CounterVec | `kind`, `reason` | — | Total reconciliation outcomes by resource kind and reason. | [internal/controller/metrics.go:50](https://github.com/rknightion/fleet-management-operator/blob/main/internal/controller/metrics.go#L50) |

