@@ -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