Skip to content

Commit 63cff04

Browse files
authored
chore: add Cloud Trace adoption attributes (#1374)
1 parent 012eab4 commit 63cff04

File tree

2 files changed

+16
-14
lines changed

2 files changed

+16
-14
lines changed

google/cloud/storage/_opentelemetry_tracing.py

+7
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@
5454
"user_agent.original": f"gcloud-python/{__version__}",
5555
}
5656

57+
_cloud_trace_adoption_attrs = {
58+
"gcp.client.service": "storage",
59+
"gcp.client.version": __version__,
60+
"gcp.client.repo": "googleapis/python-storage",
61+
}
62+
5763

5864
@contextmanager
5965
def create_trace_span(name, attributes=None, client=None, api_request=None, retry=None):
@@ -79,6 +85,7 @@ def create_trace_span(name, attributes=None, client=None, api_request=None, retr
7985

8086
def _get_final_attributes(attributes=None, client=None, api_request=None, retry=None):
8187
collected_attr = _default_attributes.copy()
88+
collected_attr.update(_cloud_trace_adoption_attrs)
8289
if api_request:
8390
collected_attr.update(_set_api_request_attr(api_request, client))
8491
if isinstance(retry, api_retry.Retry):

tests/unit/test__opentelemetry_tracing.py

+9-14
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,8 @@ def test_enable_trace_call(setup, setup_optin):
8989
extra_attributes = {
9090
"attribute1": "value1",
9191
}
92-
expected_attributes = {
93-
"rpc.service": "CloudStorage",
94-
"rpc.system": "http",
95-
"user_agent.original": f"gcloud-python/{__version__}",
96-
}
92+
expected_attributes = _opentelemetry_tracing._default_attributes.copy()
93+
expected_attributes.update(_opentelemetry_tracing._cloud_trace_adoption_attrs)
9794
expected_attributes.update(extra_attributes)
9895

9996
with _opentelemetry_tracing.create_trace_span(
@@ -114,11 +111,8 @@ def test_enable_trace_error(setup, setup_optin):
114111
extra_attributes = {
115112
"attribute1": "value1",
116113
}
117-
expected_attributes = {
118-
"rpc.service": "CloudStorage",
119-
"rpc.system": "http",
120-
"user_agent.original": f"gcloud-python/{__version__}",
121-
}
114+
expected_attributes = _opentelemetry_tracing._default_attributes.copy()
115+
expected_attributes.update(_opentelemetry_tracing._cloud_trace_adoption_attrs)
122116
expected_attributes.update(extra_attributes)
123117

124118
with pytest.raises(GoogleAPICallError):
@@ -157,6 +151,7 @@ def test_get_final_attributes(setup, setup_optin):
157151
"connect_timeout,read_timeout": (100, 100),
158152
"retry": f"multiplier{retry_obj._multiplier}/deadline{retry_obj._deadline}/max{retry_obj._maximum}/initial{retry_obj._initial}/predicate{retry_obj._predicate}",
159153
}
154+
expected_attributes.update(_opentelemetry_tracing._cloud_trace_adoption_attrs)
160155

161156
with mock.patch("google.cloud.storage.client.Client") as test_client:
162157
test_client.project = "test_project"
@@ -185,12 +180,12 @@ def test_set_conditional_retry_attr(setup, setup_optin):
185180
retry_policy, conditional_predicate, required_kwargs
186181
)
187182

188-
expected_attributes = {
189-
"rpc.service": "CloudStorage",
190-
"rpc.system": "http",
191-
"user_agent.original": f"gcloud-python/{__version__}",
183+
retry_attrs = {
192184
"retry": f"multiplier{retry_policy._multiplier}/deadline{retry_policy._deadline}/max{retry_policy._maximum}/initial{retry_policy._initial}/predicate{conditional_predicate}",
193185
}
186+
expected_attributes = _opentelemetry_tracing._default_attributes.copy()
187+
expected_attributes.update(_opentelemetry_tracing._cloud_trace_adoption_attrs)
188+
expected_attributes.update(retry_attrs)
194189

195190
with _opentelemetry_tracing.create_trace_span(
196191
test_span_name,

0 commit comments

Comments
 (0)