From e417a57782e457afb2f000ff90a2088bd013fa75 Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Thu, 26 Mar 2026 14:12:44 -0400 Subject: [PATCH] fix: ensure that EnvInfo stays constant between metric exports The previous metrics refactor accidentally recomputed the uuid for metrics labels for each export, causing each export to create a new stream Change-Id: I14e7cfb691750c4017b65e09c58bf8b729e625c3 --- .../cloud/bigtable/data/v2/internal/csm/MetricsImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/csm/MetricsImpl.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/csm/MetricsImpl.java index f0efac7e96..0daa04eef9 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/csm/MetricsImpl.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/csm/MetricsImpl.java @@ -33,6 +33,7 @@ import com.google.cloud.bigtable.data.v2.internal.csm.tracers.CompositeTracerFactory; import com.google.cloud.bigtable.data.v2.internal.csm.tracers.Pacemaker; import com.google.common.base.Preconditions; +import com.google.common.base.Suppliers; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.grpc.ManagedChannelBuilder; @@ -190,7 +191,8 @@ public static OpenTelemetrySdk createBuiltinOtel( BigtableCloudMonitoringExporter exporter = BigtableCloudMonitoringExporter.create( metricRegistry, - EnvInfo::detect, + // Lazily compute EnvInfo, but memoize it to make sure it stays constant + Suppliers.memoize(EnvInfo::detect), clientInfo, credentials, metricsEndpoint,