22# (c) Copyright Instana Inc. 2020
33
44
5- from instana .log import logger
6- from instana .propagators .base_propagator import BasePropagator
5+ from typing import Optional
76
87from opentelemetry .trace .span import format_span_id
98
9+ from instana .log import logger
10+ from instana .propagators .base_propagator import BasePropagator , CarrierT
11+ from instana .span_context import SpanContext
1012from instana .util .ids import define_server_timing
1113
1214
@@ -17,17 +19,22 @@ class BinaryPropagator(BasePropagator):
1719 """
1820
1921 # ByteArray variations from base class
20- HEADER_KEY_T = b' x-instana-t'
21- HEADER_KEY_S = b' x-instana-s'
22- HEADER_KEY_L = b' x-instana-l'
23- HEADER_SERVER_TIMING = b' server-timing'
24- HEADER_KEY_TRACEPARENT = b' traceparent'
25- HEADER_KEY_TRACESTATE = b' tracestate'
22+ HEADER_KEY_T = b" x-instana-t"
23+ HEADER_KEY_S = b" x-instana-s"
24+ HEADER_KEY_L = b" x-instana-l"
25+ HEADER_SERVER_TIMING = b" server-timing"
26+ HEADER_KEY_TRACEPARENT = b" traceparent"
27+ HEADER_KEY_TRACESTATE = b" tracestate"
2628
27- def __init__ (self ):
29+ def __init__ (self ) -> None :
2830 super (BinaryPropagator , self ).__init__ ()
2931
30- def inject (self , span_context , carrier , disable_w3c_trace_context = True ):
32+ def inject (
33+ self ,
34+ span_context : SpanContext ,
35+ carrier : CarrierT ,
36+ disable_w3c_trace_context : bool = True ,
37+ ) -> Optional [CarrierT ]:
3138 try :
3239 trace_id = format_span_id (span_context .trace_id ).encode ()
3340 span_id = format_span_id (span_context .span_id ).encode ()
@@ -37,21 +44,23 @@ def inject(self, span_context, carrier, disable_w3c_trace_context=True):
3744 if disable_w3c_trace_context :
3845 traceparent , tracestate = [None ] * 2
3946 else :
40- traceparent , tracestate = self ._get_participating_trace_context (span_context )
47+ traceparent , tracestate = self ._get_participating_trace_context (
48+ span_context
49+ )
4150 try :
42- traceparent = str .encode (traceparent )
43- tracestate = str .encode (tracestate )
51+ traceparent = str .encode (traceparent ) # type: ignore[arg-type]
52+ tracestate = str .encode (tracestate ) # type: ignore[arg-type]
4453 except Exception :
4554 traceparent , tracestate = [None ] * 2
4655
4756 if isinstance (carrier , dict ) or hasattr (carrier , "__dict__" ):
4857 if traceparent and tracestate :
49- carrier [self .HEADER_KEY_TRACEPARENT ] = traceparent
50- carrier [self .HEADER_KEY_TRACESTATE ] = tracestate
51- carrier [self .HEADER_KEY_T ] = trace_id
52- carrier [self .HEADER_KEY_S ] = span_id
53- carrier [self .HEADER_KEY_L ] = level
54- carrier [self .HEADER_SERVER_TIMING ] = server_timing
58+ carrier [self .HEADER_KEY_TRACEPARENT ] = traceparent # type: ignore[index]
59+ carrier [self .HEADER_KEY_TRACESTATE ] = tracestate # type: ignore[index]
60+ carrier [self .HEADER_KEY_T ] = trace_id # type: ignore[index]
61+ carrier [self .HEADER_KEY_S ] = span_id # type: ignore[index]
62+ carrier [self .HEADER_KEY_L ] = level # type: ignore[index]
63+ carrier [self .HEADER_SERVER_TIMING ] = server_timing # type: ignore[index]
5564 elif isinstance (carrier , list ):
5665 if traceparent and tracestate :
5766 carrier .append ((self .HEADER_KEY_TRACEPARENT , traceparent ))
@@ -62,13 +71,17 @@ def inject(self, span_context, carrier, disable_w3c_trace_context=True):
6271 carrier .append ((self .HEADER_SERVER_TIMING , server_timing ))
6372 elif isinstance (carrier , tuple ):
6473 if traceparent and tracestate :
65- carrier = carrier .__add__ (((self .HEADER_KEY_TRACEPARENT , traceparent ),))
66- carrier = carrier .__add__ (((self .HEADER_KEY_TRACESTATE , tracestate ),))
74+ carrier = carrier .__add__ (
75+ ((self .HEADER_KEY_TRACEPARENT , traceparent ),)
76+ )
77+ carrier = carrier .__add__ (
78+ ((self .HEADER_KEY_TRACESTATE , tracestate ),)
79+ )
6780 carrier = carrier .__add__ (((self .HEADER_KEY_T , trace_id ),))
6881 carrier = carrier .__add__ (((self .HEADER_KEY_S , span_id ),))
6982 carrier = carrier .__add__ (((self .HEADER_KEY_L , level ),))
7083 carrier = carrier .__add__ (((self .HEADER_SERVER_TIMING , server_timing ),))
71- elif hasattr (carrier , ' __setitem__' ):
84+ elif hasattr (carrier , " __setitem__" ):
7285 if traceparent and tracestate :
7386 carrier .__setitem__ (self .HEADER_KEY_TRACEPARENT , traceparent )
7487 carrier .__setitem__ (self .HEADER_KEY_TRACESTATE , tracestate )
@@ -82,5 +95,3 @@ def inject(self, span_context, carrier, disable_w3c_trace_context=True):
8295 return carrier
8396 except Exception :
8497 logger .debug ("inject error:" , exc_info = True )
85-
86-
0 commit comments