Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 12 additions & 6 deletions sentry_sdk/opentelemetry/tracing.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,25 @@
from sentry_sdk.utils import logger


READABLE_SPAN_PATCHED = False


def patch_readable_span() -> None:
"""
We need to pass through sentry specific metadata/objects from Span to ReadableSpan
to work with them consistently in the SpanProcessor.
"""
old_readable_span = Span._readable_span
global READABLE_SPAN_PATCHED
if not READABLE_SPAN_PATCHED:
old_readable_span = Span._readable_span

def sentry_patched_readable_span(self: Span) -> ReadableSpan:
readable_span = old_readable_span(self)
readable_span._sentry_meta = getattr(self, "_sentry_meta", {}) # type: ignore[attr-defined]
return readable_span
def sentry_patched_readable_span(self: Span) -> ReadableSpan:
readable_span = old_readable_span(self)
readable_span._sentry_meta = getattr(self, "_sentry_meta", {}) # type: ignore[attr-defined]
return readable_span

Span._readable_span = sentry_patched_readable_span # type: ignore[method-assign]
Span._readable_span = sentry_patched_readable_span # type: ignore[method-assign]
READABLE_SPAN_PATCHED = True


def setup_sentry_tracing() -> None:
Expand Down
Loading