@@ -54,6 +54,7 @@ public class BigtableClientContext {
5454
5555 @ Nullable private final OpenTelemetry openTelemetry ;
5656 @ Nullable private final OpenTelemetrySdk internalOpenTelemetry ;
57+ private final MetricsProvider metricsProvider ;
5758 private final ClientContext clientContext ;
5859
5960 public static BigtableClientContext create (EnhancedBigtableStubSettings settings )
@@ -140,7 +141,8 @@ public static BigtableClientContext create(EnhancedBigtableStubSettings settings
140141 clientContext .getExecutor ());
141142 }
142143
143- return new BigtableClientContext (clientContext , openTelemetry , internalOtel );
144+ return new BigtableClientContext (
145+ clientContext , openTelemetry , internalOtel , settings .getMetricsProvider ());
144146 }
145147
146148 private static void configureGrpcOtel (
@@ -172,11 +174,13 @@ private static void configureGrpcOtel(
172174
173175 private BigtableClientContext (
174176 ClientContext clientContext ,
175- OpenTelemetry openTelemetry ,
176- @ Nullable OpenTelemetrySdk internalOtel ) {
177+ @ Nullable OpenTelemetry openTelemetry ,
178+ @ Nullable OpenTelemetrySdk internalOtel ,
179+ MetricsProvider metricsProvider ) {
177180 this .clientContext = clientContext ;
178181 this .openTelemetry = openTelemetry ;
179182 this .internalOpenTelemetry = internalOtel ;
183+ this .metricsProvider = metricsProvider ;
180184 }
181185
182186 public OpenTelemetry getOpenTelemetry () {
@@ -194,6 +198,9 @@ public void close() throws Exception {
194198 if (internalOpenTelemetry != null ) {
195199 internalOpenTelemetry .close ();
196200 }
201+ if (metricsProvider instanceof DefaultMetricsProvider && openTelemetry != null ) {
202+ ((OpenTelemetrySdk ) openTelemetry ).close ();
203+ }
197204 }
198205
199206 private static OpenTelemetry getOpenTelemetryFromMetricsProvider (
0 commit comments