Description
The curated half of the asset register. Registry A is Grafana own integration label - discovered, not maintained, and already covered by Phase 1. Registry B is this task: everything Alloy and k8s-monitoring scrape directly, which sets no integration label and is most cloud-native infrastructure.
Match sentinels, never prefixes
A first-token metric-name prefix classifies confidently wrong. Measured across six sampled stacks (4,065 distinct names, 24h window), the largest prefixes included node, go, prometheus, apiserver, container, process, rest and cluster - all generic. Use one unambiguous sentinel metric name per technology.
Seed set verified present in a live estate, from the same sample: kube_pod_info, node_uname_info, container_cpu_usage_seconds_total, pg_up, coredns_build_info, karpenter_nodes_created_total, alloy_build_info, prometheus_build_info, aws CloudWatch namespaces.
Seed set the sample proves is NEEDED and a generic cloud-native list would have missed entirely - these are the commercially interesting half of that estate:
| Prefix seen | Technology | Why it matters |
|---|---|---|
| slurm | Slurm workload manager | HPC scheduling |
| weka | WEKA parallel filesystem | HPC storage |
| DCGM, nvidia | NVIDIA DCGM exporter | GPU fleet under observation |
| ondemand | Open OnDemand | HPC user portal |
| akuity | Akuity managed ArgoCD | platform tooling |
| nomad | HashiCorp Nomad | non-k8s orchestration |
| cnpg | CloudNativePG | managed Postgres on k8s |
| vm | VictoriaMetrics | competing TSDB in the estate |
| gitlab, github, gha | CI platforms | delivery pipeline observed |
| probe | blackbox exporter | endpoint checks |
Slurm plus WEKA plus DCGM plus Open OnDemand together describe an HPC and AI research-computing estate under observation. That is the strongest available material for the upside half of the origin question, and no generic registry would have found it.
Rules
- A data file with a test, not code. The test asserts every entry has a sentinel, no two entries claim the same sentinel, and the fixture estate classifies as expected.
- Versioned like RUBRIC_VERSION so a registry edit is visible rather than silently reclassifying history.
- The unmatched share is published alongside every classification. Count the metric names that matched no entry and render it. A panel that hides the remainder claims a completeness it does not have - same rule as the Assistant uncategorised remainder.
- Seed the registry iteratively FROM the live estate unmatched list. Do not attempt a complete a-priori vocabulary.
- The registry is a fixed vocabulary; which entries are PRESENT is discovered every run. That distinction is what keeps the golden rule intact.
Acceptance Criteria
- #1 Registry is a versioned data file with a test asserting sentinel uniqueness and unambiguity
- #2 Classification publishes matched and unmatched metric-name counts
- #3 A registry edit changes the version and is visible on the dashboard
- #4 Seed set covers the HPC/GPU technologies named above, not only generic cloud-native
- #5 No registry entry is a bare first-token prefix
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 Plan
- Add a versioned technology registry data file whose default matcher is one exact sentinel metric per technology.
- Add the user-approved Akuity exception as a narrowly anchored regex over invariant metric structure, containing no deployment-specific segment.
- Implement deterministic classification that reports present technologies plus total, matched, and unmatched metric-name counts and refuses ambiguous matches.
- Add an artifact-reading synthetic contract test for schema, exact-sentinel uniqueness, pattern safety, HPC/GPU coverage, version changes, and unmatched accounting.
- Run the full task gate, review, commit, and push; leave dashboard-visibility acceptance open for the GCI-0008.06 wiring if it cannot be objectively rendered in this independent slice.
Plan correction after review: implement Akuity matching as a linear prefix/suffix pattern object, not a raw regular expression.
Implementation Notes
User decision: Akuity may use prefix/pattern matching because its observed metric names embed deployment-specific segments; all stable technologies remain exact-sentinel matched.
Implemented a versioned JSON registry and deterministic classifier. Exact sentinels cover the stable technologies; Akuity uses the user-approved linear prefix/suffix matcher with no deployment-specific segment. CodeRabbit major finding fixed by removing raw regex execution; minor malformed-artifact finding also fixed. Validation: 12 focused tests plus 2 subtests; full suite 1356 passed, 2 skipped, 6572 subtests; OpenTofu module and standalone validations, formatting, generated budget and shipped-text gate clean. Acceptance criterion 3 remains for GCI-0008.06 dashboard wiring; DoD 3 awaits the queued secret-backed CI identifier scan.
Final Summary
Shipped the versioned sentinel technology registry with deterministic exact matching, the bounded Akuity pattern exception, HPC/GPU coverage and explicit unmatched accounting. Pillar K now renders the registry version and classification evidence; full gates and the secret-backed identifier scan passed.