Skip to content

Commit 0fc09e8

Browse files
committed
chore: link OpenTelemetry instrumentation with underlying SDK
1 parent 95ea41b commit 0fc09e8

2 files changed

Lines changed: 30 additions & 2 deletions

File tree

java-bigquery-jdbc/pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,16 @@
324324
<groupId>io.grpc</groupId>
325325
<artifactId>grpc-netty-shaded</artifactId>
326326
</dependency>
327+
<dependency>
328+
<groupId>io.grpc</groupId>
329+
<artifactId>grpc-opentelemetry</artifactId>
330+
<exclusions>
331+
<exclusion>
332+
<groupId>io.opentelemetry</groupId>
333+
<artifactId>opentelemetry-api</artifactId>
334+
</exclusion>
335+
</exclusions>
336+
</dependency>
327337

328338
<dependency>
329339
<groupId>org.apache.arrow</groupId>

java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnection.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import com.google.cloud.logging.Logging;
4545
import com.google.common.annotations.VisibleForTesting;
4646
import com.google.common.collect.ImmutableSortedSet;
47+
import io.grpc.opentelemetry.GrpcOpenTelemetry;
4748
import io.opentelemetry.api.OpenTelemetry;
4849
import io.opentelemetry.api.baggage.Baggage;
4950
import io.opentelemetry.api.trace.Tracer;
@@ -1139,6 +1140,7 @@ private BigQuery getBigQueryConnection() {
11391140
|| this.useGlobalOpenTelemetry) {
11401141
Tracer sdkTracer = this.openTelemetry.getTracer(BigQueryJdbcOpenTelemetry.BIGQUERY_NAMESPACE);
11411142
bigQueryOptions.setOpenTelemetryTracer(sdkTracer);
1143+
bigQueryOptions.setEnableOpenTelemetryTracing(true);
11421144
this.tracer =
11431145
this.openTelemetry.getTracer(BigQueryJdbcOpenTelemetry.INSTRUMENTATION_SCOPE_NAME);
11441146
}
@@ -1176,7 +1178,20 @@ private BigQueryReadClient getBigQueryReadClientConnection() throws IOException
11761178
}
11771179
TransportChannelProvider activeProvider = this.transportChannelProvider;
11781180
if (activeProvider == null) {
1179-
activeProvider = BigQueryReadSettings.defaultGrpcTransportProviderBuilder().build();
1181+
InstantiatingGrpcChannelProvider.Builder builder =
1182+
BigQueryReadSettings.defaultGrpcTransportProviderBuilder();
1183+
if (this.enableGcpTraceExporter
1184+
|| this.customOpenTelemetry != null
1185+
|| this.useGlobalOpenTelemetry) {
1186+
GrpcOpenTelemetry grpcOpenTelemetry =
1187+
GrpcOpenTelemetry.newBuilder().sdk(this.openTelemetry).build();
1188+
builder.setChannelConfigurator(
1189+
b -> {
1190+
grpcOpenTelemetry.configureChannelBuilder(b);
1191+
return b;
1192+
});
1193+
}
1194+
activeProvider = builder.build();
11801195
}
11811196

11821197
if (activeProvider instanceof InstantiatingGrpcChannelProvider) {
@@ -1191,8 +1206,11 @@ private BigQueryReadClient getBigQueryReadClientConnection() throws IOException
11911206

11921207
bigQueryReadSettings.setTransportChannelProvider(activeProvider);
11931208

1194-
if (this.enableGcpTraceExporter || this.customOpenTelemetry != null) {
1209+
if (this.enableGcpTraceExporter
1210+
|| this.customOpenTelemetry != null
1211+
|| this.useGlobalOpenTelemetry) {
11951212
bigQueryReadSettings.setOpenTelemetryTracerProvider(this.openTelemetry.getTracerProvider());
1213+
bigQueryReadSettings.setEnableOpenTelemetryTracing(true);
11961214
}
11971215

11981216
return BigQueryReadClient.create(bigQueryReadSettings.build());

0 commit comments

Comments
 (0)