Skip to content

Commit 1f291fb

Browse files
committed
record metrics whenever it's registered
1 parent 21cad39 commit 1f291fb

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
import com.google.cloud.bigtable.data.v2.models.RowMutation;
4747
import com.google.cloud.bigtable.data.v2.stub.metrics.DefaultMetricsProvider;
4848
import com.google.cloud.bigtable.data.v2.stub.metrics.MetricsProvider;
49-
import com.google.cloud.bigtable.data.v2.stub.metrics.NoopMetricsProvider;
5049
import com.google.cloud.bigtable.data.v2.stub.mutaterows.MutateRowsBatchingDescriptor;
5150
import com.google.cloud.bigtable.data.v2.stub.readrows.ReadRowsBatchingDescriptor;
5251
import com.google.common.base.MoreObjects;
@@ -1068,8 +1067,11 @@ public EnhancedBigtableStubSettings build() {
10681067

10691068
featureFlags.setRoutingCookie(this.getEnableRoutingCookie());
10701069
featureFlags.setRetryInfo(this.getEnableRetryInfo());
1070+
// client_Side_metrics_enabled feature flag is only set when a user is running with a
1071+
// DefaultMetricsProvider. This may cause false negatives when a user registered the
1072+
// metrics on their CustomOpenTelemetryMetricsProvider.
10711073
featureFlags.setClientSideMetricsEnabled(
1072-
!(this.getMetricsProvider() instanceof NoopMetricsProvider));
1074+
this.getMetricsProvider() instanceof DefaultMetricsProvider);
10731075

10741076
// Serialize the web64 encode the bigtable feature flags
10751077
ByteArrayOutputStream boas = new ByteArrayOutputStream();

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import io.opentelemetry.sdk.metrics.export.PeriodicMetricReader;
2525
import java.io.IOException;
2626
import java.util.Map;
27+
import java.util.concurrent.atomic.AtomicBoolean;
2728
import javax.annotation.Nullable;
2829

2930
/**
@@ -33,6 +34,8 @@
3334
*/
3435
public class BuiltinMetricsView {
3536

37+
private static final AtomicBoolean BUILTIN_VIEW_REGISTERED = new AtomicBoolean();
38+
3639
private BuiltinMetricsView() {}
3740

3841
/**
@@ -50,6 +53,7 @@ public static void registerBuiltinMetrics(
5053
String projectId, @Nullable Credentials credentials, SdkMeterProviderBuilder builder)
5154
throws IOException {
5255
MetricExporter metricExporter = BigtableCloudMonitoringExporter.create(projectId, credentials);
56+
BUILTIN_VIEW_REGISTERED.set(true);
5357
for (Map.Entry<InstrumentSelector, View> entry :
5458
BuiltinMetricsConstants.getAllViews().entrySet()) {
5559
builder.registerView(entry.getKey(), entry.getValue());

0 commit comments

Comments
 (0)