diff --git a/cmd/trace-agent/concentrator.go b/cmd/trace-agent/concentrator.go index 406d7ccd8..aeb480ea3 100644 --- a/cmd/trace-agent/concentrator.go +++ b/cmd/trace-agent/concentrator.go @@ -101,12 +101,8 @@ func (c *Concentrator) Add(t processedTrace) { c.buckets[btime] = b } - sublayers, ok := t.Sublayers[s.Span] - if ok { - b.HandleSpan(s, t.Env, c.aggregators, &sublayers) - } else { - b.HandleSpan(s, t.Env, c.aggregators, nil) - } + sublayers, _ := t.Sublayers[s.Span] + b.HandleSpan(s, t.Env, c.aggregators, sublayers) } c.mu.Unlock() diff --git a/model/stats_test.go b/model/stats_test.go index 39c595f77..7a51bac0b 100644 --- a/model/stats_test.go +++ b/model/stats_test.go @@ -317,7 +317,7 @@ func TestStatsBucketSublayers(t *testing.T) { // No custom aggregators only the defaults aggr := []string{} for _, s := range wt { - srb.HandleSpan(s, defaultEnv, aggr, &sublayers) + srb.HandleSpan(s, defaultEnv, aggr, sublayers) } sb := srb.Export() @@ -415,7 +415,7 @@ func TestStatsBucketSublayersTopLevel(t *testing.T) { // No custom aggregators only the defaults aggr := []string{} for _, s := range wt { - srb.HandleSpan(s, defaultEnv, aggr, &sublayers) + srb.HandleSpan(s, defaultEnv, aggr, sublayers) } sb := srb.Export() @@ -545,7 +545,7 @@ func BenchmarkHandleSpanSublayers(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { for _, s := range wt { - srb.HandleSpan(s, defaultEnv, aggr, &sublayers) + srb.HandleSpan(s, defaultEnv, aggr, sublayers) } } } diff --git a/model/statsraw.go b/model/statsraw.go index 09d949c1b..86e0f473e 100644 --- a/model/statsraw.go +++ b/model/statsraw.go @@ -184,7 +184,7 @@ func assembleGrain(b *bytes.Buffer, env, resource, service string, m map[string] } // HandleSpan adds the span to this bucket stats, aggregated with the finest grain matching given aggregators -func (sb *StatsRawBucket) HandleSpan(s *WeightedSpan, env string, aggregators []string, sublayers *[]SublayerValue) { +func (sb *StatsRawBucket) HandleSpan(s *WeightedSpan, env string, aggregators []string, sublayers []SublayerValue) { if env == "" { panic("env should never be empty") } @@ -202,11 +202,8 @@ func (sb *StatsRawBucket) HandleSpan(s *WeightedSpan, env string, aggregators [] grain, tags := assembleGrain(&sb.keyBuf, env, s.Resource, s.Service, m) sb.add(s, grain, tags) - // sublayers - special case - if sublayers != nil { - for _, sub := range *sublayers { - sb.addSublayer(s, grain, tags, sub) - } + for _, sub := range sublayers { + sb.addSublayer(s, grain, tags, sub) } }