diff --git a/CLAUDE.md b/CLAUDE.md index 54f4b5d..cb4968e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -85,10 +85,12 @@ at one point in time and the user may have since extended them. `trace[_-]?id["=: ]+([a-fA-F0-9]+)`. Logs must carry **lowercase `trace_id`**. OpenTelemetry's logging auto-instrumentation emits `otelTraceID`, which does not match. Exemplar labels must also be `trace_id`. The diagram names this outright: - "Correlation key: trace_id / exemplars." **Known, unresolved:** Tempo's - metrics-generator labels its exemplars `traceID` (verified live), which the - provisioned `exemplarTraceIdDestinations: name: trace_id` does not match — so - span-metric exemplars don't link to Tempo yet. The user decides the fix. + "Correlation key: trace_id / exemplars." Tempo's metrics-generator labels + its exemplars `trace_id` via `trace_id_label_name` in `k8s/tempo/tempo.yml` + (verified live 2026-10-24); its default is `traceID` (the docs wrongly say + `trace_id`), which the provisioned `exemplarTraceIdDestinations: name: + trace_id` does not match. Exemplar trace IDs drop leading zeros (31 hex + chars is valid); Tempo's lookup pads them. 5. **There is no dashboard provisioning in the platform** — datasources only. Dashboards-as-code is the user's deliverable and belongs in `k8s/grafana/`, so that `kubectl apply -k k8s/` rebuilds them.