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

Commit ce2d907

Browse files
committed
chore: Add gcp resource name span attribute
1 parent f8f3f87 commit ce2d907

File tree

8 files changed

+25
-0
lines changed

8 files changed

+25
-0
lines changed

google/cloud/spanner_v1/_opentelemetry_tracing.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636

3737
TRACER_NAME = "cloud.google.com/python/spanner"
3838
TRACER_VERSION = gapic_version.__version__
39+
GCP_RESOURCE_NAME_PREFIX = "//spanner.googleapis.com/"
3940
extended_tracing_globally_disabled = (
4041
os.getenv("SPANNER_ENABLE_EXTENDED_TRACING", "").lower() == "false"
4142
)
@@ -106,6 +107,7 @@ def trace_call(
106107
"gcp.client.service": "spanner",
107108
"gcp.client.version": TRACER_VERSION,
108109
"gcp.client.repo": "googleapis/python-spanner",
110+
"gcp.resource.name": GCP_RESOURCE_NAME_PREFIX + db_name,
109111
}
110112

111113
if extra_attributes:

tests/system/test_session_api.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import threading
2222
import time
2323
import uuid
24+
from google.cloud.spanner_v1 import _opentelemetry_tracing
2425
import pytest
2526

2627
import grpc
@@ -362,6 +363,8 @@ def _make_attributes(db_instance, **kwargs):
362363
"gcp.client.service": "spanner",
363364
"gcp.client.version": ot_helpers.LIB_VERSION,
364365
"gcp.client.repo": "googleapis/python-spanner",
366+
"gcp.resource.name": _opentelemetry_tracing.GCP_RESOURCE_NAME_PREFIX
367+
+ db_instance,
365368
}
366369
ot_helpers.enrich_with_otel_scope(attributes)
367370

tests/unit/test__opentelemetry_tracing.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ def test_trace_call(self, mock_region):
5252
"gcp.client.service": "spanner",
5353
"gcp.client.version": LIB_VERSION,
5454
"gcp.client.repo": "googleapis/python-spanner",
55+
"gcp.resource.name": _opentelemetry_tracing.GCP_RESOURCE_NAME_PREFIX
56+
+ "database_name",
5557
}
5658
)
5759
expected_attributes.update(extra_attributes)
@@ -87,6 +89,8 @@ def test_trace_error(self, mock_region):
8789
"gcp.client.service": "spanner",
8890
"gcp.client.version": LIB_VERSION,
8991
"gcp.client.repo": "googleapis/python-spanner",
92+
"gcp.resource.name": _opentelemetry_tracing.GCP_RESOURCE_NAME_PREFIX
93+
+ "database_name",
9094
}
9195
)
9296
expected_attributes.update(extra_attributes)

tests/unit/test_batch.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
Mutation,
3030
BatchWriteResponse,
3131
DefaultTransactionOptions,
32+
_opentelemetry_tracing,
3233
)
3334
import mock
3435
from google.cloud._helpers import UTC, _datetime_to_pb_timestamp
@@ -58,6 +59,7 @@
5859
"gcp.client.service": "spanner",
5960
"gcp.client.version": LIB_VERSION,
6061
"gcp.client.repo": "googleapis/python-spanner",
62+
"gcp.resource.name": _opentelemetry_tracing.GCP_RESOURCE_NAME_PREFIX + "testing",
6163
"cloud.region": "global",
6264
}
6365
enrich_with_otel_scope(BASE_ATTRIBUTES)

tests/unit/test_pool.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from datetime import datetime, timedelta
2020

2121
import mock
22+
from google.cloud.spanner_v1 import _opentelemetry_tracing
2223
from google.cloud.spanner_v1._helpers import (
2324
_metadata_with_request_id,
2425
AtomicCounter,
@@ -155,6 +156,7 @@ class TestFixedSizePool(OpenTelemetryBase):
155156
"gcp.client.service": "spanner",
156157
"gcp.client.version": LIB_VERSION,
157158
"gcp.client.repo": "googleapis/python-spanner",
159+
"gcp.resource.name": _opentelemetry_tracing.GCP_RESOURCE_NAME_PREFIX + "name",
158160
"cloud.region": "global",
159161
}
160162
enrich_with_otel_scope(BASE_ATTRIBUTES)
@@ -549,6 +551,7 @@ class TestBurstyPool(OpenTelemetryBase):
549551
"gcp.client.service": "spanner",
550552
"gcp.client.version": LIB_VERSION,
551553
"gcp.client.repo": "googleapis/python-spanner",
554+
"gcp.resource.name": _opentelemetry_tracing.GCP_RESOURCE_NAME_PREFIX + "name",
552555
"cloud.region": "global",
553556
}
554557
enrich_with_otel_scope(BASE_ATTRIBUTES)
@@ -839,6 +842,7 @@ class TestPingingPool(OpenTelemetryBase):
839842
"gcp.client.service": "spanner",
840843
"gcp.client.version": LIB_VERSION,
841844
"gcp.client.repo": "googleapis/python-spanner",
845+
"gcp.resource.name": _opentelemetry_tracing.GCP_RESOURCE_NAME_PREFIX + "name",
842846
"cloud.region": "global",
843847
}
844848
enrich_with_otel_scope(BASE_ATTRIBUTES)

tests/unit/test_session.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
# limitations under the License.
1414

1515

16+
from build.lib.google.cloud.spanner_v1 import _opentelemetry_tracing
1617
import google.api_core.gapic_v1.method
1718
from google.cloud.spanner_v1._opentelemetry_tracing import trace_call
1819
import mock
@@ -130,6 +131,8 @@ class TestSession(OpenTelemetryBase):
130131
"gcp.client.service": "spanner",
131132
"gcp.client.version": LIB_VERSION,
132133
"gcp.client.repo": "googleapis/python-spanner",
134+
"gcp.resource.name": _opentelemetry_tracing.GCP_RESOURCE_NAME_PREFIX
135+
+ DATABASE_NAME,
133136
"cloud.region": "global",
134137
}
135138
enrich_with_otel_scope(BASE_ATTRIBUTES)

tests/unit/test_snapshot.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
BeginTransactionRequest,
2727
TransactionOptions,
2828
TransactionSelector,
29+
_opentelemetry_tracing,
2930
)
3031
from google.cloud.spanner_v1.snapshot import _SnapshotBase
3132
from tests._builders import (
@@ -80,6 +81,7 @@
8081
"gcp.client.service": "spanner",
8182
"gcp.client.version": LIB_VERSION,
8283
"gcp.client.repo": "googleapis/python-spanner",
84+
"gcp.resource.name": _opentelemetry_tracing.GCP_RESOURCE_NAME_PREFIX + "testing",
8385
}
8486
enrich_with_otel_scope(BASE_ATTRIBUTES)
8587

@@ -2282,6 +2284,8 @@ def _build_span_attributes(
22822284
"gcp.client.service": "spanner",
22832285
"gcp.client.version": LIB_VERSION,
22842286
"gcp.client.repo": "googleapis/python-spanner",
2287+
"gcp.resource.name": _opentelemetry_tracing.GCP_RESOURCE_NAME_PREFIX
2288+
+ database.name,
22852289
"x_goog_spanner_request_id": _build_request_id(database, attempt),
22862290
}
22872291
attributes.update(extra_attributes)

tests/unit/test_transaction.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
BeginTransactionRequest,
2626
TransactionOptions,
2727
ResultSetMetadata,
28+
_opentelemetry_tracing,
2829
)
2930
from google.cloud.spanner_v1._helpers import GOOGLE_CLOUD_REGION_GLOBAL
3031
from google.cloud.spanner_v1 import DefaultTransactionOptions
@@ -1345,6 +1346,8 @@ def _build_span_attributes(
13451346
"gcp.client.service": "spanner",
13461347
"gcp.client.version": LIB_VERSION,
13471348
"gcp.client.repo": "googleapis/python-spanner",
1349+
"gcp.resource.name": _opentelemetry_tracing.GCP_RESOURCE_NAME_PREFIX
1350+
+ database.name,
13481351
"cloud.region": GOOGLE_CLOUD_REGION_GLOBAL,
13491352
}
13501353
)

0 commit comments

Comments
 (0)