From c935e2eff780100273bc35c11458485c9bb05230 Mon Sep 17 00:00:00 2001 From: surbhigarg92 Date: Fri, 29 Nov 2024 17:04:22 +0530 Subject: [PATCH] fix: shutdown built in metrics meter provider (#3518) This PR calls Meter provider shutdown method when the client is shutdown to clean up the resources and export the remaining metrics data. --- .../cloud/spanner/BuiltInOpenTelemetryMetricsProvider.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/BuiltInOpenTelemetryMetricsProvider.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/BuiltInOpenTelemetryMetricsProvider.java index 9367c45b636..8f4ada6ae57 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/BuiltInOpenTelemetryMetricsProvider.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/BuiltInOpenTelemetryMetricsProvider.java @@ -65,8 +65,9 @@ OpenTelemetry getOrCreateOpenTelemetry(String projectId, @Nullable Credentials c SdkMeterProviderBuilder sdkMeterProviderBuilder = SdkMeterProvider.builder(); BuiltInOpenTelemetryMetricsView.registerBuiltinMetrics( SpannerCloudMonitoringExporter.create(projectId, credentials), sdkMeterProviderBuilder); - this.openTelemetry = - OpenTelemetrySdk.builder().setMeterProvider(sdkMeterProviderBuilder.build()).build(); + SdkMeterProvider sdkMeterProvider = sdkMeterProviderBuilder.build(); + this.openTelemetry = OpenTelemetrySdk.builder().setMeterProvider(sdkMeterProvider).build(); + Runtime.getRuntime().addShutdownHook(new Thread(sdkMeterProvider::close)); } return this.openTelemetry; } catch (IOException ex) {