Skip to content

Commit f0b7b37

Browse files
committed
feat(bigquery): add url.template to span tracing
1 parent 5f31ded commit f0b7b37

File tree

4 files changed

+42
-2
lines changed

4 files changed

+42
-2
lines changed

java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ public Dataset getDatasetSkipExceptionTranslation(
193193
"DatasetService",
194194
"GetDataset",
195195
gcpResourceDestinationId,
196+
bqGetRequest.getUriTemplate(),
196197
options),
197198
span -> {
198199
Dataset dataset = bqGetRequest.execute();
@@ -243,6 +244,7 @@ public Tuple<String, Iterable<Dataset>> listDatasetsSkipExceptionTranslation(
243244
"DatasetService",
244245
"ListDatasets",
245246
gcpResourceDestinationId,
247+
datasetsListRequest.getUriTemplate(),
246248
options),
247249
span -> {
248250
if (span != null) {
@@ -301,6 +303,7 @@ public Dataset createSkipExceptionTranslation(Dataset dataset, Map<Option, ?> op
301303
"DatasetService",
302304
"InsertDataset",
303305
gcpResourceDestinationId,
306+
bqCreateRequest.getUriTemplate(),
304307
options),
305308
span -> {
306309
Dataset datasetResponse = bqCreateRequest.execute();
@@ -354,6 +357,7 @@ public Table createSkipExceptionTranslation(Table table, Map<Option, ?> options)
354357
"TableService",
355358
"InsertTable",
356359
gcpResourceDestinationId,
360+
bqCreateRequest.getUriTemplate(),
357361
options),
358362
span -> {
359363
Table tableResponse = bqCreateRequest.execute();
@@ -405,6 +409,7 @@ public Routine createSkipExceptionTranslation(Routine routine, Map<Option, ?> op
405409
"RoutineService",
406410
"InsertRoutine",
407411
gcpResourceDestinationId,
412+
bqCreateRequest.getUriTemplate(),
408413
options),
409414
span -> {
410415
Routine routineResponse = bqCreateRequest.execute();
@@ -456,6 +461,7 @@ public Job createSkipExceptionTranslation(Job job, Map<Option, ?> options) throw
456461
"JobService",
457462
"InsertJob",
458463
gcpResourceDestinationId,
464+
bqCreateRequest.getUriTemplate(),
459465
options),
460466
span -> {
461467
Job jobResponse = bqCreateRequest.execute();
@@ -504,6 +510,7 @@ public Job createJobForQuerySkipExceptionTranslation(Job job) throws IOException
504510
"JobService",
505511
"InsertJob",
506512
gcpResourceDestinationId,
513+
bqCreateRequest.getUriTemplate(),
507514
null),
508515
span -> {
509516
Job jobResponse = bqCreateRequest.execute();
@@ -558,6 +565,7 @@ public boolean deleteDatasetSkipExceptionTranslation(
558565
"DatasetService",
559566
"DeleteDataset",
560567
gcpResourceDestinationId,
568+
bqDeleteRequest.getUriTemplate(),
561569
options),
562570
span -> {
563571
bqDeleteRequest.execute();
@@ -609,6 +617,7 @@ public Dataset patchSkipExceptionTranslation(Dataset dataset, Map<Option, ?> opt
609617
"DatasetService",
610618
"PatchDataset",
611619
gcpResourceDestinationId,
620+
bqPatchRequest.getUriTemplate(),
612621
options),
613622
span -> {
614623
Dataset datasetResponse = bqPatchRequest.execute();
@@ -664,6 +673,7 @@ public Table patchSkipExceptionTranslation(Table table, Map<Option, ?> options)
664673
"TableService",
665674
"PatchTable",
666675
gcpResourceDestinationId,
676+
bqPatchRequest.getUriTemplate(),
667677
options),
668678
span -> {
669679
Table tableResponse = bqPatchRequest.execute();
@@ -721,6 +731,7 @@ public Table getTableSkipExceptionTranslation(
721731
"TableService",
722732
"GetTable",
723733
gcpResourceDestinationId,
734+
bqGetRequest.getUriTemplate(),
724735
options),
725736
span -> {
726737
Table tableResponse = bqGetRequest.execute();
@@ -779,6 +790,7 @@ public Tuple<String, Iterable<Table>> listTablesSkipExceptionTranslation(
779790
"TableService",
780791
"ListTables",
781792
gcpResourceDestinationId,
793+
tableListRequest.getUriTemplate(),
782794
options),
783795
span -> {
784796
if (span != null) {
@@ -853,6 +865,7 @@ public boolean deleteTableSkipExceptionTranslation(
853865
"TableService",
854866
"DeleteTable",
855867
gcpResourceDestinationId,
868+
bqDeleteRequest.getUriTemplate(),
856869
null),
857870
span -> {
858871
bqDeleteRequest.execute();
@@ -903,6 +916,7 @@ public Model patchSkipExceptionTranslation(Model model, Map<Option, ?> options)
903916
"ModelService",
904917
"PatchModel",
905918
gcpResourceDestinationId,
919+
bqPatchRequest.getUriTemplate(),
906920
options),
907921
span -> {
908922
Model modelResponse = bqPatchRequest.execute();
@@ -960,6 +974,7 @@ public Model getModelSkipExceptionTranslation(
960974
"ModelService",
961975
"GetModel",
962976
gcpResourceDestinationId,
977+
bqGetRequest.getUriTemplate(),
963978
options),
964979
span -> {
965980
Model modelResponse = bqGetRequest.execute();
@@ -1012,6 +1027,7 @@ public Tuple<String, Iterable<Model>> listModelsSkipExceptionTranslation(
10121027
"ModelService",
10131028
"ListModels",
10141029
gcpResourceDestinationId,
1030+
modelListRequest.getUriTemplate(),
10151031
options),
10161032
span -> {
10171033
if (span != null) {
@@ -1070,6 +1086,7 @@ public boolean deleteModelSkipExceptionTranslation(
10701086
"ModelService",
10711087
"DeleteModel",
10721088
gcpResourceDestinationId,
1089+
bqDeleteRequest.getUriTemplate(),
10731090
null),
10741091
span -> {
10751092
bqDeleteRequest.execute();
@@ -1122,6 +1139,7 @@ public Routine updateSkipExceptionTranslation(Routine routine, Map<Option, ?> op
11221139
"RoutineService",
11231140
"UpdateRoutine",
11241141
gcpResourceDestinationId,
1142+
bqUpdateRequest.getUriTemplate(),
11251143
options),
11261144
span -> {
11271145
Routine routineResponse = bqUpdateRequest.execute();
@@ -1179,6 +1197,7 @@ public Routine getRoutineSkipExceptionTranslation(
11791197
"RoutineService",
11801198
"GetRoutine",
11811199
gcpResourceDestinationId,
1200+
bqGetRequest.getUriTemplate(),
11821201
options),
11831202
span -> {
11841203
Routine routineResponse = bqGetRequest.execute();
@@ -1231,6 +1250,7 @@ public Tuple<String, Iterable<Routine>> listRoutinesSkipExceptionTranslation(
12311250
"RoutineService",
12321251
"ListRoutines",
12331252
gcpResourceDestinationId,
1253+
routineListRequest.getUriTemplate(),
12341254
options),
12351255
span -> {
12361256
if (span != null) {
@@ -1288,6 +1308,7 @@ public boolean deleteRoutineSkipExceptionTranslation(
12881308
"RoutineService",
12891309
"DeleteRoutine",
12901310
gcpResourceDestinationId,
1311+
bqDeleteRequest.getUriTemplate(),
12911312
null),
12921313
span -> {
12931314
bqDeleteRequest.execute();
@@ -1336,6 +1357,7 @@ public TableDataInsertAllResponse insertAllSkipExceptionTranslation(
13361357
"TableDataService",
13371358
"InsertAll",
13381359
gcpResourceDestinationId,
1360+
insertAllRequest.getUriTemplate(),
13391361
null),
13401362
span -> insertAllRequest.execute());
13411363
}
@@ -1387,6 +1409,7 @@ public TableDataList listTableDataSkipExceptionTranslation(
13871409
"TableDataService",
13881410
"List",
13891411
gcpResourceDestinationId,
1412+
bqListRequest.getUriTemplate(),
13901413
options),
13911414
span -> {
13921415
if (span != null) {
@@ -1448,6 +1471,7 @@ public TableDataList listTableDataWithRowLimitSkipExceptionTranslation(
14481471
"TableDataService",
14491472
"List",
14501473
gcpResourceDestinationId,
1474+
bqListRequest.getUriTemplate(),
14511475
null),
14521476
span -> {
14531477
if (span != null) {
@@ -1500,6 +1524,7 @@ public Job getJobSkipExceptionTranslation(
15001524
"JobService",
15011525
"GetJob",
15021526
gcpResourceDestinationId,
1527+
bqGetRequest.getUriTemplate(),
15031528
options),
15041529
span -> {
15051530
Job jobResponse = bqGetRequest.execute();
@@ -1550,6 +1575,7 @@ public Job getQueryJobSkipExceptionTranslation(String projectId, String jobId, S
15501575
"JobService",
15511576
"GetJob",
15521577
gcpResourceDestinationId,
1578+
bqGetRequest.getUriTemplate(),
15531579
null),
15541580
span -> {
15551581
Job jobResponse = bqGetRequest.execute();
@@ -1612,6 +1638,7 @@ public Tuple<String, Iterable<Job>> listJobsSkipExceptionTranslation(
16121638
"JobService",
16131639
"ListJobs",
16141640
gcpResourceDestinationId,
1641+
listJobsRequest.getUriTemplate(),
16151642
options),
16161643
span -> {
16171644
if (span != null) {
@@ -1689,6 +1716,7 @@ public boolean cancelSkipExceptionTranslation(String projectId, String jobId, St
16891716
"JobService",
16901717
"CancelJob",
16911718
gcpResourceDestinationId,
1719+
bqCancelRequest.getUriTemplate(),
16921720
null),
16931721
span -> {
16941722
bqCancelRequest.execute();
@@ -1730,6 +1758,7 @@ public boolean deleteJobSkipExceptionTranslation(
17301758
"JobService",
17311759
"DeleteJob",
17321760
gcpResourceDestinationId,
1761+
bqDeleteRequest.getUriTemplate(),
17331762
null),
17341763
span -> {
17351764
bqDeleteRequest.execute();
@@ -1783,6 +1812,7 @@ public GetQueryResultsResponse getQueryResultsSkipExceptionTranslation(
17831812
"JobService",
17841813
"GetQueryResults",
17851814
gcpResourceDestinationId,
1815+
queryRequest.getUriTemplate(),
17861816
options),
17871817
span -> {
17881818
if (span != null) {
@@ -1835,6 +1865,7 @@ public GetQueryResultsResponse getQueryResultsWithRowLimitSkipExceptionTranslati
18351865
"JobService",
18361866
"GetQueryResults",
18371867
gcpResourceDestinationId,
1868+
queryRequest.getUriTemplate(),
18381869
null),
18391870
span -> {
18401871
if (span != null) {
@@ -1875,6 +1906,7 @@ public QueryResponse queryRpcSkipExceptionTranslation(String projectId, QueryReq
18751906
"JobService",
18761907
"Query",
18771908
gcpResourceDestinationId,
1909+
queryRequest.getUriTemplate(),
18781910
null),
18791911
span -> {
18801912
return queryRequest.execute();
@@ -2006,6 +2038,7 @@ public Policy getIamPolicySkipExceptionTranslation(String resourceId, Map<Option
20062038
"TableService",
20072039
"GetIamPolicy",
20082040
gcpResourceDestinationId,
2041+
bqGetRequest.getUriTemplate(),
20092042
options),
20102043
span -> {
20112044
return bqGetRequest.execute();
@@ -2042,6 +2075,7 @@ public Policy setIamPolicySkipExceptionTranslation(
20422075
"TableService",
20432076
"SetIamPolicy",
20442077
gcpResourceDestinationId,
2078+
bqSetRequest.getUriTemplate(),
20452079
options),
20462080
span -> {
20472081
return bqSetRequest.execute();
@@ -2079,6 +2113,7 @@ public TestIamPermissionsResponse testIamPermissionsSkipExceptionTranslation(
20792113
"TableService",
20802114
"TestIamPermissions",
20812115
gcpResourceDestinationId,
2116+
bqTestRequest.getUriTemplate(),
20822117
options),
20832118
span -> {
20842119
return bqTestRequest.execute();
@@ -2095,6 +2130,7 @@ private Span createRpcTracingSpan(
20952130
String service,
20962131
String method,
20972132
String gcpResourceDestinationId,
2133+
String urlTemplate,
20982134
Map<Option, ?> options) {
20992135
if (!this.options.isOpenTelemetryTracingEnabled()
21002136
|| this.options.getOpenTelemetryTracer() == null) {
@@ -2110,7 +2146,8 @@ private Span createRpcTracingSpan(
21102146
.setAttribute("bq.rpc.method", method)
21112147
.setAttribute("bq.rpc.system", "http")
21122148
.setAttribute(
2113-
BigQueryTelemetryTracer.GCP_RESOURCE_DESTINATION_ID, gcpResourceDestinationId);
2149+
BigQueryTelemetryTracer.GCP_RESOURCE_DESTINATION_ID, gcpResourceDestinationId)
2150+
.setAttribute(BigQueryTelemetryTracer.URL_TEMPLATE, urlTemplate);
21142151

21152152
if (options != null) {
21162153
builder.setAllAttributes(otelAttributesFromOptions(options));

java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/telemetry/BigQueryTelemetryTracer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ private BigQueryTelemetryTracer() {}
6565
public static final AttributeKey<String> SERVER_ADDRESS =
6666
AttributeKey.stringKey("server.address");
6767
public static final AttributeKey<Long> SERVER_PORT = AttributeKey.longKey("server.port");
68+
public static final AttributeKey<String> URL_TEMPLATE = AttributeKey.stringKey("url.template");
6869

6970
public static void addCommonAttributeToSpan(Span span) {
7071
span.setAttribute(GCP_CLIENT_SERVICE, BQ_GCP_CLIENT_SERVICE)

java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/telemetry/HttpTracingRequestInitializer.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ public class HttpTracingRequestInitializer implements HttpRequestInitializer {
3939
public static final AttributeKey<String> HTTP_REQUEST_METHOD =
4040
AttributeKey.stringKey("http.request.method");
4141
public static final AttributeKey<String> URL_FULL = AttributeKey.stringKey("url.full");
42-
public static final AttributeKey<String> URL_TEMPLATE = AttributeKey.stringKey("url.template");
4342
public static final AttributeKey<String> URL_DOMAIN = AttributeKey.stringKey("url.domain");
4443
public static final AttributeKey<Long> HTTP_RESPONSE_STATUS_CODE =
4544
AttributeKey.longKey("http.response.status_code");

java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,9 @@ private void verifySpan(
154154
assertEquals(service, rpcSpan.getAttributes().get(AttributeKey.stringKey("bq.rpc.service")));
155155
assertEquals(method, rpcSpan.getAttributes().get(AttributeKey.stringKey("bq.rpc.method")));
156156
assertEquals("http", rpcSpan.getAttributes().get(AttributeKey.stringKey("bq.rpc.system")));
157+
assertNotNull(
158+
rpcSpan.getAttributes().get(AttributeKey.stringKey("url.template")),
159+
"url.template attribute should be set");
157160

158161
assertEquals(
159162
gcpResourceDestinationId,

0 commit comments

Comments
 (0)