Metric compatibility matrix

This reference explains how to use the generated metric compatibility matrix. Use it to see which captured OpenBao fixture profiles expose each contracted metric, source prefix, metric type, and label set.

Matrix artifact

The generated matrix lives at Metric compatibility matrix . Regenerate it with make generate after changing metric contracts or fixture captures.

The matrix is derived from OpenBao core metrics and the captured fixtures under fixtures/captured/. It is not a hand-authored support promise for every OpenBao deployment shape.

How to read coverage

FieldMeaning
OpenBao versionVersion declared by the metric contract.
ProfileCaptured fixture profile, such as prefix fixtures or HA/Raft node fixtures.
Profile classContracted fixture role, such as prefix smoke, HA/Raft active, HA/Raft standby, or HA/Raft read replica.
PrefixRaw source prefix used by the fixture, such as vault or openbao.
Metric IDStable contract identifier used by this repository.
Docs metricUpstream OpenBao metric name from documentation-style notation.
Source metricPrometheus exposition name expected in that fixture.
ExpectationContract expectation for that metric in that fixture profile.
Statusobserved means the fixture contains the metric. missing-required means a required metric was absent. optional-missing means an optional metric was absent. not-applicable means the profile is not expected to emit the metric. missing-unclassified means the contract has not classified the absence yet.
TypePrometheus metric family type observed in the fixture.
LabelsLabel names observed in the fixture. Label values are omitted.
RequiredWhether contract verification requires the metric in prefix fixtures.
OverviewWhether the metric contributes to the overview dashboard layer.
NotesContract notes and validation caveats.

Evidence limits

An observed metric proves fixture coverage for that profile. It does not prove that every OpenBao deployment exposes the metric with the same label set under all configurations.

An optional-missing metric does not prove that OpenBao lacks the signal. Usage gauges, feature-specific metrics, and route-derived metrics depend on workload, enabled features, scrape timing, and telemetry configuration.

Treat missing-required and missing-unclassified rows as coverage gaps to resolve in the contract, fixtures, or generator. Treat not-applicable as an explicit topology boundary, not as a fixture failure.

Use label names as compatibility evidence, not as permission to create high-cardinality labels. Keep paths, request IDs, token accessors, entity IDs, and client addresses out of Prometheus labels.