Skip to content

Commit e41fb88

Browse files
committed
removed redundant temp slice from apm-server monitoring func
1 parent 433ac94 commit e41fb88

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

internal/beatcmd/beat.go

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -549,22 +549,20 @@ func (b *Beat) registerStatsMetrics() {
549549
defer v.OnRegistryFinished()
550550

551551
// first collect all apm-server metrics
552-
apmServerMetrics := make([]metricdata.Metrics, 0)
552+
beatsMetrics := make(map[string]any)
553553
for _, sm := range rm.ScopeMetrics {
554554
switch {
555555
case strings.HasPrefix(sm.Scope.Name, "github.com/elastic/apm-server"):
556556
// All simple scalar metrics that begin with the name "apm-server."
557557
// in github.com/elastic/apm-server/... scopes are mapped directly.
558-
apmServerMetrics = append(apmServerMetrics, sm.Metrics...)
558+
addAPMServerMetricsToMap(beatsMetrics, sm.Metrics)
559559
}
560560
}
561561

562-
// add all metrics once
562+
// register all metrics once
563563
// this prevents metrics with the same prefix in the name
564564
// from different scoped meters from overwriting each other
565-
if len(apmServerMetrics) > 0 {
566-
addAPMServerMetrics(v, apmServerMetrics)
567-
}
565+
reportOnKey(v, beatsMetrics)
568566
})
569567
}
570568

@@ -587,8 +585,9 @@ func getScalarInt64(data metricdata.Aggregation) (int64, bool) {
587585
return 0, false
588586
}
589587

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) {
592591
for _, m := range metrics {
593592
if suffix, ok := strings.CutPrefix(m.Name, "apm-server."); ok {
594593
if value, ok := getScalarInt64(m.Data); ok {
@@ -607,8 +606,6 @@ func addAPMServerMetrics(v monitoring.Visitor, metrics []metricdata.Metrics) {
607606
}
608607
}
609608
}
610-
611-
reportOnKey(v, beatsMetrics)
612609
}
613610

614611
func reportOnKey(v monitoring.Visitor, m map[string]any) {

internal/beatcmd/beat_test.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ func TestLibbeatMetrics(t *testing.T) {
268268
}, snapshot)
269269
}
270270

271-
// TestAddAPMServerMetrics tests basic functionality of the addAPMServerMetrics
271+
// TestAddAPMServerMetrics tests basic functionality of the metrics collection and reporting
272272
func TestAddAPMServerMetrics(t *testing.T) {
273273
r := monitoring.NewRegistry()
274274
sm := metricdata.ScopeMetrics{
@@ -297,7 +297,12 @@ func TestAddAPMServerMetrics(t *testing.T) {
297297
}
298298

299299
monitoring.NewFunc(r, "apm-server", func(m monitoring.Mode, v monitoring.Visitor) {
300-
addAPMServerMetrics(v, sm.Metrics)
300+
v.OnRegistryStart()
301+
defer v.OnRegistryFinished()
302+
303+
beatsMetrics := make(map[string]any)
304+
addAPMServerMetricsToMap(beatsMetrics, sm.Metrics)
305+
reportOnKey(v, beatsMetrics)
301306
})
302307

303308
snapshot := monitoring.CollectStructSnapshot(r, monitoring.Full, false)
@@ -306,7 +311,7 @@ func TestAddAPMServerMetrics(t *testing.T) {
306311
"request": int64(1),
307312
"response": int64(1),
308313
},
309-
}, snapshot)
314+
}, snapshot["apm-server"])
310315
}
311316

312317
func TestMonitoringApmServer(t *testing.T) {

0 commit comments

Comments
 (0)