Skip to content

Commit cdee24a

Browse files
fix(opentelemetry): Gate third-party imports
1 parent 86d326c commit cdee24a

File tree

4 files changed

+47
-35
lines changed

4 files changed

+47
-35
lines changed
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1-
from opentelemetry.context import create_key
1+
from sentry_sdk.integrations import DidNotEnable
22

3+
try:
4+
from opentelemetry.context import create_key
5+
except ImportError:
6+
raise DidNotEnable("opentelemetry not installed")
37

48
SENTRY_TRACE_KEY = create_key("sentry-trace")
59
SENTRY_BAGGAGE_KEY = create_key("sentry-baggage")

sentry_sdk/integrations/opentelemetry/propagator.py

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,4 @@
1-
from opentelemetry import trace
2-
from opentelemetry.context import (
3-
Context,
4-
get_current,
5-
set_value,
6-
)
7-
from opentelemetry.propagators.textmap import (
8-
CarrierT,
9-
Getter,
10-
Setter,
11-
TextMapPropagator,
12-
default_getter,
13-
default_setter,
14-
)
15-
from opentelemetry.trace import (
16-
NonRecordingSpan,
17-
SpanContext,
18-
TraceFlags,
19-
)
20-
1+
from sentry_sdk.integrations import DidNotEnable
212
from sentry_sdk.integrations.opentelemetry.consts import (
223
SENTRY_BAGGAGE_KEY,
234
SENTRY_TRACE_KEY,
@@ -31,6 +12,29 @@
3112
)
3213
from sentry_sdk.tracing_utils import Baggage, extract_sentrytrace_data
3314

15+
try:
16+
from opentelemetry import trace
17+
from opentelemetry.context import (
18+
Context,
19+
get_current,
20+
set_value,
21+
)
22+
from opentelemetry.propagators.textmap import (
23+
CarrierT,
24+
Getter,
25+
Setter,
26+
TextMapPropagator,
27+
default_getter,
28+
default_setter,
29+
)
30+
from opentelemetry.trace import (
31+
NonRecordingSpan,
32+
SpanContext,
33+
TraceFlags,
34+
)
35+
except ImportError:
36+
raise DidNotEnable("opentelemetry not installed")
37+
3438
from typing import TYPE_CHECKING
3539

3640
if TYPE_CHECKING:

sentry_sdk/integrations/opentelemetry/span_processor.py

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,9 @@
22
from time import time
33
from typing import TYPE_CHECKING, cast
44

5-
from opentelemetry.context import get_value
6-
from opentelemetry.sdk.trace import SpanProcessor, ReadableSpan as OTelSpan
7-
from opentelemetry.semconv.trace import SpanAttributes
8-
from opentelemetry.trace import (
9-
format_span_id,
10-
format_trace_id,
11-
get_current_span,
12-
SpanKind,
13-
)
14-
from opentelemetry.trace.span import (
15-
INVALID_SPAN_ID,
16-
INVALID_TRACE_ID,
17-
)
185
from sentry_sdk import get_client, start_transaction
196
from sentry_sdk.consts import INSTRUMENTER, SPANSTATUS
7+
from sentry_sdk.integrations import DidNotEnable
208
from sentry_sdk.integrations.opentelemetry.consts import (
219
SENTRY_BAGGAGE_KEY,
2210
SENTRY_TRACE_KEY,
@@ -26,6 +14,23 @@
2614

2715
from urllib3.util import parse_url as urlparse
2816

17+
try:
18+
from opentelemetry.context import get_value
19+
from opentelemetry.sdk.trace import SpanProcessor, ReadableSpan as OTelSpan
20+
from opentelemetry.semconv.trace import SpanAttributes
21+
from opentelemetry.trace import (
22+
format_span_id,
23+
format_trace_id,
24+
get_current_span,
25+
SpanKind,
26+
)
27+
from opentelemetry.trace.span import (
28+
INVALID_SPAN_ID,
29+
INVALID_TRACE_ID,
30+
)
31+
except ImportError:
32+
raise DidNotEnable("opentelemetry not installed")
33+
2934
if TYPE_CHECKING:
3035
from typing import Any, Optional, Union
3136
from opentelemetry import context as context_api

tests/test_shadowed_module.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ def pytest_generate_tests(metafunc):
3232
"clickhouse_driver",
3333
"grpc",
3434
"litellm",
35-
"opentelemetry",
3635
"pure_eval",
3736
"ray",
3837
"trytond",

0 commit comments

Comments
 (0)