Skip to content

Commit f73d8fb

Browse files
emdnetolzchenxrmx
authored
sdk: use context instead of trace_id,span_id for initializing LogRecord (#4653)
* sdk: use context instead of trace_id,span_id for initializing LogRecord Signed-off-by: emdneto <[email protected]> * fix assert * add changelog Signed-off-by: emdneto <[email protected]> * leave the warning as before --------- Signed-off-by: emdneto <[email protected]> Co-authored-by: Leighton Chen <[email protected]> Co-authored-by: Riccardo Magliocchetti <[email protected]>
1 parent 07700dd commit f73d8fb

File tree

7 files changed

+252
-88
lines changed

7 files changed

+252
-88
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2626
([#4637](https://github.com/open-telemetry/opentelemetry-python/pull/4637))
2727
- Logging API accepts optional `context`; deprecates `trace_id`, `span_id`, `trace_flags`.
2828
([#4597](https://github.com/open-telemetry/opentelemetry-python/pull/4597))
29+
- sdk: use context instead of trace_id,span_id for initializing LogRecord
30+
([#4653](https://github.com/open-telemetry/opentelemetry-python/pull/4653))
2931
- Rename LogRecordProcessor.emit to on_emit
3032
([#4648](https://github.com/open-telemetry/opentelemetry-python/pull/4648))
3133
- Logging API hide std_to_otel function to convert python logging severity to otel severity

exporter/opentelemetry-exporter-otlp-proto-common/tests/test_log_encoder.py

Lines changed: 98 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,12 @@
4949
from opentelemetry.sdk._logs import LogRecord as SDKLogRecord
5050
from opentelemetry.sdk.resources import Resource as SDKResource
5151
from opentelemetry.sdk.util.instrumentation import InstrumentationScope
52-
from opentelemetry.trace import TraceFlags
52+
from opentelemetry.trace import (
53+
NonRecordingSpan,
54+
SpanContext,
55+
TraceFlags,
56+
set_span_in_context,
57+
)
5358

5459

5560
class TestOTLPLogEncoder(unittest.TestCase):
@@ -84,13 +89,21 @@ def test_dropped_attributes_count(self):
8489

8590
@staticmethod
8691
def _get_sdk_log_data() -> List[LogData]:
92+
ctx_log1 = set_span_in_context(
93+
NonRecordingSpan(
94+
SpanContext(
95+
89564621134313219400156819398935297684,
96+
1312458408527513268,
97+
False,
98+
TraceFlags(0x01),
99+
)
100+
)
101+
)
87102
log1 = LogData(
88103
log_record=SDKLogRecord(
89104
timestamp=1644650195189786880,
90105
observed_timestamp=1644650195189786881,
91-
trace_id=89564621134313219400156819398935297684,
92-
span_id=1312458408527513268,
93-
trace_flags=TraceFlags(0x01),
106+
context=ctx_log1,
94107
severity_text="WARN",
95108
severity_number=SeverityNumber.WARN,
96109
body="Do not go gentle into that good night. Rage, rage against the dying of the light",
@@ -109,9 +122,6 @@ def _get_sdk_log_data() -> List[LogData]:
109122
log_record=SDKLogRecord(
110123
timestamp=1644650249738562048,
111124
observed_timestamp=1644650249738562049,
112-
trace_id=0,
113-
span_id=0,
114-
trace_flags=TraceFlags.DEFAULT,
115125
severity_text="WARN",
116126
severity_number=SeverityNumber.WARN,
117127
body="Cooper, this is no time for caution!",
@@ -123,13 +133,21 @@ def _get_sdk_log_data() -> List[LogData]:
123133
),
124134
)
125135

136+
ctx_log3 = set_span_in_context(
137+
NonRecordingSpan(
138+
SpanContext(
139+
271615924622795969659406376515024083555,
140+
4242561578944770265,
141+
False,
142+
TraceFlags(0x01),
143+
)
144+
)
145+
)
126146
log3 = LogData(
127147
log_record=SDKLogRecord(
128148
timestamp=1644650427658989056,
129149
observed_timestamp=1644650427658989057,
130-
trace_id=271615924622795969659406376515024083555,
131-
span_id=4242561578944770265,
132-
trace_flags=TraceFlags(0x01),
150+
context=ctx_log3,
133151
severity_text="DEBUG",
134152
severity_number=SeverityNumber.DEBUG,
135153
body="To our galaxy",
@@ -139,13 +157,21 @@ def _get_sdk_log_data() -> List[LogData]:
139157
instrumentation_scope=None,
140158
)
141159

160+
ctx_log4 = set_span_in_context(
161+
NonRecordingSpan(
162+
SpanContext(
163+
212592107417388365804938480559624925555,
164+
6077757853989569223,
165+
False,
166+
TraceFlags(0x01),
167+
)
168+
)
169+
)
142170
log4 = LogData(
143171
log_record=SDKLogRecord(
144172
timestamp=1644650584292683008,
145173
observed_timestamp=1644650584292683009,
146-
trace_id=212592107417388365804938480559624925555,
147-
span_id=6077757853989569223,
148-
trace_flags=TraceFlags(0x01),
174+
context=ctx_log4,
149175
severity_text="INFO",
150176
severity_number=SeverityNumber.INFO,
151177
body="Love is the one thing that transcends time and space",
@@ -160,13 +186,21 @@ def _get_sdk_log_data() -> List[LogData]:
160186
),
161187
)
162188

189+
ctx_log5 = set_span_in_context(
190+
NonRecordingSpan(
191+
SpanContext(
192+
212592107417388365804938480559624925555,
193+
6077757853989569445,
194+
False,
195+
TraceFlags(0x01),
196+
)
197+
)
198+
)
163199
log5 = LogData(
164200
log_record=SDKLogRecord(
165201
timestamp=1644650584292683009,
166202
observed_timestamp=1644650584292683010,
167-
trace_id=212592107417388365804938480559624925555,
168-
span_id=6077757853989569445,
169-
trace_flags=TraceFlags(0x01),
203+
context=ctx_log5,
170204
severity_text="INFO",
171205
severity_number=SeverityNumber.INFO,
172206
body={"error": None, "array_with_nones": [1, None, 2]},
@@ -178,13 +212,21 @@ def _get_sdk_log_data() -> List[LogData]:
178212
),
179213
)
180214

215+
ctx_log6 = set_span_in_context(
216+
NonRecordingSpan(
217+
SpanContext(
218+
212592107417388365804938480559624925522,
219+
6077757853989569222,
220+
False,
221+
TraceFlags(0x01),
222+
)
223+
)
224+
)
181225
log6 = LogData(
182226
log_record=SDKLogRecord(
183227
timestamp=1644650584292683022,
184228
observed_timestamp=1644650584292683022,
185-
trace_id=212592107417388365804938480559624925522,
186-
span_id=6077757853989569222,
187-
trace_flags=TraceFlags(0x01),
229+
context=ctx_log6,
188230
severity_text="ERROR",
189231
severity_number=SeverityNumber.ERROR,
190232
body="This instrumentation scope has a schema url",
@@ -201,13 +243,21 @@ def _get_sdk_log_data() -> List[LogData]:
201243
),
202244
)
203245

246+
ctx_log7 = set_span_in_context(
247+
NonRecordingSpan(
248+
SpanContext(
249+
212592107417388365804938480559624925533,
250+
6077757853989569233,
251+
False,
252+
TraceFlags(0x01),
253+
)
254+
)
255+
)
204256
log7 = LogData(
205257
log_record=SDKLogRecord(
206258
timestamp=1644650584292683033,
207259
observed_timestamp=1644650584292683033,
208-
trace_id=212592107417388365804938480559624925533,
209-
span_id=6077757853989569233,
210-
trace_flags=TraceFlags(0x01),
260+
context=ctx_log7,
211261
severity_text="FATAL",
212262
severity_number=SeverityNumber.FATAL,
213263
body="This instrumentation scope has a schema url and attributes",
@@ -225,13 +275,21 @@ def _get_sdk_log_data() -> List[LogData]:
225275
),
226276
)
227277

278+
ctx_log8 = set_span_in_context(
279+
NonRecordingSpan(
280+
SpanContext(
281+
212592107417388365804938480559624925566,
282+
6077757853989569466,
283+
False,
284+
TraceFlags(0x01),
285+
)
286+
)
287+
)
228288
log8 = LogData(
229289
log_record=SDKLogRecord(
230290
timestamp=1644650584292683044,
231291
observed_timestamp=1644650584292683044,
232-
trace_id=212592107417388365804938480559624925566,
233-
span_id=6077757853989569466,
234-
trace_flags=TraceFlags(0x01),
292+
context=ctx_log8,
235293
severity_text="INFO",
236294
severity_number=SeverityNumber.INFO,
237295
body="Test export of extended attributes",
@@ -544,12 +602,20 @@ def get_test_logs(
544602

545603
@staticmethod
546604
def _get_test_logs_dropped_attributes() -> List[LogData]:
605+
ctx_log1 = set_span_in_context(
606+
NonRecordingSpan(
607+
SpanContext(
608+
89564621134313219400156819398935297684,
609+
1312458408527513268,
610+
False,
611+
TraceFlags(0x01),
612+
)
613+
)
614+
)
547615
log1 = LogData(
548616
log_record=SDKLogRecord(
549617
timestamp=1644650195189786880,
550-
trace_id=89564621134313219400156819398935297684,
551-
span_id=1312458408527513268,
552-
trace_flags=TraceFlags(0x01),
618+
context=ctx_log1,
553619
severity_text="WARN",
554620
severity_number=SeverityNumber.WARN,
555621
body="Do not go gentle into that good night. Rage, rage against the dying of the light",
@@ -561,13 +627,13 @@ def _get_test_logs_dropped_attributes() -> List[LogData]:
561627
"first_name", "first_version"
562628
),
563629
)
564-
630+
ctx_log2 = set_span_in_context(
631+
NonRecordingSpan(SpanContext(0, 0, False))
632+
)
565633
log2 = LogData(
566634
log_record=SDKLogRecord(
567635
timestamp=1644650249738562048,
568-
trace_id=0,
569-
span_id=0,
570-
trace_flags=TraceFlags.DEFAULT,
636+
context=ctx_log2,
571637
severity_text="WARN",
572638
severity_number=SeverityNumber.WARN,
573639
body="Cooper, this is no time for caution!",

exporter/opentelemetry-exporter-otlp-proto-grpc/tests/logs/test_otlp_logs_exporter.py

Lines changed: 56 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -51,20 +51,33 @@
5151
)
5252
from opentelemetry.sdk.resources import Resource as SDKResource
5353
from opentelemetry.sdk.util.instrumentation import InstrumentationScope
54-
from opentelemetry.trace import TraceFlags
54+
from opentelemetry.trace import (
55+
NonRecordingSpan,
56+
SpanContext,
57+
TraceFlags,
58+
set_span_in_context,
59+
)
5560

5661
THIS_DIR = dirname(__file__)
5762

5863

5964
class TestOTLPLogExporter(TestCase):
6065
def setUp(self):
6166
self.exporter = OTLPLogExporter()
67+
ctx_log_data_1 = set_span_in_context(
68+
NonRecordingSpan(
69+
SpanContext(
70+
2604504634922341076776623263868986797,
71+
5213367945872657620,
72+
False,
73+
TraceFlags(0x01),
74+
)
75+
)
76+
)
6277
self.log_data_1 = LogData(
6378
log_record=LogRecord(
6479
timestamp=int(time.time() * 1e9),
65-
trace_id=2604504634922341076776623263868986797,
66-
span_id=5213367945872657620,
67-
trace_flags=TraceFlags(0x01),
80+
context=ctx_log_data_1,
6881
severity_text="WARNING",
6982
severity_number=SeverityNumber.WARN,
7083
body="Zhengzhou, We have a heaviest rains in 1000 years",
@@ -75,12 +88,20 @@ def setUp(self):
7588
"first_name", "first_version"
7689
),
7790
)
91+
ctx_log_data_2 = set_span_in_context(
92+
NonRecordingSpan(
93+
SpanContext(
94+
2604504634922341076776623263868986799,
95+
5213367945872657623,
96+
False,
97+
TraceFlags(0x01),
98+
)
99+
)
100+
)
78101
self.log_data_2 = LogData(
79102
log_record=LogRecord(
80103
timestamp=int(time.time() * 1e9),
81-
trace_id=2604504634922341076776623263868986799,
82-
span_id=5213367945872657623,
83-
trace_flags=TraceFlags(0x01),
104+
context=ctx_log_data_2,
84105
severity_text="INFO",
85106
severity_number=SeverityNumber.INFO2,
86107
body="Sydney, Opera House is closed",
@@ -91,12 +112,20 @@ def setUp(self):
91112
"second_name", "second_version"
92113
),
93114
)
115+
ctx_log_data_3 = set_span_in_context(
116+
NonRecordingSpan(
117+
SpanContext(
118+
2604504634922341076776623263868986800,
119+
5213367945872657628,
120+
False,
121+
TraceFlags(0x01),
122+
)
123+
)
124+
)
94125
self.log_data_3 = LogData(
95126
log_record=LogRecord(
96127
timestamp=int(time.time() * 1e9),
97-
trace_id=2604504634922341076776623263868986800,
98-
span_id=5213367945872657628,
99-
trace_flags=TraceFlags(0x01),
128+
context=ctx_log_data_3,
100129
severity_text="ERROR",
101130
severity_number=SeverityNumber.WARN,
102131
body="Mumbai, Boil water before drinking",
@@ -106,12 +135,15 @@ def setUp(self):
106135
"third_name", "third_version"
107136
),
108137
)
138+
ctx_log_data_4 = set_span_in_context(
139+
NonRecordingSpan(
140+
SpanContext(0, 5213367945872657629, False, TraceFlags(0x01))
141+
)
142+
)
109143
self.log_data_4 = LogData(
110144
log_record=LogRecord(
111145
timestamp=int(time.time() * 1e9),
112-
trace_id=0,
113-
span_id=5213367945872657629,
114-
trace_flags=TraceFlags(0x01),
146+
context=ctx_log_data_4,
115147
severity_text="ERROR",
116148
severity_number=SeverityNumber.WARN,
117149
body="Invalid trace id check",
@@ -121,12 +153,20 @@ def setUp(self):
121153
"fourth_name", "fourth_version"
122154
),
123155
)
156+
ctx_log_data_5 = set_span_in_context(
157+
NonRecordingSpan(
158+
SpanContext(
159+
2604504634922341076776623263868986801,
160+
0,
161+
False,
162+
TraceFlags(0x01),
163+
)
164+
)
165+
)
124166
self.log_data_5 = LogData(
125167
log_record=LogRecord(
126168
timestamp=int(time.time() * 1e9),
127-
trace_id=2604504634922341076776623263868986801,
128-
span_id=0,
129-
trace_flags=TraceFlags(0x01),
169+
context=ctx_log_data_5,
130170
severity_text="ERROR",
131171
severity_number=SeverityNumber.WARN,
132172
body="Invalid span id check",

0 commit comments

Comments
 (0)