Skip to content

Commit c3fdff9

Browse files
.
1 parent 3bd94e5 commit c3fdff9

File tree

2 files changed

+21
-9
lines changed

2 files changed

+21
-9
lines changed

sentry_sdk/integrations/opentelemetry/span_processor.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,9 @@ def on_start(
132132
if self._is_sentry_span(otel_span):
133133
return
134134

135-
trace_data = self._get_trace_data(otel_span, span_context, parent_context)
135+
trace_data = self._get_trace_data(
136+
span_context, otel_span.parent, parent_context
137+
)
136138

137139
parent_span_id = trace_data["parent_span_id"]
138140
sentry_parent_span = (
@@ -258,12 +260,12 @@ def _get_otel_context(self, otel_span: "OTelSpan") -> "dict[str, Any]":
258260

259261
def _get_trace_data(
260262
self,
261-
otel_span: "OTelSpan",
262263
span_context: "SpanContext",
264+
parent_span_context: "Optional[SpanContext]",
263265
parent_context: "Optional[context_api.Context]",
264266
) -> "dict[str, Any]":
265267
"""
266-
Extracts tracing information from one OTel span and its parent OTel context.
268+
Extracts tracing information from one OTel span's context and its parent OTel context.
267269
"""
268270
trace_data: "dict[str, Any]" = {}
269271

@@ -274,7 +276,7 @@ def _get_trace_data(
274276
trace_data["trace_id"] = trace_id
275277

276278
parent_span_id = (
277-
format_span_id(otel_span.parent.span_id) if otel_span.parent else None
279+
format_span_id(parent_span_context.span_id) if parent_span_context else None
278280
)
279281
trace_data["parent_span_id"] = parent_span_id
280282

tests/integrations/opentelemetry/test_span_processor.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,9 @@ def test_get_trace_data_with_span_and_trace():
6868
parent_context = {}
6969

7070
span_processor = SentrySpanProcessor()
71-
sentry_trace_data = span_processor._get_trace_data(otel_span, parent_context)
71+
sentry_trace_data = span_processor._get_trace_data(
72+
otel_span.get_span_context(), otel_span.parent, parent_context
73+
)
7274
assert sentry_trace_data["trace_id"] == "1234567890abcdef1234567890abcdef"
7375
assert sentry_trace_data["span_id"] == "1234567890abcdef"
7476
assert sentry_trace_data["parent_span_id"] is None
@@ -90,7 +92,9 @@ def test_get_trace_data_with_span_and_trace_and_parent():
9092
parent_context = {}
9193

9294
span_processor = SentrySpanProcessor()
93-
sentry_trace_data = span_processor._get_trace_data(otel_span, parent_context)
95+
sentry_trace_data = span_processor._get_trace_data(
96+
otel_span.get_span_context(), otel_span.parent, parent_context
97+
)
9498
assert sentry_trace_data["trace_id"] == "1234567890abcdef1234567890abcdef"
9599
assert sentry_trace_data["span_id"] == "1234567890abcdef"
96100
assert sentry_trace_data["parent_span_id"] == "abcdef1234567890"
@@ -121,7 +125,9 @@ def test_get_trace_data_with_sentry_trace():
121125
],
122126
):
123127
span_processor = SentrySpanProcessor()
124-
sentry_trace_data = span_processor._get_trace_data(otel_span, parent_context)
128+
sentry_trace_data = span_processor._get_trace_data(
129+
otel_span.get_span_context(), otel_span.parent, parent_context
130+
)
125131
assert sentry_trace_data["trace_id"] == "1234567890abcdef1234567890abcdef"
126132
assert sentry_trace_data["span_id"] == "1234567890abcdef"
127133
assert sentry_trace_data["parent_span_id"] == "abcdef1234567890"
@@ -138,7 +144,9 @@ def test_get_trace_data_with_sentry_trace():
138144
],
139145
):
140146
span_processor = SentrySpanProcessor()
141-
sentry_trace_data = span_processor._get_trace_data(otel_span, parent_context)
147+
sentry_trace_data = span_processor._get_trace_data(
148+
otel_span.get_span_context(), otel_span.parent, parent_context
149+
)
142150
assert sentry_trace_data["trace_id"] == "1234567890abcdef1234567890abcdef"
143151
assert sentry_trace_data["span_id"] == "1234567890abcdef"
144152
assert sentry_trace_data["parent_span_id"] == "abcdef1234567890"
@@ -175,7 +183,9 @@ def test_get_trace_data_with_sentry_trace_and_baggage():
175183
],
176184
):
177185
span_processor = SentrySpanProcessor()
178-
sentry_trace_data = span_processor._get_trace_data(otel_span, parent_context)
186+
sentry_trace_data = span_processor._get_trace_data(
187+
otel_span.get_span_context(), otel_span.parent, parent_context
188+
)
179189
assert sentry_trace_data["trace_id"] == "1234567890abcdef1234567890abcdef"
180190
assert sentry_trace_data["span_id"] == "1234567890abcdef"
181191
assert sentry_trace_data["parent_span_id"] == "abcdef1234567890"

0 commit comments

Comments
 (0)