From f7ec55398ff1a28ea2cbbfcb3461b4afcf87ee84 Mon Sep 17 00:00:00 2001 From: mackjmr Date: Fri, 28 Jan 2022 10:34:44 +0100 Subject: [PATCH] ddtrace/tracer: fix top_level computation with DD_SERVICE_MAPPING --- ddtrace/tracer/tracer.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ddtrace/tracer/tracer.go b/ddtrace/tracer/tracer.go index c3855daf8e..8532f5cbcd 100644 --- a/ddtrace/tracer/tracer.go +++ b/ddtrace/tracer/tracer.go @@ -394,6 +394,11 @@ func (t *tracer) StartSpan(operationName string, options ...ddtrace.StartSpanOpt for k, v := range t.config.globalTags { span.SetTag(k, v) } + if t.config.serviceMappings != nil { + if newSvc, ok := t.config.serviceMappings[span.Service]; ok { + span.Service = newSvc + } + } if context == nil || context.span == nil || context.span.Service != span.Service { span.setMetric(keyTopLevel, 1) // all top level spans are measured. So the measured tag is redundant. @@ -412,11 +417,6 @@ func (t *tracer) StartSpan(operationName string, options ...ddtrace.StartSpanOpt if t.config.profilerHotspots || t.config.profilerEndpoints { t.applyPPROFLabels(pprofContext, span) } - if t.config.serviceMappings != nil { - if newSvc, ok := t.config.serviceMappings[span.Service]; ok { - span.Service = newSvc - } - } log.Debug("Started Span: %v, Operation: %s, Resource: %s, Tags: %v, %v", span, span.Name, span.Resource, span.Meta, span.Metrics) return span }