|
2 | 2 | import json |
3 | 3 | import warnings |
4 | 4 |
|
5 | | -from opentelemetry import trace as otel_trace, context |
| 5 | +from opentelemetry import trace as otel_trace, context, __version__ as OTEL_VERSION |
6 | 6 | from opentelemetry.trace import ( |
7 | 7 | format_trace_id, |
8 | 8 | format_span_id, |
|
11 | 11 | get_current_span, |
12 | 12 | INVALID_SPAN, |
13 | 13 | ) |
14 | | -from opentelemetry.trace.status import StatusCode |
| 14 | +from opentelemetry.trace.status import Status, StatusCode |
15 | 15 | from opentelemetry.sdk.trace import ReadableSpan |
16 | 16 |
|
17 | 17 | import sentry_sdk |
|
41 | 41 | from sentry_sdk.utils import ( |
42 | 42 | _serialize_span_attribute, |
43 | 43 | get_current_thread_meta, |
| 44 | + parse_version, |
44 | 45 | should_be_treated_as_error, |
45 | 46 | ) |
46 | 47 |
|
|
70 | 71 | from sentry_sdk.tracing_utils import Baggage |
71 | 72 |
|
72 | 73 |
|
| 74 | +OTEL_VERSION = parse_version(OTEL_VERSION) |
| 75 | + |
73 | 76 | tracer = otel_trace.get_tracer(__name__) |
74 | 77 |
|
75 | 78 |
|
@@ -531,7 +534,10 @@ def set_status(self, status): |
531 | 534 | otel_status = StatusCode.ERROR |
532 | 535 | otel_description = status |
533 | 536 |
|
534 | | - self._otel_span.set_status(otel_status, otel_description) |
| 537 | + if OTEL_VERSION >= (1, 12, 0): |
| 538 | + self._otel_span.set_status(otel_status, otel_description) |
| 539 | + else: |
| 540 | + self._otel_span.set_status(Status(otel_status, otel_description)) |
535 | 541 |
|
536 | 542 | def set_measurement(self, name, value, unit=""): |
537 | 543 | # type: (str, float, MeasurementUnit) -> None |
|
0 commit comments