26
26
from instana .propagators .exceptions import UnsupportedFormatException
27
27
from instana .propagators .format import Format
28
28
from instana .propagators .http_propagator import HTTPPropagator
29
+ from instana .propagators .kafka_propagator import KafkaPropagator
29
30
from instana .propagators .text_propagator import TextPropagator
30
31
from instana .recorder import StanRecorder
31
32
from instana .sampling import InstanaSampler , Sampler
@@ -53,6 +54,7 @@ def __init__(
53
54
self ._propagators [Format .HTTP_HEADERS ] = HTTPPropagator ()
54
55
self ._propagators [Format .TEXT_MAP ] = TextPropagator ()
55
56
self ._propagators [Format .BINARY ] = BinaryPropagator ()
57
+ self ._propagators [Format .KAFKA_HEADERS ] = KafkaPropagator ()
56
58
57
59
def get_tracer (
58
60
self ,
@@ -118,7 +120,9 @@ def start_span(
118
120
record_exception : bool = True ,
119
121
set_status_on_exception : bool = True ,
120
122
) -> InstanaSpan :
121
- parent_context = span_context if span_context else get_current_span ().get_span_context ()
123
+ parent_context = (
124
+ span_context if span_context else get_current_span ().get_span_context ()
125
+ )
122
126
123
127
if parent_context and not isinstance (parent_context , SpanContext ):
124
128
raise TypeError ("parent_context must be an Instana SpanContext or None." )
@@ -224,9 +228,13 @@ def _create_span_context(self, parent_context: SpanContext) -> SpanContext:
224
228
level = (parent_context .level if parent_context else 1 ),
225
229
synthetic = (parent_context .synthetic if parent_context else False ),
226
230
trace_parent = (parent_context .trace_parent if parent_context else None ),
227
- instana_ancestor = (parent_context .instana_ancestor if parent_context else None ),
231
+ instana_ancestor = (
232
+ parent_context .instana_ancestor if parent_context else None
233
+ ),
228
234
long_trace_id = (parent_context .long_trace_id if parent_context else None ),
229
- correlation_type = (parent_context .correlation_type if parent_context else None ),
235
+ correlation_type = (
236
+ parent_context .correlation_type if parent_context else None
237
+ ),
230
238
correlation_id = (parent_context .correlation_id if parent_context else None ),
231
239
traceparent = (parent_context .traceparent if parent_context else None ),
232
240
tracestate = (parent_context .tracestate if parent_context else None ),
@@ -237,7 +245,9 @@ def _create_span_context(self, parent_context: SpanContext) -> SpanContext:
237
245
def inject (
238
246
self ,
239
247
span_context : SpanContext ,
240
- format : Union [Format .BINARY , Format .HTTP_HEADERS , Format .TEXT_MAP ],
248
+ format : Union [
249
+ Format .BINARY , Format .HTTP_HEADERS , Format .TEXT_MAP , Format .KAFKA_HEADERS
250
+ ],
241
251
carrier : "CarrierT" ,
242
252
disable_w3c_trace_context : bool = False ,
243
253
) -> Optional ["CarrierT" ]:
@@ -250,7 +260,9 @@ def inject(
250
260
251
261
def extract (
252
262
self ,
253
- format : Union [Format .BINARY , Format .HTTP_HEADERS , Format .TEXT_MAP ],
263
+ format : Union [
264
+ Format .BINARY , Format .HTTP_HEADERS , Format .TEXT_MAP , Format .KAFKA_HEADERS
265
+ ],
254
266
carrier : "CarrierT" ,
255
267
disable_w3c_trace_context : bool = False ,
256
268
) -> Optional [Context ]:
0 commit comments