diff --git a/sentry_sdk/_span_batcher.py b/sentry_sdk/_span_batcher.py index 73ab18277a..df3598b282 100644 --- a/sentry_sdk/_span_batcher.py +++ b/sentry_sdk/_span_batcher.py @@ -91,6 +91,7 @@ def _to_transport_format(item: "StreamedSpan") -> "Any": "span_id": item.span_id, "name": item._name, "status": item._status, + "is_segment": item._is_segment(), "start_timestamp": item._start_timestamp.timestamp(), } diff --git a/sentry_sdk/traces.py b/sentry_sdk/traces.py index 352be91eff..deb979ffd0 100644 --- a/sentry_sdk/traces.py +++ b/sentry_sdk/traces.py @@ -447,6 +447,9 @@ def start_timestamp(self) -> "Optional[datetime]": def timestamp(self) -> "Optional[datetime]": return self._timestamp + def _is_segment(self) -> bool: + return self._segment is self + class NoOpStreamedSpan(StreamedSpan): __slots__ = ( @@ -533,6 +536,9 @@ def set_attributes(self, attributes: "Attributes") -> None: def remove_attribute(self, key: str) -> None: pass + def _is_segment(self) -> bool: + return self._scope is not None + @property def status(self) -> "str": return SpanStatus.OK.value