From 35ccc89668821cf5b1dbc4a34ba13b80837277e0 Mon Sep 17 00:00:00 2001 From: Rachel Yang Date: Fri, 7 Feb 2025 16:58:16 -0500 Subject: [PATCH] change startRequestSpan in httptrace --- contrib/internal/httptrace/httptrace.go | 32 ++++++++++--------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/contrib/internal/httptrace/httptrace.go b/contrib/internal/httptrace/httptrace.go index 116e48f4ec..7ee79c618d 100644 --- a/contrib/internal/httptrace/httptrace.go +++ b/contrib/internal/httptrace/httptrace.go @@ -86,25 +86,6 @@ func StartRequestSpan(r *http.Request, opts ...ddtrace.StartSpanOption) (tracer. } } - // Propagate baggage *before* starting the span. - if inferredProxySpan == nil { - spanParentCtx, spanParentErr := tracer.Extract(tracer.HTTPHeadersCarrier(r.Header)) - if spanParentErr == nil { - baggageMap := make(map[string]string) - spanParentCtx.ForeachBaggageItem(func(k, v string) bool { - baggageMap[k] = v - return true - }) - if len(baggageMap) > 0 { - ctx := r.Context() - for k, v := range baggageMap { - ctx = baggage.Set(ctx, k, v) - } - r = r.WithContext(ctx) - } - } - } - nopts = append(nopts, func(ssCfg *ddtrace.StartSpanConfig) { if ssCfg.Tags == nil { @@ -128,6 +109,19 @@ func StartRequestSpan(r *http.Request, opts ...ddtrace.StartSpanOption) (tracer. tracer.WithSpanLinks(spanLinksCtx.SpanLinks())(ssCfg) } tracer.ChildOf(spanParentCtx)(ssCfg) + + baggageMap := make(map[string]string) + spanParentCtx.ForeachBaggageItem(func(k, v string) bool { + baggageMap[k] = v + return true + }) + if len(baggageMap) > 0 { + ctx := r.Context() + for k, v := range baggageMap { + ctx = baggage.Set(ctx, k, v) + } + r = r.WithContext(ctx) + } } }