Task · CXO-0045

Panels, naming checks and documentation for every metric this wave adds

Description

The dashboard generator is a hard gate, not a nicety. just check runs dashboard-check, which regenerates dashboards/v2/.metrics_from_code.txt from every Metric constant in internal/attr/names.go and compares it byte for byte, then runs dashboards/v2/generate.py and compares the generated dashboard JSON. generate.py itself fails with “N metric(s) have no panel” when a declared metric has no panel, and it enforces the same for Loki record types and span names.

So every new Metric constant breaks the repository gate until a panel exists for it. That makes generate.py a single append-only registry every metric-adding change must touch, and dashboards/v2/.metrics_from_code.txt and dashboards/v2/codexlb2otel-full.json generated artifacts that must be regenerated exactly once, at the end, rather than by each change in turn.

This task owns that pass for the whole wave. It is scheduled last and depends on every metric-adding task, taking their frozen metric names as its input.

Documentation that is stale as of 2026-09-12 and belongs here:

Acceptance Criteria

Definition of Done

Implementation Plan

  1. Consume the frozen metric registry after wave 0.
  2. Add one panel per new metric and update operations and role documentation.
  3. Regenerate artifacts once and validate naming, dashboard coverage and links.

Final Summary

Added panels for all 18 Wave 4 metrics, regenerated dashboard artifacts once, updated operations and role documentation, and passed dashboard naming, coverage, link, and integrated checks.

View the source file on GitHub