Skip to content

Commit eaba229

Browse files
committed
fix: suppression propagation in kafka
Signed-off-by: Varsha GS <[email protected]>
1 parent c245b1c commit eaba229

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

src/instana/propagators/kafka_propagator.py

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from instana.log import logger
77
from instana.propagators.base_propagator import BasePropagator, CarrierT
88
from instana.util.ids import hex_id_limited
9+
from instana.span_context import SpanContext
910

1011
if TYPE_CHECKING:
1112
from instana.span_context import SpanContext
@@ -103,7 +104,26 @@ def inject(
103104
# Suppression `level` made in the child context or in the parent context
104105
# has priority over any non-suppressed `level` setting
105106
suppression_level = int(self.extract_instana_headers(dictionary_carrier)[2])
106-
span_context.level = min(suppression_level, span_context.level)
107+
new_level = min(suppression_level, span_context.level)
108+
109+
if new_level != span_context.level:
110+
# Create a new span context with the updated level
111+
span_context = SpanContext(
112+
trace_id=span_context.trace_id,
113+
span_id=span_context.span_id,
114+
is_remote=span_context.is_remote,
115+
trace_flags=span_context.trace_flags,
116+
trace_state=span_context.trace_state,
117+
level=new_level,
118+
synthetic=span_context.synthetic,
119+
trace_parent=span_context.trace_parent,
120+
instana_ancestor=span_context.instana_ancestor,
121+
long_trace_id=span_context.long_trace_id,
122+
correlation_type=span_context.correlation_type,
123+
correlation_id=span_context.correlation_id,
124+
traceparent=span_context.traceparent,
125+
tracestate=span_context.tracestate
126+
)
107127

108128
def inject_key_value(carrier, key, value):
109129
if isinstance(carrier, list):
@@ -119,9 +139,9 @@ def inject_key_value(carrier, key, value):
119139
inject_key_value(
120140
carrier,
121141
self.KAFKA_HEADER_KEY_L_S,
122-
str(suppression_level).encode("utf-8"),
142+
str(span_context.level).encode("utf-8"),
123143
)
124-
if suppression_level == 1:
144+
if span_context.level == 1:
125145
inject_key_value(
126146
carrier,
127147
self.KAFKA_HEADER_KEY_T,

0 commit comments

Comments
 (0)