@@ -549,22 +549,20 @@ func (b *Beat) registerStatsMetrics() {
549
549
defer v .OnRegistryFinished ()
550
550
551
551
// first collect all apm-server metrics
552
- apmServerMetrics := make ([]metricdata. Metrics , 0 )
552
+ beatsMetrics := make (map [ string ] any )
553
553
for _ , sm := range rm .ScopeMetrics {
554
554
switch {
555
555
case strings .HasPrefix (sm .Scope .Name , "github.com/elastic/apm-server" ):
556
556
// All simple scalar metrics that begin with the name "apm-server."
557
557
// in github.com/elastic/apm-server/... scopes are mapped directly.
558
- apmServerMetrics = append ( apmServerMetrics , sm .Metrics ... )
558
+ addAPMServerMetricsToMap ( beatsMetrics , sm .Metrics )
559
559
}
560
560
}
561
561
562
- // add all metrics once
562
+ // register all metrics once
563
563
// this prevents metrics with the same prefix in the name
564
564
// from different scoped meters from overwriting each other
565
- if len (apmServerMetrics ) > 0 {
566
- addAPMServerMetrics (v , apmServerMetrics )
567
- }
565
+ reportOnKey (v , beatsMetrics )
568
566
})
569
567
}
570
568
@@ -587,8 +585,9 @@ func getScalarInt64(data metricdata.Aggregation) (int64, bool) {
587
585
return 0 , false
588
586
}
589
587
590
- func addAPMServerMetrics (v monitoring.Visitor , metrics []metricdata.Metrics ) {
591
- beatsMetrics := make (map [string ]any )
588
+ // addAPMServerMetricsToMap adds simple scalar metrics with the "apm-server." prefix
589
+ // to the map.
590
+ func addAPMServerMetricsToMap (beatsMetrics map [string ]any , metrics []metricdata.Metrics ) {
592
591
for _ , m := range metrics {
593
592
if suffix , ok := strings .CutPrefix (m .Name , "apm-server." ); ok {
594
593
if value , ok := getScalarInt64 (m .Data ); ok {
@@ -607,8 +606,6 @@ func addAPMServerMetrics(v monitoring.Visitor, metrics []metricdata.Metrics) {
607
606
}
608
607
}
609
608
}
610
-
611
- reportOnKey (v , beatsMetrics )
612
609
}
613
610
614
611
func reportOnKey (v monitoring.Visitor , m map [string ]any ) {
0 commit comments