@@ -64,14 +64,14 @@ public class MetricsImpl implements Metrics, Closeable {
6464 private final Tagger ocTagger ;
6565 private final StatsRecorder ocRecorder ;
6666
67- private final GrpcOpenTelemetry grpcOtel ;
67+ @ Nullable private final GrpcOpenTelemetry grpcOtel ;
6868 @ Nullable private final ChannelPoolMetricsTracer channelPoolMetricsTracer ;
6969 private final List <ScheduledFuture <?>> tasks = new ArrayList <>();
7070
7171 public MetricsImpl (
7272 ApiTracerFactory userTracerFactory ,
73- OpenTelemetrySdk internalOtel ,
74- OpenTelemetry userOtel ,
73+ @ Nullable OpenTelemetrySdk internalOtel ,
74+ @ Nullable OpenTelemetry userOtel ,
7575 Tagger ocTagger ,
7676 StatsRecorder ocRecorder ,
7777 ScheduledExecutorService executor ) {
@@ -85,15 +85,17 @@ public MetricsImpl(
8585
8686 this .executor = executor ;
8787
88- this .grpcOtel =
89- GrpcOpenTelemetry .newBuilder ()
90- .sdk (internalOtel )
91- .addOptionalLabel ("grpc.lb.locality" )
92- // Disable default grpc metrics
93- .disableAllMetrics ()
94- // Enable specific grpc metrics
95- .enableMetrics (BuiltinMetricsConstants .GRPC_METRICS .keySet ())
96- .build ();
88+ if (internalOtel != null ) {
89+ this .grpcOtel =
90+ GrpcOpenTelemetry .newBuilder ()
91+ .sdk (internalOtel )
92+ .addOptionalLabel ("grpc.lb.locality" )
93+ // Disable default grpc metrics
94+ .disableAllMetrics ()
95+ // Enable specific grpc metrics
96+ .enableMetrics (BuiltinMetricsConstants .GRPC_METRICS .keySet ())
97+ .build ();
98+ }
9799
98100 if (internalOtel != null ) {
99101 this .channelPoolMetricsTracer = new ChannelPoolMetricsTracer (internalOtel );
@@ -119,6 +121,9 @@ public void start() {
119121
120122 @ Override
121123 public <T extends ManagedChannelBuilder <?>> T configureGrpcChannel (T channelBuilder ) {
124+ if (grpcOtel == null ) {
125+ return channelBuilder ;
126+ }
122127 grpcOtel .configureChannelBuilder (channelBuilder );
123128 return channelBuilder ;
124129 }
0 commit comments