From 926fd8c393dfd91f532b61bdf2a50ed8d19d3618 Mon Sep 17 00:00:00 2001 From: Gautam04 Date: Fri, 19 Dec 2025 04:36:13 +0530 Subject: [PATCH] feat: adding gcp resource name span attribute (#2260) Adding a new span attribute called `gcp.resource.name` which contains an identifier to a particular firestore database in the following format: ``` //firestore.googleapis.com/projects/{project}/databases/{database_id} ``` Example: ``` //firestore.googleapis.com/projects/my_project/databases/(default) ``` --- .../google/cloud/firestore/telemetry/EnabledTraceUtil.java | 6 ++++++ .../com/google/cloud/firestore/telemetry/TraceUtil.java | 2 ++ .../java/com/google/cloud/firestore/it/ITTracingTest.java | 1 + 3 files changed, 9 insertions(+) diff --git a/google-cloud-firestore/src/main/java/com/google/cloud/firestore/telemetry/EnabledTraceUtil.java b/google-cloud-firestore/src/main/java/com/google/cloud/firestore/telemetry/EnabledTraceUtil.java index 334bdfffb0..863012b4e5 100644 --- a/google-cloud-firestore/src/main/java/com/google/cloud/firestore/telemetry/EnabledTraceUtil.java +++ b/google-cloud-firestore/src/main/java/com/google/cloud/firestore/telemetry/EnabledTraceUtil.java @@ -283,6 +283,12 @@ private SpanBuilder addSettingsAttributesToCurrentSpan(SpanBuilder spanBuilder) spanBuilder = spanBuilder.setAllAttributes( Attributes.builder() + .put( + ATTRIBUTE_GCP_RESOURCE_NAME, + String.format( + ATTRIBUTE_GCP_RESOURCE_NAME_FORMAT, + firestoreOptions.getProjectId(), + firestoreOptions.getDatabaseId())) .put( ATTRIBUTE_SERVICE_PREFIX + "settings.project_id", firestoreOptions.getProjectId()) diff --git a/google-cloud-firestore/src/main/java/com/google/cloud/firestore/telemetry/TraceUtil.java b/google-cloud-firestore/src/main/java/com/google/cloud/firestore/telemetry/TraceUtil.java index 847eff58ac..2b84cfe5ab 100644 --- a/google-cloud-firestore/src/main/java/com/google/cloud/firestore/telemetry/TraceUtil.java +++ b/google-cloud-firestore/src/main/java/com/google/cloud/firestore/telemetry/TraceUtil.java @@ -40,6 +40,8 @@ public interface TraceUtil { String ATTRIBUTE_KEY_TRANSACTION_TYPE = "transaction_type"; String ATTRIBUTE_KEY_ATTEMPTS_ALLOWED = "attempts_allowed"; String ATTRIBUTE_KEY_ATTEMPTS_REMAINING = "attempts_remaining"; + String ATTRIBUTE_GCP_RESOURCE_NAME = "gcp.resource.name"; + String ATTRIBUTE_GCP_RESOURCE_NAME_FORMAT = "//firestore.googleapis.com/projects/%s/databases/%s"; String ENABLE_TRACING_ENV_VAR = "FIRESTORE_ENABLE_TRACING"; String LIBRARY_NAME = "com.google.cloud.firestore"; diff --git a/google-cloud-firestore/src/test/java/com/google/cloud/firestore/it/ITTracingTest.java b/google-cloud-firestore/src/test/java/com/google/cloud/firestore/it/ITTracingTest.java index 7efdd07047..171d2b8876 100644 --- a/google-cloud-firestore/src/test/java/com/google/cloud/firestore/it/ITTracingTest.java +++ b/google-cloud-firestore/src/test/java/com/google/cloud/firestore/it/ITTracingTest.java @@ -281,6 +281,7 @@ void assertHasExpectedAttributes(SpanData spanData, String... additionalExpected // All Firestore-generated spans have the settings attributes. List expectedAttributes = Arrays.asList( + "gcp.resource.name", "gcp.firestore.memory_utilization", "gcp.firestore.settings.host", "gcp.firestore.settings.project_id",