Skip to content

Commit 3f30c75

Browse files
Logs API accepts whole context
1 parent 8d391bb commit 3f30c75

File tree

6 files changed

+45
-47
lines changed

6 files changed

+45
-47
lines changed

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

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
from opentelemetry.environment_variables import (
2323
_OTEL_PYTHON_EVENT_LOGGER_PROVIDER,
2424
)
25-
from opentelemetry.trace.span import TraceFlags
25+
from opentelemetry.trace.span import SpanContext
2626
from opentelemetry.util._once import Once
2727
from opentelemetry.util._providers import _load_provider
2828
from opentelemetry.util.types import AnyValue, _ExtendedAttributes
@@ -35,9 +35,7 @@ def __init__(
3535
self,
3636
name: str,
3737
timestamp: Optional[int] = None,
38-
trace_id: Optional[int] = None,
39-
span_id: Optional[int] = None,
40-
trace_flags: Optional["TraceFlags"] = None,
38+
span_context: Optional[SpanContext] = None,
4139
body: Optional[AnyValue] = None,
4240
severity_number: Optional[SeverityNumber] = None,
4341
attributes: Optional[_ExtendedAttributes] = None,
@@ -49,9 +47,7 @@ def __init__(
4947
}
5048
super().__init__(
5149
timestamp=timestamp,
52-
trace_id=trace_id,
53-
span_id=span_id,
54-
trace_flags=trace_flags,
50+
span_context=span_context,
5551
body=body,
5652
severity_number=severity_number,
5753
attributes=event_attributes,

opentelemetry-api/src/opentelemetry/_logs/_internal/__init__.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141

4242
from opentelemetry._logs.severity import SeverityNumber
4343
from opentelemetry.environment_variables import _OTEL_PYTHON_LOGGER_PROVIDER
44-
from opentelemetry.trace.span import TraceFlags
44+
from opentelemetry.trace.span import SpanContext
4545
from opentelemetry.util._once import Once
4646
from opentelemetry.util._providers import _load_provider
4747
from opentelemetry.util.types import AnyValue, _ExtendedAttributes
@@ -61,9 +61,7 @@ def __init__(
6161
self,
6262
timestamp: Optional[int] = None,
6363
observed_timestamp: Optional[int] = None,
64-
trace_id: Optional[int] = None,
65-
span_id: Optional[int] = None,
66-
trace_flags: Optional["TraceFlags"] = None,
64+
span_context: Optional[SpanContext] = None,
6765
severity_text: Optional[str] = None,
6866
severity_number: Optional[SeverityNumber] = None,
6967
body: AnyValue = None,
@@ -73,9 +71,12 @@ def __init__(
7371
if observed_timestamp is None:
7472
observed_timestamp = time_ns()
7573
self.observed_timestamp = observed_timestamp
76-
self.trace_id = trace_id
77-
self.span_id = span_id
78-
self.trace_flags = trace_flags
74+
self.span_context = span_context
75+
self.trace_id = self.span_id = self.trace_flags = None
76+
if span_context:
77+
self.trace_id = span_context.trace_id
78+
self.span_id = span_context.span_id
79+
self.trace_flags = span_context.trace_flags
7980
self.severity_text = severity_text
8081
self.severity_number = severity_number
8182
self.body = body

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,7 @@ def emit(self, event: Event) -> None:
5353
log_record = LogRecord(
5454
timestamp=event.timestamp or time_ns(),
5555
observed_timestamp=None,
56-
trace_id=event.trace_id or span_context.trace_id,
57-
span_id=event.span_id or span_context.span_id,
58-
trace_flags=event.trace_flags or span_context.trace_flags,
56+
span_context=event.span_context or span_context,
5957
severity_text=None,
6058
severity_number=event.severity_number or SeverityNumber.INFO,
6159
body=event.body,

opentelemetry-sdk/src/opentelemetry/sdk/_logs/_internal/__init__.py

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from os import environ
2525
from threading import Lock
2626
from time import time_ns
27-
from typing import Any, Callable, Tuple, Union, cast # noqa
27+
from typing import Any, Callable, Optional, Tuple, Union, cast # noqa
2828

2929
from opentelemetry._logs import Logger as APILogger
3030
from opentelemetry._logs import LoggerProvider as APILoggerProvider
@@ -52,7 +52,7 @@
5252
format_trace_id,
5353
get_current_span,
5454
)
55-
from opentelemetry.trace.span import TraceFlags
55+
from opentelemetry.trace.span import SpanContext
5656
from opentelemetry.util.types import AnyValue, _ExtendedAttributes
5757

5858
_logger = logging.getLogger(__name__)
@@ -176,9 +176,7 @@ def __init__(
176176
self,
177177
timestamp: int | None = None,
178178
observed_timestamp: int | None = None,
179-
trace_id: int | None = None,
180-
span_id: int | None = None,
181-
trace_flags: TraceFlags | None = None,
179+
span_context: Optional[SpanContext] = None,
182180
severity_text: str | None = None,
183181
severity_number: SeverityNumber | None = None,
184182
body: AnyValue | None = None,
@@ -190,9 +188,7 @@ def __init__(
190188
**{
191189
"timestamp": timestamp,
192190
"observed_timestamp": observed_timestamp,
193-
"trace_id": trace_id,
194-
"span_id": span_id,
195-
"trace_flags": trace_flags,
191+
"span_context": span_context,
196192
"severity_text": severity_text,
197193
"severity_number": severity_number,
198194
"body": body,
@@ -548,9 +544,7 @@ def _translate(self, record: logging.LogRecord) -> LogRecord:
548544
return LogRecord(
549545
timestamp=timestamp,
550546
observed_timestamp=observered_timestamp,
551-
trace_id=span_context.trace_id,
552-
span_id=span_context.span_id,
553-
trace_flags=span_context.trace_flags,
547+
span_context=span_context,
554548
severity_text=level_name,
555549
severity_number=severity_number,
556550
body=body,

opentelemetry-sdk/tests/events/test_events.py

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
from opentelemetry.sdk._logs import LoggerProvider
2424
from opentelemetry.sdk._logs._internal import Logger, NoOpLogger
2525
from opentelemetry.sdk.environment_variables import OTEL_SDK_DISABLED
26+
from opentelemetry.trace import TraceFlags
27+
from opentelemetry.trace.span import SpanContext
2628

2729

2830
class TestEventLoggerProvider(unittest.TestCase):
@@ -123,15 +125,17 @@ def test_event_logger_emit(self, logger_mock, log_record_mock):
123125
"name", "version", "schema_url", {"key": "value"}
124126
)
125127
now = Mock()
126-
trace_id = Mock()
127-
span_id = Mock()
128-
trace_flags = Mock()
128+
trace_flags = TraceFlags(0x01)
129+
span_context = SpanContext(
130+
2604504634922341076776623263868986797,
131+
5213367945872657620,
132+
True,
133+
trace_flags,
134+
)
129135
event = Event(
130136
name="test_event",
131137
timestamp=now,
132-
trace_id=trace_id,
133-
span_id=span_id,
134-
trace_flags=trace_flags,
138+
span_context=span_context,
135139
body="test body",
136140
severity_number=SeverityNumber.ERROR,
137141
attributes={
@@ -146,9 +150,7 @@ def test_event_logger_emit(self, logger_mock, log_record_mock):
146150
log_record_mock.assert_called_once_with(
147151
timestamp=now,
148152
observed_timestamp=None,
149-
trace_id=trace_id,
150-
span_id=span_id,
151-
trace_flags=trace_flags,
153+
span_context=span_context,
152154
severity_text=None,
153155
severity_number=SeverityNumber.ERROR,
154156
body="test body",
@@ -179,15 +181,16 @@ def test_event_logger_emit_sdk_disabled(
179181
"name", "version", "schema_url", {"key": "value"}
180182
)
181183
now = Mock()
182-
trace_id = Mock()
183-
span_id = Mock()
184-
trace_flags = Mock()
184+
span_context = SpanContext(
185+
2604504634922341076776623263868986797,
186+
5213367945872657620,
187+
True,
188+
Mock(),
189+
)
185190
event = Event(
186191
name="test_event",
187192
timestamp=now,
188-
trace_id=trace_id,
189-
span_id=span_id,
190-
trace_flags=trace_flags,
193+
span_context=span_context,
191194
body="test body",
192195
severity_number=SeverityNumber.ERROR,
193196
attributes={

opentelemetry-sdk/tests/logs/test_export.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,10 @@
4343
from opentelemetry.sdk.resources import Resource as SDKResource
4444
from opentelemetry.sdk.util.instrumentation import InstrumentationScope
4545
from opentelemetry.trace import TraceFlags
46-
from opentelemetry.trace.span import INVALID_SPAN_CONTEXT
46+
from opentelemetry.trace.span import (
47+
INVALID_SPAN_CONTEXT,
48+
SpanContext,
49+
)
4750

4851
EMPTY_LOG = LogData(
4952
log_record=LogRecord(),
@@ -522,9 +525,12 @@ def test_export(self): # pylint: disable=no-self-use
522525
log_data = LogData(
523526
log_record=LogRecord(
524527
timestamp=int(time.time() * 1e9),
525-
trace_id=2604504634922341076776623263868986797,
526-
span_id=5213367945872657620,
527-
trace_flags=TraceFlags(0x01),
528+
span_context=SpanContext(
529+
2604504634922341076776623263868986797,
530+
5213367945872657620,
531+
True,
532+
TraceFlags(0x01),
533+
),
528534
severity_text="WARN",
529535
severity_number=SeverityNumber.WARN,
530536
body="Zhengzhou, We have a heaviest rains in 1000 years",

0 commit comments

Comments
 (0)