Skip to content

Commit 19ba57a

Browse files
committed
Fix gauges
1 parent e11780e commit 19ba57a

File tree

1 file changed

+19
-23
lines changed

1 file changed

+19
-23
lines changed

reporter/parca_reporter.go

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -488,36 +488,32 @@ func (r *ParcaReporter) ReportMetrics(_ uint32, ids []uint32, values []int64) {
488488
continue
489489
}
490490
f := strings.Replace(field.Field, ".", "_", -1)
491-
m, ok := r.otelLibraryMetrics[f]
492-
if !ok {
493-
switch field.Type {
494-
case metrics.MetricTypeGauge:
495-
g := prometheus.NewGauge(prometheus.GaugeOpts{
491+
492+
switch field.Type {
493+
case metrics.MetricTypeGauge:
494+
m, ok := r.otelLibraryMetrics[f]
495+
if !ok {
496+
m = prometheus.NewGauge(prometheus.GaugeOpts{
496497
Name: f,
497498
Help: field.Desc,
498499
})
499-
r.reg.MustRegister(g)
500-
m = g
501-
case metrics.MetricTypeCounter:
502-
c := prometheus.NewCounter(prometheus.CounterOpts{
500+
r.reg.MustRegister(m.(prometheus.Gauge))
501+
r.otelLibraryMetrics[f] = m
502+
}
503+
m.(prometheus.Gauge).Set(float64(val))
504+
case metrics.MetricTypeCounter:
505+
m, ok := r.otelLibraryMetrics[f]
506+
if !ok {
507+
m = prometheus.NewCounter(prometheus.CounterOpts{
503508
Name: f,
504509
Help: field.Desc,
505510
})
506-
r.reg.MustRegister(c)
507-
m = c
508-
509-
default:
510-
log.Warnf("Unknown metric type: %d", field.Type)
511-
continue
511+
r.reg.MustRegister(m.(prometheus.Counter))
512+
r.otelLibraryMetrics[f] = m
512513
}
513-
r.otelLibraryMetrics[f] = m
514-
}
515-
if counter, ok := m.(prometheus.Counter); ok {
516-
counter.Add(float64(val))
517-
} else if gauge, ok := m.(prometheus.Gauge); ok {
518-
gauge.Set(float64(val))
519-
} else {
520-
log.Errorf("Bad metric type (this should never happen): %v", m)
514+
m.(prometheus.Counter).Add(float64(val))
515+
default:
516+
log.Warnf("Unknown metric type: %d", field.Type)
521517
}
522518
}
523519
}

0 commit comments

Comments
 (0)