Files
Luca Cominardi a343115707 ci: track metrics inventory and fail when it is out of date (#6935)
* ci: track metrics inventory and warn on removed metrics

- Generate the metrics inventory as YAML (module -> metric -> kind,
  description) and commit it in quickwit-metrics-inventory/metrics.yaml.
- Build the inventory with --all-features so feature-gated metrics
  (e.g. PostgreSQL metastore) are included.
- Add 'make metrics-inventory' to regenerate the inventory.
- Add an advisory CI workflow that diffs the generated inventory against
  the committed one and warns about metrics removed relative to the base
  revision. It never fails the build.

* ci: fail when the metrics inventory is out of date

Make the metrics inventory check blocking: the job fails if the generated
inventory differs from the committed one, asks to run
'make metrics-inventory', and lists removed metrics with a reminder to
identify their users, assess impact, and communicate the removal.

Paths are filtered at the step level so the job always reports a status
and can be used as a required check.

* ci: classify metrics inventory changes

Move the inventory comparison to scripts/check.sh and classify changes:
added metrics and description changes only require regenerating the
inventory, while removed or renamed metrics, label changes, and type
changes are listed as requiring attention (identify users, assess impact,
communicate the change).

* ci: simplify metrics inventory check

Parse the inventory with yq instead of regexes, and flag any committed
(kind, name+labels) pair that is no longer generated: this covers removed,
renamed, relabeled, and retyped metrics, while additions and description
changes only require regenerating the inventory.

* ci: always print the metrics inventory report to stdout

* metrics-inventory: key the inventory by metric name

Sort metrics alphabetically by name, record the declaring module in a
module field, and list static labels in a separate labels field.
Generation fails if a metric name is declared more than once, instead of
silently dropping one of the declarations.

* ci: always check the metrics inventory on manual runs

On the default branch, paths-filter only looks at the last commit, so a
manual run could skip every step and pass without checking anything.

* metrics-inventory: address review feedback
2026-10-26 19:22:23 +00:00
..