98
}
99
100
>
func (omp *otelMetricsHandler) getGaugeAdapter(gauge string) (*gaugeAdapter, error) {
otel_metrics_handler.go
101
>
if v, ok := omp.gauges.Load(gauge); ok {
102
return v.(*gaugeAdapter), nil
103
}
105
>
values: make(map[attribute.Distinct]gaugeValue),
106
>
}
107
>
if v, wasLoaded := omp.gauges.LoadOrStore(gauge, adapter); wasLoaded {
108
return v.(*gaugeAdapter), nil
109
}
110
112
>
metric.WithFloat64Callback(adapter.callback),
113
>
}, gauge)
114
>
// Register the gauge with otel. It will call our callback when it wants to read the values.
115
>
_, err := omp.provider.GetMeter().Float64ObservableGauge(gauge, opts...)
116
>
if err != nil {
117
omp.gauges.Delete(gauge)
118
omp.l.Error("error getting metric", tag.String("MetricName", gauge), tag.Error(err))