Skip to content
This repository was archived by the owner on May 8, 2026. It is now read-only.

Commit 8fd7eef

Browse files
chore: update the exporter to use MetricRegistry
Change-Id: Ieb93b515d704f6ae67a200f48c32963dc326a3e0
1 parent ed4ad83 commit 8fd7eef

8 files changed

Lines changed: 372 additions & 270 deletions

File tree

google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/csm/MetricRegistry.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ List<String> getGrpcMetricNames() {
165165
return ImmutableList.copyOf(grpcMetricNames);
166166
}
167167

168-
MetricWrapper<?> getMetric(String name) {
168+
public MetricWrapper<?> getMetric(String name) {
169169
return metrics.get(name);
170170
}
171171

google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/csm/MetricsImpl.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.google.cloud.bigtable.data.v2.BigtableDataSettings;
2424
import com.google.cloud.bigtable.data.v2.internal.csm.MetricRegistry.RecorderRegistry;
2525
import com.google.cloud.bigtable.data.v2.internal.csm.attributes.ClientInfo;
26+
import com.google.cloud.bigtable.data.v2.internal.csm.attributes.EnvInfo;
2627
import com.google.cloud.bigtable.data.v2.stub.metrics.BigtableCloudMonitoringExporter;
2728
import com.google.cloud.bigtable.data.v2.stub.metrics.BuiltinMetricsConstants;
2829
import com.google.cloud.bigtable.data.v2.stub.metrics.BuiltinMetricsTracerFactory;
@@ -72,14 +73,15 @@ public class MetricsImpl implements Metrics, Closeable {
7273
private final List<ScheduledFuture<?>> tasks = new ArrayList<>();
7374

7475
public MetricsImpl(
76+
MetricRegistry metricRegistry,
7577
ClientInfo clientInfo,
7678
ApiTracerFactory userTracerFactory,
7779
@Nullable OpenTelemetrySdk internalOtel,
7880
@Nullable OpenTelemetry userOtel,
7981
Tagger ocTagger,
8082
StatsRecorder ocRecorder,
8183
ScheduledExecutorService executor) {
82-
metricRegistry = new MetricRegistry();
84+
this.metricRegistry = metricRegistry;
8385
this.userTracerFactory = Preconditions.checkNotNull(userTracerFactory);
8486

8587
this.internalOtel = internalOtel;
@@ -168,6 +170,7 @@ public ChannelPoolMetricsTracer getChannelPoolMetricsTracer() {
168170
}
169171

170172
public static OpenTelemetrySdk createBuiltinOtel(
173+
MetricRegistry metricRegistry,
171174
ClientInfo clientInfo,
172175
@Nullable Credentials defaultCredentials,
173176
@Nullable String metricsEndpoint,
@@ -194,7 +197,7 @@ public static OpenTelemetrySdk createBuiltinOtel(
194197

195198
MetricExporter publicExporter =
196199
BigtableCloudMonitoringExporter.create(
197-
clientInfo, credentials, metricsEndpoint, universeDomain, executor);
200+
metricRegistry, EnvInfo::detect, clientInfo, credentials, metricsEndpoint, universeDomain);
198201
PeriodicMetricReaderBuilder readerBuilder =
199202
PeriodicMetricReader.builder(publicExporter).setExecutor(executor);
200203
meterProvider.registerMetricReader(readerBuilder.build());

google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/csm/attributes/ClientInfo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public static Builder builder() {
4242

4343
@AutoValue.Builder
4444
public abstract static class Builder {
45-
protected abstract Builder setClientName(String name);
45+
public abstract Builder setClientName(String name);
4646

4747
public abstract Builder setInstanceName(InstanceName name);
4848

google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/csm/attributes/EnvInfo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public static Builder builder() {
7777

7878
@AutoValue.Builder
7979
public abstract static class Builder {
80-
protected abstract Builder setUid(String uid);
80+
public abstract Builder setUid(String uid);
8181

8282
public abstract Builder setPlatform(String platform);
8383

google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableClientContext.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import com.google.auth.oauth2.ServiceAccountJwtAccessCredentials;
2929
import com.google.bigtable.v2.InstanceName;
3030
import com.google.cloud.bigtable.data.v2.internal.JwtCredentialsWithAudience;
31+
import com.google.cloud.bigtable.data.v2.internal.csm.MetricRegistry;
3132
import com.google.cloud.bigtable.data.v2.internal.csm.Metrics;
3233
import com.google.cloud.bigtable.data.v2.internal.csm.MetricsImpl;
3334
import com.google.cloud.bigtable.data.v2.internal.csm.attributes.ClientInfo;
@@ -101,6 +102,7 @@ public static BigtableClientContext create(
101102
FixedExecutorProvider.create(backgroundExecutor, shouldAutoClose);
102103
builder.setBackgroundExecutorProvider(executorProvider);
103104

105+
MetricRegistry metricRegistry = new MetricRegistry();
104106
// Set up OpenTelemetry
105107
@Nullable OpenTelemetry userOtel = null;
106108
if (settings.getMetricsProvider() instanceof CustomOpenTelemetryMetricsProvider) {
@@ -113,6 +115,7 @@ public static BigtableClientContext create(
113115
if (settings.areInternalMetricsEnabled()) {
114116
builtinOtel =
115117
MetricsImpl.createBuiltinOtel(
118+
metricRegistry,
116119
clientInfo,
117120
credentials,
118121
settings.getMetricsEndpoint(),
@@ -125,6 +128,7 @@ public static BigtableClientContext create(
125128

126129
Metrics metrics =
127130
new MetricsImpl(
131+
metricRegistry,
128132
clientInfo,
129133
settings.getTracerFactory(),
130134
builtinOtel,

0 commit comments

Comments
 (0)