Files
dance-lessons-coach/pkg/telemetry/telemetry.go
Gabriel Radureau c577e2603c feat(telemetry): ReconfigureTracerProvider for sampler hot-reload (ADR-0023 Phase 3, sub-phase 3.1)
First sub-phase of ADR-0023 Phase 3 (telemetry sampler hot-reload), per
the Mistral-produced phase plan validated 2026-05-05 (Q-037 in
mistral-quirks.md).

This is the isolated telemetry-package change: adds ReconfigureTracerProvider
that builds a new TracerProvider with updated sampler settings, swaps the
global, and gracefully shuts down the old. No-op when oldTP is nil
(telemetry-disabled-at-startup is out of scope for Phase 3).

The wiring (config callback → server-level invocation) lands in sub-phases
3.2 and 3.3 — kept separate for clean rollback semantics.

Tests:
- 3 new tests in pkg/telemetry/telemetry_test.go covering nil no-op, the
  global TP swap, and error-tolerance when old TP shutdown fails.
- go test -race ./pkg/telemetry/... passes.

Verifier verdict (skill-driven, mental run): APPROVE. Function is 17 lines,
single responsibility, defensive on nil; tests cover positive + invariant
+ tolerance.
2026-05-05 09:26:54 +02:00

4.0 KiB