Skip to content

Commit 25dd2a9

Browse files
committed
feat: update xray trace id generator for 'random-trace-id' flags changes
1 parent 46a0d1d commit 25dd2a9

File tree

9 files changed

+58
-34
lines changed

9 files changed

+58
-34
lines changed

instrumentation-genai/opentelemetry-instrumentation-openai-v2/tests/test_async_chat_completions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -762,7 +762,7 @@ async def test_async_chat_completion_streaming_unsampled(
762762

763763
assert logs[0].log_record.trace_id is not None
764764
assert logs[0].log_record.span_id is not None
765-
assert logs[0].log_record.trace_flags == 0
765+
assert not logs[0].log_record.trace_flags.sampled
766766

767767
assert logs[0].log_record.trace_id == logs[1].log_record.trace_id
768768
assert logs[0].log_record.span_id == logs[1].log_record.span_id

instrumentation-genai/opentelemetry-instrumentation-openai-v2/tests/test_chat_completions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -827,7 +827,7 @@ def test_chat_completion_with_content_span_unsampled(
827827

828828
assert logs[0].log_record.trace_id is not None
829829
assert logs[0].log_record.span_id is not None
830-
assert logs[0].log_record.trace_flags == 0
830+
assert not logs[0].log_record.trace_flags.sampled
831831

832832
assert logs[0].log_record.trace_id == logs[1].log_record.trace_id
833833
assert logs[0].log_record.span_id == logs[1].log_record.span_id

instrumentation/opentelemetry-instrumentation-asgi/tests/test_asgi_middleware.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1044,7 +1044,8 @@ async def test_traceresponse_header(self):
10441044

10451045
trace_id = format_trace_id(span.get_span_context().trace_id)
10461046
span_id = format_span_id(span.get_span_context().span_id)
1047-
traceresponse = f"00-{trace_id}-{span_id}-01"
1047+
trace_flags = span.get_span_context().trace_flags
1048+
traceresponse = f"00-{trace_id}-{span_id}-{trace_flags:02x}"
10481049

10491050
self.assertListEqual(
10501051
response_start["headers"],
@@ -1318,7 +1319,8 @@ async def test_websocket_traceresponse_header(self):
13181319

13191320
trace_id = format_trace_id(span.get_span_context().trace_id)
13201321
span_id = format_span_id(span.get_span_context().span_id)
1321-
traceresponse = f"00-{trace_id}-{span_id}-01"
1322+
trace_flags = span.get_span_context().trace_flags
1323+
traceresponse = f"00-{trace_id}-{span_id}-{trace_flags:02x}"
13221324

13231325
self.assertListEqual(
13241326
socket_send["headers"],

instrumentation/opentelemetry-instrumentation-boto3sqs/tests/test_boto3sqs_instrumentation.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
SpanAttributes,
3434
)
3535
from opentelemetry.test.test_base import TestBase
36-
from opentelemetry.trace import SpanKind
36+
from opentelemetry.trace import SpanKind, TraceFlags
3737
from opentelemetry.trace.span import Span, format_span_id, format_trace_id
3838

3939

@@ -217,7 +217,7 @@ def _assert_injected_span(self, msg_attrs: Dict[str, Any], span: Span):
217217
trace_parent = msg_attrs["traceparent"]["StringValue"]
218218
ctx = span.get_span_context()
219219
self.assertEqual(
220-
self._to_trace_parent(ctx.trace_id, ctx.span_id),
220+
self._to_trace_parent(ctx.trace_id, ctx.span_id, ctx.trace_flags),
221221
trace_parent.lower(),
222222
)
223223

@@ -230,8 +230,8 @@ def _default_span_attrs(self):
230230
}
231231

232232
@staticmethod
233-
def _to_trace_parent(trace_id: int, span_id: int) -> str:
234-
return f"00-{format_trace_id(trace_id)}-{format_span_id(span_id)}-01".lower()
233+
def _to_trace_parent(trace_id: int, span_id: int, trace_flags: TraceFlags) -> str:
234+
return f"00-{format_trace_id(trace_id)}-{format_span_id(span_id)}-{trace_flags:02x}".lower()
235235

236236
def _get_only_span(self):
237237
spans = self.get_finished_spans()
@@ -254,7 +254,7 @@ def _add_trace_parent(
254254
self, message: Dict[str, Any], trace_id: int, span_id: int
255255
):
256256
message["MessageAttributes"]["traceparent"] = {
257-
"StringValue": self._to_trace_parent(trace_id, span_id),
257+
"StringValue": self._to_trace_parent(trace_id, span_id, TraceFlags.get_default()),
258258
"DataType": "String",
259259
}
260260

instrumentation/opentelemetry-instrumentation-django/tests/test_middleware_asgi.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -644,9 +644,10 @@ async def test_trace_response_headers(self):
644644
)
645645
trace_id = format_trace_id(span.get_span_context().trace_id)
646646
span_id = format_span_id(span.get_span_context().span_id)
647+
trace_flags = span.get_span_context().trace_flags
647648
self.assertEqual(
648649
response["traceresponse"],
649-
f"00-{trace_id}-{span_id}-01",
650+
f"00-{trace_id}-{span_id}-{trace_flags:02x}",
650651
)
651652
self.memory_exporter.clear()
652653

instrumentation/opentelemetry-instrumentation-mysql/tests/test_mysql_integration.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -154,9 +154,10 @@ def test_instrument_connection_with_dbapi_sqlcomment_enabled(self):
154154
span = spans_list[0]
155155
span_id = format(span.get_span_context().span_id, "016x")
156156
trace_id = format(span.get_span_context().trace_id, "032x")
157+
trace_flags = format(span.get_span_context().trace_flags, "02x")
157158
self.assertEqual(
158159
mock_cursor.execute.call_args[0][0],
159-
f"Select 1 /*db_driver='mysql.connector%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-01'*/;",
160+
f"Select 1 /*db_driver='mysql.connector%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-{trace_flags}'*/;",
160161
)
161162
self.assertEqual(
162163
span.attributes[DB_STATEMENT],
@@ -193,13 +194,14 @@ def test_instrument_connection_with_dbapi_sqlcomment_enabled_stmt_enabled(
193194
span = spans_list[0]
194195
span_id = format(span.get_span_context().span_id, "016x")
195196
trace_id = format(span.get_span_context().trace_id, "032x")
197+
trace_flags = format(span.get_span_context().trace_flags, "02x")
196198
self.assertEqual(
197199
mock_cursor.execute.call_args[0][0],
198-
f"Select 1 /*db_driver='mysql.connector%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-01'*/;",
200+
f"Select 1 /*db_driver='mysql.connector%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-{trace_flags}'*/;",
199201
)
200202
self.assertEqual(
201203
span.attributes[DB_STATEMENT],
202-
f"Select 1 /*db_driver='mysql.connector%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-01'*/;",
204+
f"Select 1 /*db_driver='mysql.connector%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-{trace_flags}'*/;",
203205
)
204206

205207
def test_instrument_connection_with_dbapi_sqlcomment_enabled_with_options(
@@ -236,9 +238,10 @@ def test_instrument_connection_with_dbapi_sqlcomment_enabled_with_options(
236238
span = spans_list[0]
237239
span_id = format(span.get_span_context().span_id, "016x")
238240
trace_id = format(span.get_span_context().trace_id, "032x")
241+
trace_flags = format(span.get_span_context().trace_flags, "02x")
239242
self.assertEqual(
240243
mock_cursor.execute.call_args[0][0],
241-
f"Select 1 /*db_driver='mysql.connector%%3Afoobar',dbapi_threadsafety='123',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-01'*/;",
244+
f"Select 1 /*db_driver='mysql.connector%%3Afoobar',dbapi_threadsafety='123',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-{trace_flags}'*/;",
242245
)
243246
self.assertEqual(
244247
span.attributes[DB_STATEMENT],
@@ -329,9 +332,10 @@ def test_instrument_with_dbapi_sqlcomment_enabled(
329332
span = spans_list[0]
330333
span_id = format(span.get_span_context().span_id, "016x")
331334
trace_id = format(span.get_span_context().trace_id, "032x")
335+
trace_flags = format(span.get_span_context().trace_flags, "02x")
332336
self.assertEqual(
333337
mock_cursor.execute.call_args[0][0],
334-
f"Select 1 /*db_driver='mysql.connector%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-01'*/;",
338+
f"Select 1 /*db_driver='mysql.connector%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-{trace_flags}'*/;",
335339
)
336340
self.assertEqual(
337341
span.attributes[DB_STATEMENT],
@@ -370,13 +374,14 @@ def test_instrument_with_dbapi_sqlcomment_enabled_stmt_enabled(
370374
span = spans_list[0]
371375
span_id = format(span.get_span_context().span_id, "016x")
372376
trace_id = format(span.get_span_context().trace_id, "032x")
377+
trace_flags = format(span.get_span_context().trace_flags, "02x")
373378
self.assertEqual(
374379
mock_cursor.execute.call_args[0][0],
375-
f"Select 1 /*db_driver='mysql.connector%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-01'*/;",
380+
f"Select 1 /*db_driver='mysql.connector%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-{trace_flags}'*/;",
376381
)
377382
self.assertEqual(
378383
span.attributes[DB_STATEMENT],
379-
f"Select 1 /*db_driver='mysql.connector%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-01'*/;",
384+
f"Select 1 /*db_driver='mysql.connector%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-{trace_flags}'*/;",
380385
)
381386

382387
def test_instrument_with_dbapi_sqlcomment_enabled_with_options(
@@ -415,9 +420,10 @@ def test_instrument_with_dbapi_sqlcomment_enabled_with_options(
415420
span = spans_list[0]
416421
span_id = format(span.get_span_context().span_id, "016x")
417422
trace_id = format(span.get_span_context().trace_id, "032x")
423+
trace_flags = format(span.get_span_context().trace_flags, "02x")
418424
self.assertEqual(
419425
mock_cursor.execute.call_args[0][0],
420-
f"Select 1 /*db_driver='mysql.connector%%3Afoobar',dbapi_threadsafety='123',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-01'*/;",
426+
f"Select 1 /*db_driver='mysql.connector%%3Afoobar',dbapi_threadsafety='123',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-{trace_flags}'*/;",
421427
)
422428
self.assertEqual(
423429
span.attributes[DB_STATEMENT],

instrumentation/opentelemetry-instrumentation-mysqlclient/tests/test_mysqlclient_integration.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -152,9 +152,10 @@ def test_instrument_connection_with_dbapi_sqlcomment_enabled(self):
152152
span = spans_list[0]
153153
span_id = format(span.get_span_context().span_id, "016x")
154154
trace_id = format(span.get_span_context().trace_id, "032x")
155+
trace_flags = format(span.get_span_context().trace_flags, "02x")
155156
self.assertEqual(
156157
mock_cursor.execute.call_args[0][0],
157-
f"Select 1 /*db_driver='MySQLdb%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-01'*/;",
158+
f"Select 1 /*db_driver='MySQLdb%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-{trace_flags}'*/;",
158159
)
159160
self.assertEqual(
160161
span.attributes[SpanAttributes.DB_STATEMENT],
@@ -196,13 +197,14 @@ def test_instrument_connection_with_dbapi_sqlcomment_enabled_stmt_enabled(
196197
span = spans_list[0]
197198
span_id = format(span.get_span_context().span_id, "016x")
198199
trace_id = format(span.get_span_context().trace_id, "032x")
200+
trace_flags = format(span.get_span_context().trace_flags, "02x")
199201
self.assertEqual(
200202
mock_cursor.execute.call_args[0][0],
201-
f"Select 1 /*db_driver='MySQLdb%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-01'*/;",
203+
f"Select 1 /*db_driver='MySQLdb%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-{trace_flags}'*/;",
202204
)
203205
self.assertEqual(
204206
span.attributes[SpanAttributes.DB_STATEMENT],
205-
f"Select 1 /*db_driver='MySQLdb%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-01'*/;",
207+
f"Select 1 /*db_driver='MySQLdb%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-{trace_flags}'*/;",
206208
)
207209

208210
def test_instrument_connection_with_dbapi_sqlcomment_enabled_with_options(
@@ -244,9 +246,10 @@ def test_instrument_connection_with_dbapi_sqlcomment_enabled_with_options(
244246
span = spans_list[0]
245247
span_id = format(span.get_span_context().span_id, "016x")
246248
trace_id = format(span.get_span_context().trace_id, "032x")
249+
trace_flags = format(span.get_span_context().trace_flags, "02x")
247250
self.assertEqual(
248251
mock_cursor.execute.call_args[0][0],
249-
f"Select 1 /*db_driver='MySQLdb%%3Afoobar',dbapi_threadsafety='123',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-01'*/;",
252+
f"Select 1 /*db_driver='MySQLdb%%3Afoobar',dbapi_threadsafety='123',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-{trace_flags}'*/;",
250253
)
251254
self.assertEqual(
252255
span.attributes[SpanAttributes.DB_STATEMENT],
@@ -345,9 +348,10 @@ def test_instrument_with_dbapi_sqlcomment_enabled(
345348
span = spans_list[0]
346349
span_id = format(span.get_span_context().span_id, "016x")
347350
trace_id = format(span.get_span_context().trace_id, "032x")
351+
trace_flags = format(span.get_span_context().trace_flags, "02x")
348352
self.assertEqual(
349353
mock_cursor.execute.call_args[0][0],
350-
f"Select 1 /*db_driver='MySQLdb%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-01'*/;",
354+
f"Select 1 /*db_driver='MySQLdb%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-{trace_flags}'*/;",
351355
)
352356
self.assertEqual(
353357
span.attributes[SpanAttributes.DB_STATEMENT],
@@ -390,13 +394,14 @@ def test_instrument_with_dbapi_sqlcomment_enabled_stmt_enabled(
390394
span = spans_list[0]
391395
span_id = format(span.get_span_context().span_id, "016x")
392396
trace_id = format(span.get_span_context().trace_id, "032x")
397+
trace_flags = format(span.get_span_context().trace_flags, "02x")
393398
self.assertEqual(
394399
mock_cursor.execute.call_args[0][0],
395-
f"Select 1 /*db_driver='MySQLdb%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-01'*/;",
400+
f"Select 1 /*db_driver='MySQLdb%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-{trace_flags}'*/;",
396401
)
397402
self.assertEqual(
398403
span.attributes[SpanAttributes.DB_STATEMENT],
399-
f"Select 1 /*db_driver='MySQLdb%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-01'*/;",
404+
f"Select 1 /*db_driver='MySQLdb%%3Afoobar',dbapi_level='123',dbapi_threadsafety='123',driver_paramstyle='test',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-{trace_flags}'*/;",
400405
)
401406

402407
def test_instrument_with_dbapi_sqlcomment_enabled_with_options(
@@ -439,9 +444,10 @@ def test_instrument_with_dbapi_sqlcomment_enabled_with_options(
439444
span = spans_list[0]
440445
span_id = format(span.get_span_context().span_id, "016x")
441446
trace_id = format(span.get_span_context().trace_id, "032x")
447+
trace_flags = format(span.get_span_context().trace_flags, "02x")
442448
self.assertEqual(
443449
mock_cursor.execute.call_args[0][0],
444-
f"Select 1 /*db_driver='MySQLdb%%3Afoobar',dbapi_threadsafety='123',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-01'*/;",
450+
f"Select 1 /*db_driver='MySQLdb%%3Afoobar',dbapi_threadsafety='123',mysql_client_version='foobaz',traceparent='00-{trace_id}-{span_id}-{trace_flags}'*/;",
445451
)
446452
self.assertEqual(
447453
span.attributes[SpanAttributes.DB_STATEMENT],

0 commit comments

Comments
 (0)