Browse Source

Simpler init of OTel gauges

DarthSim 2 years ago
parent
commit
6ae4dcd941
1 changed files with 5 additions and 11 deletions
  1. 5 11
      metrics/otel/otel.go

+ 5 - 11
metrics/otel/otel.go

@@ -404,25 +404,19 @@ func AddGaugeFunc(name, desc, u string, f GaugeFunc) {
 		return
 		return
 	}
 	}
 
 
-	gauge, err := meter.Float64ObservableGauge(
+	_, err := meter.Float64ObservableGauge(
 		name,
 		name,
 		instrument.WithUnit(u),
 		instrument.WithUnit(u),
 		instrument.WithDescription(desc),
 		instrument.WithDescription(desc),
+		instrument.WithFloat64Callback(func(_ context.Context, obsrv instrument.Float64Observer) error {
+			obsrv.Observe(f())
+			return nil
+		}),
 	)
 	)
 	if err != nil {
 	if err != nil {
 		logrus.Warnf("Can't add %s gauge to OpenTelemetry: %s", name, err)
 		logrus.Warnf("Can't add %s gauge to OpenTelemetry: %s", name, err)
 		return
 		return
 	}
 	}
-
-	if _, err = meter.RegisterCallback(
-		func(ctx context.Context, o metric.Observer) error {
-			o.ObserveFloat64(gauge, f())
-			return nil
-		},
-		gauge,
-	); err != nil {
-		logrus.Warnf("Can't add %s gauge to OpenTelemetry: %s", name, err)
-	}
 }
 }
 
 
 type errorHandler struct {
 type errorHandler struct {