@@ -44,19 +44,22 @@ func NewSentryRoundTripper(originalRoundTripper http.RoundTripper, opts ...Sentr
4444
4545 // Configure trace propagation targets
4646 var tracePropagationTargets []string
47+ var propagateTraceparent bool
4748 if hub := sentry .CurrentHub (); hub != nil {
4849 client := hub .Client ()
4950 if client != nil {
5051 clientOptions := client .Options ()
5152 if clientOptions .TracePropagationTargets != nil {
5253 tracePropagationTargets = clientOptions .TracePropagationTargets
5354 }
55+ propagateTraceparent = clientOptions .PropagateTraceparent
5456 }
5557 }
5658
5759 t := & SentryRoundTripper {
5860 originalRoundTripper : originalRoundTripper ,
5961 tracePropagationTargets : tracePropagationTargets ,
62+ propagateTraceparent : propagateTraceparent ,
6063 }
6164
6265 for _ , opt := range opts {
@@ -72,6 +75,7 @@ func NewSentryRoundTripper(originalRoundTripper http.RoundTripper, opts ...Sentr
7275type SentryRoundTripper struct {
7376 originalRoundTripper http.RoundTripper
7477
78+ propagateTraceparent bool
7579 tracePropagationTargets []string
7680}
7781
@@ -96,8 +100,11 @@ func (s *SentryRoundTripper) RoundTrip(request *http.Request) (*http.Response, e
96100 parentSpan := sentry .SpanFromContext (request .Context ())
97101 if parentSpan == nil {
98102 if hub := sentry .GetHubFromContext (request .Context ()); hub != nil {
99- request .Header .Add ("Baggage" , hub .GetBaggage ())
100- request .Header .Add ("Sentry-Trace" , hub .GetTraceparent ())
103+ request .Header .Add (sentry .SentryBaggageHeader , hub .GetBaggage ())
104+ request .Header .Add (sentry .SentryTraceHeader , hub .GetTraceparent ())
105+ if s .propagateTraceparent {
106+ request .Header .Add (sentry .TraceparentHeader , hub .GetTraceparentW3C ())
107+ }
101108 }
102109
103110 return s .originalRoundTripper .RoundTrip (request )
@@ -115,8 +122,11 @@ func (s *SentryRoundTripper) RoundTrip(request *http.Request) (*http.Response, e
115122 span .SetData ("server.port" , request .URL .Port ())
116123
117124 // Always add `Baggage` and `Sentry-Trace` headers.
118- request .Header .Add ("Baggage" , span .ToBaggage ())
119- request .Header .Add ("Sentry-Trace" , span .ToSentryTrace ())
125+ request .Header .Add (sentry .SentryBaggageHeader , span .ToBaggage ())
126+ request .Header .Add (sentry .SentryTraceHeader , span .ToSentryTrace ())
127+ if s .propagateTraceparent {
128+ request .Header .Add (sentry .TraceparentHeader , span .ToTraceparent ())
129+ }
120130
121131 response , err := s .originalRoundTripper .RoundTrip (request )
122132 if err != nil {
0 commit comments