Closes ADR-0023 hot-reload Phase 3 (telemetry sampler). Last sub-phase of the 3-PR sequence: 3.1 = ReconfigureTracerProvider in pkg/telemetry (PR #45), 3.2 = sampler callback plumbing in pkg/config (in main via PR #47 race-merge — see Q-038 in mistral-quirks.md), 3.3 = wire it in pkg/server.Run (this PR). Implementation: - Capture telemetrySetup pointer (was a local) so it outlives initial setup and the sampler callback can mutate it. - After WatchAndApply registration, register a callback that: 1. Mutates SamplerType/SamplerRatio on the captured Setup 2. Calls ReconfigureTracerProvider (which builds the new TP, swaps the global, drains the old) 3. Updates s.tracerProvider so graceful shutdown still drains the correct provider. - Callback only registered if telemetrySetup != nil (telemetry was successfully initialized at startup; hot-reloading telemetry-on is out of scope per ADR-0023). ADR-0023 status updated: Phase 1+2+3 Implemented. api.v2_enabled remains explicitly deferred (router refactor needed; separate ADR). Race detector clean on touched packages. Full BDD suite green.
25 KiB
25 KiB