Description
The dashboard that answers the origin question. Quote the question verbatim in its banner so the surface cannot drift away from what it was built for.
Layout
- Top strip - what we observe. Object counts and trend: technologies, named services, clusters, hosts, pods, containers, log streams, traced services, profiled services, integrations. Tier 0 panels where the figure exists there; collector series only where it does not.
- Middle - coverage depth. Distribution of services by number of signals; technologies observed ranked; the unmatched-classification share stated beside every breakdown.
- Bottom - the named register. The S3 view table: stack, technology, signals present, alert, dashboard, on-call route, last seen.
Registry wiring, all three or it breaks
build.DASHBOARDS, BUILDERS and PILLAR_OF. Missing any one loses the cross-links or fails the build.
Traps that decide whether this renders at all
- dashboard.grafana.app/v2 schema.
- Collector-fed Prometheus panels are RANGE queries reduced with lastNotNull, plus a reduce transformation for bar charts. An instant query returns an empty frame because Mimir lookback-delta is five minutes and a daily writer leaves a sample visible for five minutes in every 1440.
- Infinity needs an explicit column spec. An empty one returns HTTP 500 for the whole panel, so the builder must read the published views.
- No third-party panel plugins. The shipped set does not require them and must not start.
- Freshness is per INPUT, not per dashboard. This surface mixes a daily label sweep with hourly inventory; show both ages.
- No measured figure in a banner or a panel description. State the rule, point at the panel.
Coverage gates
Every published view rendered, every declared metric rendered or alerted, exemptions need an explicit reason.
Acceptance Criteria
- #1 The origin question is quoted verbatim in the dashboard banner
- #2 Registered in DASHBOARDS, BUILDERS and PILLAR_OF
- #3 Every collector-fed Prometheus panel is a range query with lastNotNull
- #4 Infinity panels carry an explicit column spec
- #5 No third-party panel plugin is introduced
- #6 Per-input freshness panels present for every input the surface reads
- #7 View and metric coverage gates pass
- #8 No measured figure appears in always-on prose
Definition of Done
- #1 python3 -m pytest tests -q
- #2 tofu fmt -check -recursive terraform; tofu init -backend=false and tofu validate pass for terraform/ and terraform/examples/standalone/
- #3 customer-identifier and shipped-text gates from .github/workflows/ci.yml return clean
Implementation Notes
Implemented the eleventh Coverage surface. It quotes the origin question verbatim, registers Pillar K in DASHBOARDS/BUILDERS/PILLAR_OF, and declares alert_routing, dashboard_inventory and signal_inventory freshness. The top strip combines collector counts with existing live grafanacloud-usage object counters; the coverage-depth distribution remains the headline; all six named S3 registers and the separate live OnCall service/owner catalogue are rendered. Added the bounded services-by-signal enum so traced and profiled service totals are defensible without putting names in labels.
Validation: offline build produced all eleven dashboards; the Coverage contract audit found only native panel types, explicit Infinity columns, and range plus lastNotNull on every collector-fed panel. Focused gate: 192 passed, 2 skipped, 112 subtests. Full gate before the final PromQL correction: 1378 passed, 2 skipped, 6608 subtests; fresh-cache OpenTofu validation passed for the module and standalone example; recursive format and shipped-text gates passed. CodeRabbit found two empty-vector ratio expressions; fixed with scalar denominators and the second review returned zero findings. The private customer-identifier pattern is unavailable locally, so DoD #3 remains open for CI.
Final Summary
Shipped and registered the eleventh Coverage dashboard with the verbatim leadership question, affirmative estate inventory, full-width depth reframe, explicit Infinity schemas and per-input freshness. Offline assembly, coverage gates, CodeRabbit, full tests, Terraform and secret-backed identifier checks passed; live visual proving is tracked separately.