From e16881b7c87a3666c68d668969f947ed3442cc59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=A4fer?= Date: Wed, 8 Oct 2025 01:09:18 +0200 Subject: [PATCH] fix(sonar): SetObservableCallback uses unregister stopper instead of empty function to satisfy S1186 --- internal/telemetry/metrics.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/internal/telemetry/metrics.go b/internal/telemetry/metrics.go index e29c166..c6158fe 100644 --- a/internal/telemetry/metrics.go +++ b/internal/telemetry/metrics.go @@ -207,10 +207,14 @@ var ( // }) func SetObservableCallback(cb func(context.Context, metric.Observer) error) { obsOnce.Do(func() { - if _, e := meter.RegisterCallback(cb, mSiteOnline, mSiteLastHeartbeat, mTunnelSessions); e != nil { + reg, e := meter.RegisterCallback(cb, mSiteOnline, mSiteLastHeartbeat, mTunnelSessions) + if e != nil { otel.Handle(e) + obsStopper = func() {} + return } - obsStopper = func() { /* no-op; otel callbacks are unregistered when provider shuts down */ } + // Provide a functional stopper mirroring proxy/build-info behavior + obsStopper = func() { _ = reg.Unregister() } }) }