Skip to content
This repository was archived by the owner on Mar 31, 2026. It is now read-only.

Commit bb7e520

Browse files
committed
feat: add span attributes containing request and transaction tags
Signed-off-by: Sri Harsha CH <sriharshach@google.com>
1 parent 3943885 commit bb7e520

File tree

4 files changed

+33
-7
lines changed

4 files changed

+33
-7
lines changed

google/cloud/spanner_v1/batch.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,10 @@ def commit(
222222
database.default_transaction_options.default_read_write_transaction_options,
223223
txn_options,
224224
)
225-
trace_attributes = {"num_mutations": len(self._mutations)}
225+
trace_attributes = {
226+
"num_mutations": len(self._mutations),
227+
"transaction.tag": self.transaction_tag,
228+
}
226229

227230
if request_options is None:
228231
request_options = RequestOptions()
@@ -352,12 +355,15 @@ def batch_write(self, request_options=None, exclude_txn_from_change_streams=Fals
352355
metadata.append(
353356
_metadata_with_leader_aware_routing(database._route_to_leader_enabled)
354357
)
355-
trace_attributes = {"num_mutation_groups": len(self._mutation_groups)}
356358
if request_options is None:
357359
request_options = RequestOptions()
358360
elif type(request_options) is dict:
359361
request_options = RequestOptions(request_options)
360362

363+
trace_attributes = {
364+
"num_mutation_groups": len(self._mutation_groups),
365+
"request.tag": request_options.request_tag,
366+
}
361367
request = BatchWriteRequest(
362368
session=self._session.name,
363369
mutation_groups=self._mutation_groups,

google/cloud/spanner_v1/session.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,9 +472,11 @@ def run_in_transaction(self, func, *args, **kw):
472472
attempts = 0
473473

474474
observability_options = getattr(self._database, "observability_options", None)
475+
trace_attributes = {"transaction.tag": transaction_tag}
475476
with trace_call(
476477
"CloudSpanner.Session.run_in_transaction",
477478
self,
479+
extra_attributes=trace_attributes,
478480
observability_options=observability_options,
479481
) as span, MetricsCapture():
480482
while True:

google/cloud/spanner_v1/snapshot.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,12 @@ def read(
337337
timeout=timeout,
338338
)
339339

340-
trace_attributes = {"table_id": table, "columns": columns}
340+
trace_attributes = {
341+
"table_id": table,
342+
"columns": columns,
343+
"request.tag": request_options.request_tag,
344+
"transaction.tag": request_options.transaction_tag,
345+
}
341346
observability_options = getattr(database, "observability_options", None)
342347

343348
if self._transaction_id is None:
@@ -570,7 +575,11 @@ def execute_sql(
570575
timeout=timeout,
571576
)
572577

573-
trace_attributes = {"db.statement": sql}
578+
trace_attributes = {
579+
"db.statement": sql,
580+
"request.tag": request_options.request_tag,
581+
"transaction.tag": request_options.transaction_tag,
582+
}
574583
observability_options = getattr(database, "observability_options", None)
575584

576585
if self._transaction_id is None:

google/cloud/spanner_v1/transaction.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,10 @@ def commit(
264264
:raises ValueError: if there are no mutations to commit.
265265
"""
266266
database = self._session._database
267-
trace_attributes = {"num_mutations": len(self._mutations)}
267+
trace_attributes = {
268+
"num_mutations": len(self._mutations),
269+
"transaction.tag": self.transaction_tag,
270+
}
268271
observability_options = getattr(database, "observability_options", None)
269272
api = database.spanner_api
270273
metadata = _metadata_with_prefix(database.name)
@@ -455,7 +458,11 @@ def execute_update(
455458
request_options = RequestOptions(request_options)
456459
request_options.transaction_tag = self.transaction_tag
457460

458-
trace_attributes = {"db.statement": dml}
461+
trace_attributes = {
462+
"db.statement": dml,
463+
"request.tag": request_options.request_tag,
464+
"transaction.tag": request_options.transaction_tag,
465+
}
459466

460467
request = ExecuteSqlRequest(
461468
session=self._session.name,
@@ -601,7 +608,9 @@ def batch_update(
601608

602609
trace_attributes = {
603610
# Get just the queries from the DML statement batch
604-
"db.statement": ";".join([statement.sql for statement in parsed])
611+
"db.statement": ";".join([statement.sql for statement in parsed]),
612+
"request.tag": request_options.request_tag,
613+
"transaction.tag": request_options.transaction_tag,
605614
}
606615
request = ExecuteBatchDmlRequest(
607616
session=self._session.name,

0 commit comments

Comments
 (0)