Skip to content
This repository was archived by the owner on May 8, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ List<String> getGrpcMetricNames() {
return ImmutableList.copyOf(grpcMetricNames);
}

MetricWrapper<?> getMetric(String name) {
public MetricWrapper<?> getMetric(String name) {
return metrics.get(name);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import com.google.cloud.bigtable.data.v2.BigtableDataSettings;
import com.google.cloud.bigtable.data.v2.internal.csm.MetricRegistry.RecorderRegistry;
import com.google.cloud.bigtable.data.v2.internal.csm.attributes.ClientInfo;
import com.google.cloud.bigtable.data.v2.internal.csm.attributes.EnvInfo;
import com.google.cloud.bigtable.data.v2.stub.metrics.BigtableCloudMonitoringExporter;
import com.google.cloud.bigtable.data.v2.stub.metrics.BuiltinMetricsConstants;
import com.google.cloud.bigtable.data.v2.stub.metrics.BuiltinMetricsTracerFactory;
Expand Down Expand Up @@ -72,14 +73,15 @@ public class MetricsImpl implements Metrics, Closeable {
private final List<ScheduledFuture<?>> tasks = new ArrayList<>();

public MetricsImpl(
MetricRegistry metricRegistry,
ClientInfo clientInfo,
ApiTracerFactory userTracerFactory,
@Nullable OpenTelemetrySdk internalOtel,
@Nullable OpenTelemetry userOtel,
Tagger ocTagger,
StatsRecorder ocRecorder,
ScheduledExecutorService executor) {
metricRegistry = new MetricRegistry();
this.metricRegistry = metricRegistry;
this.userTracerFactory = Preconditions.checkNotNull(userTracerFactory);

this.internalOtel = internalOtel;
Expand Down Expand Up @@ -168,6 +170,7 @@ public ChannelPoolMetricsTracer getChannelPoolMetricsTracer() {
}

public static OpenTelemetrySdk createBuiltinOtel(
MetricRegistry metricRegistry,
ClientInfo clientInfo,
@Nullable Credentials defaultCredentials,
@Nullable String metricsEndpoint,
Expand All @@ -194,7 +197,12 @@ public static OpenTelemetrySdk createBuiltinOtel(

MetricExporter publicExporter =
BigtableCloudMonitoringExporter.create(
clientInfo, credentials, metricsEndpoint, universeDomain, executor);
metricRegistry,
EnvInfo::detect,
clientInfo,
credentials,
metricsEndpoint,
universeDomain);
PeriodicMetricReaderBuilder readerBuilder =
PeriodicMetricReader.builder(publicExporter).setExecutor(executor);
meterProvider.registerMetricReader(readerBuilder.build());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public static Builder builder() {

@AutoValue.Builder
public abstract static class Builder {
protected abstract Builder setClientName(String name);
public abstract Builder setClientName(String name);

public abstract Builder setInstanceName(InstanceName name);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ public static Builder builder() {

@AutoValue.Builder
public abstract static class Builder {
protected abstract Builder setUid(String uid);
public abstract Builder setUid(String uid);

public abstract Builder setPlatform(String platform);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import com.google.auth.oauth2.ServiceAccountJwtAccessCredentials;
import com.google.bigtable.v2.InstanceName;
import com.google.cloud.bigtable.data.v2.internal.JwtCredentialsWithAudience;
import com.google.cloud.bigtable.data.v2.internal.csm.MetricRegistry;
import com.google.cloud.bigtable.data.v2.internal.csm.Metrics;
import com.google.cloud.bigtable.data.v2.internal.csm.MetricsImpl;
import com.google.cloud.bigtable.data.v2.internal.csm.attributes.ClientInfo;
Expand Down Expand Up @@ -101,6 +102,7 @@ public static BigtableClientContext create(
FixedExecutorProvider.create(backgroundExecutor, shouldAutoClose);
builder.setBackgroundExecutorProvider(executorProvider);

MetricRegistry metricRegistry = new MetricRegistry();
// Set up OpenTelemetry
@Nullable OpenTelemetry userOtel = null;
if (settings.getMetricsProvider() instanceof CustomOpenTelemetryMetricsProvider) {
Expand All @@ -113,6 +115,7 @@ public static BigtableClientContext create(
if (settings.areInternalMetricsEnabled()) {
builtinOtel =
MetricsImpl.createBuiltinOtel(
metricRegistry,
clientInfo,
credentials,
settings.getMetricsEndpoint(),
Expand All @@ -125,6 +128,7 @@ public static BigtableClientContext create(

Metrics metrics =
new MetricsImpl(
metricRegistry,
clientInfo,
settings.getTracerFactory(),
builtinOtel,
Expand Down
Loading
Loading