From ac7dac4acd1b3aed16874d80eab60faf03d974f2 Mon Sep 17 00:00:00 2001 From: ldetmer Date: Fri, 13 Mar 2026 15:46:34 -0400 Subject: [PATCH 1/3] fix(telemetry): fix incorrect testIamPermissions and deleteRoutine trace names/methods, as well as actually add otelAttributes to span --- .../bigquery/spi/v2/HttpBigQueryRpc.java | 15 ++++---- .../bigquery/spi/v2/HttpBigQueryRpcTest.java | 37 +++++++++++++++++-- 2 files changed, 41 insertions(+), 11 deletions(-) diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 16737dc4b713..2d014ea49c6d 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -70,6 +70,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.common.AttributesBuilder; import io.opentelemetry.api.trace.Span; import io.opentelemetry.api.trace.SpanKind; import java.io.IOException; @@ -1196,10 +1197,10 @@ public boolean deleteRoutineSkipExceptionTranslation( deleteRoutine = this.options .getOpenTelemetryTracer() - .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.listRoutines") + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.deleteRoutine") .setSpanKind(SpanKind.CLIENT) .setAttribute("bq.rpc.service", "RoutineService") - .setAttribute("bq.rpc.method", "ListRoutines") + .setAttribute("bq.rpc.method", "DeleteRoutine") .setAttribute("bq.rpc.system", "http") .startSpan(); } @@ -1987,10 +1988,10 @@ public TestIamPermissionsResponse testIamPermissionsSkipExceptionTranslation( testIamPermissions = this.options .getOpenTelemetryTracer() - .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.setIamPolicy") + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.testIamPermissions") .setSpanKind(SpanKind.CLIENT) .setAttribute("bq.rpc.service", "TableService") - .setAttribute("bq.rpc.method", "SetIamPolicy") + .setAttribute("bq.rpc.method", "TestIamPermissions") .setAttribute("bq.rpc.system", "http") .setAllAttributes(otelAttributesFromOptions(options)) .startSpan(); @@ -2004,10 +2005,10 @@ public TestIamPermissionsResponse testIamPermissionsSkipExceptionTranslation( } private static Attributes otelAttributesFromOptions(Map options) { - Attributes attributes = Attributes.builder().build(); + AttributesBuilder builder = Attributes.builder(); for (Map.Entry entry : options.entrySet()) { - attributes.toBuilder().put(entry.getKey().toString(), entry.getValue().toString()); + builder.put(entry.getKey().toString(), entry.getValue().toString()); } - return attributes; + return builder.build(); } } diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java index 30f3d4a53b2f..0e3644db7712 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java @@ -542,9 +542,9 @@ public void testDeleteRoutineTelemetry() throws Exception { "DELETE", "/projects/" + PROJECT_ID + "/datasets/" + DATASET_ID + "/routines/" + ROUTINE_ID); verifySpan( - "com.google.cloud.bigquery.BigQueryRpc.listRoutines", + "com.google.cloud.bigquery.BigQueryRpc.deleteRoutine", "RoutineService", - "ListRoutines", + "DeleteRoutine", null); } @@ -854,11 +854,40 @@ public void testTestIamPermissionsTelemetry() throws Exception { + TABLE_ID + ":testIamPermissions"); verifySpan( - "com.google.cloud.bigquery.BigQueryRpc.setIamPolicy", + "com.google.cloud.bigquery.BigQueryRpc.testIamPermissions", "TableService", - "SetIamPolicy", + "TestIamPermissions", null); } + + @Test + public void testOtelAttributesFromOptions() throws Exception { + setMockResponse( + "{\"kind\":\"bigquery#dataset\",\"id\":\"" + + PROJECT_ID + + ":" + + DATASET_ID + + "\",\"datasetReference\":{\"projectId\":\"" + + PROJECT_ID + + "\",\"datasetId\":\"" + + DATASET_ID + + "\"}}"); + + Map options = new HashMap<>(); + options.put(BigQueryRpc.Option.FIELDS, "foo,bar"); + + rpc.getDatasetSkipExceptionTranslation(PROJECT_ID, DATASET_ID, options); + + Map expectedAttributes = new HashMap<>(); + expectedAttributes.put("FIELDS", "foo,bar"); + expectedAttributes.put("bq.rpc.response.dataset.id", PROJECT_ID + ":" + DATASET_ID); + + verifySpan( + "com.google.cloud.bigquery.BigQueryRpc.getDataset", + "DatasetService", + "GetDataset", + expectedAttributes); + } } @Nested From d573c2f6d233167f319111f96ec6388deae66bfe Mon Sep 17 00:00:00 2001 From: ldetmer Date: Fri, 13 Mar 2026 15:47:15 -0400 Subject: [PATCH 2/3] formatting --- .../bigquery/spi/v2/HttpBigQueryRpcTest.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java index 0e3644db7712..953e1de07085 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java @@ -863,15 +863,15 @@ public void testTestIamPermissionsTelemetry() throws Exception { @Test public void testOtelAttributesFromOptions() throws Exception { setMockResponse( - "{\"kind\":\"bigquery#dataset\",\"id\":\"" - + PROJECT_ID - + ":" - + DATASET_ID - + "\",\"datasetReference\":{\"projectId\":\"" - + PROJECT_ID - + "\",\"datasetId\":\"" - + DATASET_ID - + "\"}}"); + "{\"kind\":\"bigquery#dataset\",\"id\":\"" + + PROJECT_ID + + ":" + + DATASET_ID + + "\",\"datasetReference\":{\"projectId\":\"" + + PROJECT_ID + + "\",\"datasetId\":\"" + + DATASET_ID + + "\"}}"); Map options = new HashMap<>(); options.put(BigQueryRpc.Option.FIELDS, "foo,bar"); @@ -883,10 +883,10 @@ public void testOtelAttributesFromOptions() throws Exception { expectedAttributes.put("bq.rpc.response.dataset.id", PROJECT_ID + ":" + DATASET_ID); verifySpan( - "com.google.cloud.bigquery.BigQueryRpc.getDataset", - "DatasetService", - "GetDataset", - expectedAttributes); + "com.google.cloud.bigquery.BigQueryRpc.getDataset", + "DatasetService", + "GetDataset", + expectedAttributes); } } From b1cd3723ac362a201a80e9354a1c7a05d577627c Mon Sep 17 00:00:00 2001 From: ldetmer Date: Fri, 13 Mar 2026 15:51:05 -0400 Subject: [PATCH 3/3] make name of test clearer --- .../com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java index 953e1de07085..98f59d3af5a5 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java @@ -861,7 +861,7 @@ public void testTestIamPermissionsTelemetry() throws Exception { } @Test - public void testOtelAttributesFromOptions() throws Exception { + public void testOtelAttributesFromOptionsGetAddedtoSpan() throws Exception { setMockResponse( "{\"kind\":\"bigquery#dataset\",\"id\":\"" + PROJECT_ID