diff --git a/src/internal/events/adot_sdk_client.go b/src/internal/events/adot_sdk_client.go index 2419f6f1f..b93208772 100644 --- a/src/internal/events/adot_sdk_client.go +++ b/src/internal/events/adot_sdk_client.go @@ -20,7 +20,6 @@ import ( var Ctr metric.Int64Counter var AsyncCtr metric.Int64ObservableCounter -var RLGauge metric.Int64ObservableCounter var token int64 @@ -76,12 +75,19 @@ func NewCollector(mp metric.MeterProvider) { } -func RegisterGauge(ctx context.Context, name string, cb func(_ context.Context, o metric.Observer) error) { +func CreateGauge(ctx context.Context, name string) metric.Int64ObservableCounter { RLGauge, _ := globalMeter.Int64ObservableCounter(name) + return RLGauge +} + +func RegisterGauge( + ctx context.Context, + rlg metric.Int64ObservableCounter, + cb func(_ context.Context, o metric.Observer) error) { _, err := globalMeter.RegisterCallback( cb, - RLGauge, + rlg, ) if err != nil { diff --git a/src/internal/m365/graph/concurrency_middleware.go b/src/internal/m365/graph/concurrency_middleware.go index e1109e51d..1f3cf4b57 100644 --- a/src/internal/m365/graph/concurrency_middleware.go +++ b/src/internal/m365/graph/concurrency_middleware.go @@ -165,14 +165,15 @@ var token int64 = 0 func RegisterRLMetrics(ctx context.Context) { twonce.Do(func() { + rlg := events.CreateGauge(ctx, events.RLTokens) cb := func(ctx context.Context, o metric.Observer) error { token += int64(ctxLimiter(ctx).Tokens()) - o.ObserveInt64(events.RLGauge, token) + o.ObserveInt64(rlg, token) return nil } - events.RegisterGauge(ctx, events.RLTokens, cb) + events.RegisterGauge(ctx, rlg, cb) }) }