diff --git a/opentelemetry-api/src/opentelemetry/_events/__init__.py b/opentelemetry-api/src/opentelemetry/_events/__init__.py index e1e6a675a52..9fde655e758 100644 --- a/opentelemetry-api/src/opentelemetry/_events/__init__.py +++ b/opentelemetry-api/src/opentelemetry/_events/__init__.py @@ -22,7 +22,7 @@ from opentelemetry.environment_variables import ( _OTEL_PYTHON_EVENT_LOGGER_PROVIDER, ) -from opentelemetry.trace.span import TraceFlags +from opentelemetry.trace.span import SpanContext from opentelemetry.util._once import Once from opentelemetry.util._providers import _load_provider from opentelemetry.util.types import Attributes @@ -35,15 +35,18 @@ def __init__( self, name: str, timestamp: Optional[int] = None, - trace_id: Optional[int] = None, - span_id: Optional[int] = None, - trace_flags: Optional["TraceFlags"] = None, + span_context: Optional[SpanContext] = None, body: Optional[Any] = None, severity_number: Optional[SeverityNumber] = None, attributes: Optional[Attributes] = None, ): attributes = attributes or {} event_attributes = {**attributes, "event.name": name} + trace_id = span_id = trace_flags = None + if span_context: + trace_id = span_context.trace_id + span_id = span_context.span_id + trace_flags = span_context.trace_flags super().__init__( timestamp=timestamp, trace_id=trace_id, diff --git a/opentelemetry-sdk/tests/events/test_events.py b/opentelemetry-sdk/tests/events/test_events.py index 7b8d42ff316..934f19a605b 100644 --- a/opentelemetry-sdk/tests/events/test_events.py +++ b/opentelemetry-sdk/tests/events/test_events.py @@ -123,15 +123,11 @@ def test_event_logger_emit(self, logger_mock, log_record_mock): "name", "version", "schema_url", {"key": "value"} ) now = Mock() - trace_id = Mock() - span_id = Mock() - trace_flags = Mock() + span_context = Mock() event = Event( name="test_event", timestamp=now, - trace_id=trace_id, - span_id=span_id, - trace_flags=trace_flags, + span_context=span_context, body="test body", severity_number=SeverityNumber.ERROR, attributes={ @@ -146,9 +142,9 @@ def test_event_logger_emit(self, logger_mock, log_record_mock): log_record_mock.assert_called_once_with( timestamp=now, observed_timestamp=None, - trace_id=trace_id, - span_id=span_id, - trace_flags=trace_flags, + trace_id=span_context.trace_id, + span_id=span_context.span_id, + trace_flags=span_context.trace_flags, severity_text=None, severity_number=SeverityNumber.ERROR, body="test body", @@ -179,15 +175,11 @@ def test_event_logger_emit_sdk_disabled( "name", "version", "schema_url", {"key": "value"} ) now = Mock() - trace_id = Mock() - span_id = Mock() - trace_flags = Mock() + span_context = Mock() event = Event( name="test_event", timestamp=now, - trace_id=trace_id, - span_id=span_id, - trace_flags=trace_flags, + span_context=span_context, body="test body", severity_number=SeverityNumber.ERROR, attributes={