Skip to content

Commit 5955465

Browse files
committed
Fix events tests
1 parent d7a467a commit 5955465

File tree

2 files changed

+33
-6
lines changed

2 files changed

+33
-6
lines changed

opentelemetry-sdk/src/opentelemetry/sdk/_events/__init__.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from time import time_ns
1616
from typing import Optional
1717

18+
from opentelemetry import trace
1819
from opentelemetry._events import Event
1920
from opentelemetry._events import EventLogger as APIEventLogger
2021
from opentelemetry._events import EventLoggerProvider as APIEventLoggerProvider
@@ -53,10 +54,20 @@ def emit(self, event: Event) -> None:
5354
if isinstance(self._logger, NoOpLogger):
5455
# Do nothing if SDK is disabled
5556
return
56-
# The Event is already an API LogRecord (it holds trace/span
57-
# context and the event name). Forward it directly to the SDK
58-
# logger so the original trace/span relationship is preserved.
59-
self._logger.emit(event)
57+
span_context = trace.get_current_span().get_span_context()
58+
log_record = LogRecord(
59+
timestamp=event.timestamp or time_ns(),
60+
observed_timestamp=None,
61+
trace_id=event.trace_id or span_context.trace_id,
62+
span_id=event.span_id or span_context.span_id,
63+
trace_flags=event.trace_flags or span_context.trace_flags,
64+
severity_text=None,
65+
severity_number=event.severity_number or SeverityNumber.INFO,
66+
body=event.body,
67+
resource=getattr(self._logger, "resource", None),
68+
attributes=event.attributes,
69+
)
70+
self._logger.emit(log_record)
6071

6172

6273
class EventLoggerProvider(APIEventLoggerProvider):

opentelemetry-sdk/tests/events/test_events.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ def test_event_logger(self, logger_mock):
107107
"name", "version", "schema_url", {"key": "value"}
108108
)
109109

110-
@patch("opentelemetry.sdk._events.ReadWriteLogRecord")
110+
@patch("opentelemetry.sdk._events.LogRecord")
111111
@patch("opentelemetry.sdk._logs._internal.LoggerProvider.get_logger")
112112
def test_event_logger_emit(self, logger_mock, log_record_mock):
113113
logger_provider = LoggerProvider()
@@ -143,9 +143,25 @@ def test_event_logger_emit(self, logger_mock, log_record_mock):
143143
log_record_mock_inst = Mock()
144144
log_record_mock.return_value = log_record_mock_inst
145145
event_logger.emit(event)
146+
log_record_mock.assert_called_once_with(
147+
timestamp=now,
148+
observed_timestamp=None,
149+
trace_id=trace_id,
150+
span_id=span_id,
151+
trace_flags=trace_flags,
152+
severity_text=None,
153+
severity_number=SeverityNumber.ERROR,
154+
body="test body",
155+
resource=event_logger._logger.resource,
156+
attributes={
157+
"key": "val",
158+
"foo": "bar",
159+
"event.name": "test_event",
160+
},
161+
)
146162
logger_mock_inst.emit.assert_called_once_with(log_record_mock_inst)
147163

148-
@patch("opentelemetry.sdk._events.ReadWriteLogRecord")
164+
@patch("opentelemetry.sdk._events.LogRecord")
149165
@patch("opentelemetry.sdk._logs._internal.LoggerProvider.get_logger")
150166
def test_event_logger_emit_sdk_disabled(
151167
self, logger_mock, log_record_mock

0 commit comments

Comments
 (0)