From ca5198ac7f68fb4184e0af2de62fa4c210bb23bc Mon Sep 17 00:00:00 2001 From: Mattie Fu Date: Fri, 27 Sep 2024 20:53:36 -0400 Subject: [PATCH 1/6] fix: support override monitoring endpoint --- .../clirr-ignored-differences.xml | 10 ++++++++ .../data/v2/BigtableDataClientFactory.java | 3 ++- .../data/v2/stub/EnhancedBigtableStub.java | 16 +++++++++--- .../v2/stub/EnhancedBigtableStubSettings.java | 22 ++++++++++++++++ .../BigtableCloudMonitoringExporter.java | 12 ++------- .../v2/stub/metrics/BuiltinMetricsView.java | 25 ++++++++++++++++--- .../stub/metrics/DefaultMetricsProvider.java | 6 +++-- .../bigtable/data/v2/it/BuiltinMetricsIT.java | 1 + .../EnhancedBigtableStubSettingsTest.java | 22 +++++++++++----- 9 files changed, 91 insertions(+), 26 deletions(-) diff --git a/google-cloud-bigtable/clirr-ignored-differences.xml b/google-cloud-bigtable/clirr-ignored-differences.xml index 8ddcb6fdf088..a3dc564c4437 100644 --- a/google-cloud-bigtable/clirr-ignored-differences.xml +++ b/google-cloud-bigtable/clirr-ignored-differences.xml @@ -265,4 +265,14 @@ com/google/cloud/bigtable/admin/v2/stub/EnhancedBigtableTableAdminStub * + + 7004 + com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporter + * + + + 7004 + com/google/cloud/bigtable/data/v2/stub/metrics/DefaultMetricsProvider + * + diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataClientFactory.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataClientFactory.java index 9b2f2e345f20..34ec77bdfc62 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataClientFactory.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataClientFactory.java @@ -90,7 +90,8 @@ public static BigtableDataClientFactory create(BigtableDataSettings defaultSetti EnhancedBigtableStub.getOpenTelemetry( defaultSettings.getProjectId(), defaultSettings.getMetricsProvider(), - sharedClientContext.getCredentials()); + sharedClientContext.getCredentials(), + defaultSettings.getStubSettings().getMetricsEndpoint()); } catch (Throwable t) { logger.log(Level.WARNING, "Failed to get OTEL, will skip exporting client side metrics", t); } diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java index 17aa382f96c6..8c29acf1a679 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java @@ -223,7 +223,8 @@ public static EnhancedBigtableStub create(EnhancedBigtableStubSettings settings) getOpenTelemetry( settings.getProjectId(), settings.getMetricsProvider(), - clientContext.getCredentials()); + clientContext.getCredentials(), + settings.getMetricsEndpoint()); } catch (Throwable t) { logger.log(Level.WARNING, "Failed to get OTEL, will skip exporting client side metrics", t); } @@ -268,7 +269,11 @@ public static ClientContext createClientContext(EnhancedBigtableStubSettings set // We don't want client side metrics to crash the client, so catch any exception when getting // the OTEL instance and log the exception instead. openTelemetry = - getOpenTelemetry(settings.getProjectId(), settings.getMetricsProvider(), credentials); + getOpenTelemetry( + settings.getProjectId(), + settings.getMetricsProvider(), + credentials, + settings.getMetricsEndpoint()); } catch (Throwable t) { logger.log(Level.WARNING, "Failed to get OTEL, will skip exporting client side metrics", t); } @@ -378,7 +383,10 @@ public static ApiTracerFactory createBigtableTracerFactory( @Nullable public static OpenTelemetry getOpenTelemetry( - String projectId, MetricsProvider metricsProvider, @Nullable Credentials defaultCredentials) + String projectId, + MetricsProvider metricsProvider, + @Nullable Credentials defaultCredentials, + String metricsEndpoint) throws IOException { if (metricsProvider instanceof CustomOpenTelemetryMetricsProvider) { CustomOpenTelemetryMetricsProvider customMetricsProvider = @@ -390,7 +398,7 @@ public static OpenTelemetry getOpenTelemetry( ? BigtableDataSettings.getMetricsCredentials() : defaultCredentials; DefaultMetricsProvider defaultMetricsProvider = (DefaultMetricsProvider) metricsProvider; - return defaultMetricsProvider.getOpenTelemetry(projectId, credentials); + return defaultMetricsProvider.getOpenTelemetry(projectId, metricsEndpoint, credentials); } else if (metricsProvider instanceof NoopMetricsProvider) { return null; } diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java index 46933c169017..dbb6a6e10c47 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java @@ -50,6 +50,7 @@ import com.google.cloud.bigtable.data.v2.stub.metrics.MetricsProvider; import com.google.cloud.bigtable.data.v2.stub.mutaterows.MutateRowsBatchingDescriptor; import com.google.cloud.bigtable.data.v2.stub.readrows.ReadRowsBatchingDescriptor; +import com.google.cloud.monitoring.v3.MetricServiceSettings; import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; @@ -250,6 +251,7 @@ public class EnhancedBigtableStubSettings extends StubSettings getJwtAudienceMapping() { return jwtAudienceMapping; @@ -1184,6 +1205,7 @@ public String toString() { .add("pingAndWarmSettings", pingAndWarmSettings) .add("executeQuerySettings", executeQuerySettings) .add("metricsProvider", metricsProvider) + .add("metricsEndpoint", metricsEndpoint) .add("parent", super.toString()) .toString(); } diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporter.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporter.java index f6a25273020c..c3263950dc16 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporter.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporter.java @@ -39,7 +39,6 @@ import com.google.cloud.monitoring.v3.MetricServiceClient; import com.google.cloud.monitoring.v3.MetricServiceSettings; import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; @@ -78,13 +77,6 @@ public final class BigtableCloudMonitoringExporter implements MetricExporter { private static final Logger logger = Logger.getLogger(BigtableCloudMonitoringExporter.class.getName()); - // This system property can be used to override the monitoring endpoint - // to a different environment. It's meant for internal testing only. - private static final String MONITORING_ENDPOINT = - MoreObjects.firstNonNull( - System.getProperty("bigtable.test-monitoring-endpoint"), - MetricServiceSettings.getDefaultEndpoint()); - private static final String APPLICATION_RESOURCE_PROJECT_ID = "project_id"; // This the quota limit from Cloud Monitoring. More details in @@ -126,14 +118,14 @@ public final class BigtableCloudMonitoringExporter implements MetricExporter { .collect(ImmutableList.toImmutableList()); public static BigtableCloudMonitoringExporter create( - String projectId, @Nullable Credentials credentials) throws IOException { + String projectId, @Nullable Credentials credentials, String endpoint) throws IOException { MetricServiceSettings.Builder settingsBuilder = MetricServiceSettings.newBuilder(); CredentialsProvider credentialsProvider = Optional.ofNullable(credentials) .map(FixedCredentialsProvider::create) .orElse(NoCredentialsProvider.create()); settingsBuilder.setCredentialsProvider(credentialsProvider); - settingsBuilder.setEndpoint(MONITORING_ENDPOINT); + settingsBuilder.setEndpoint(endpoint); org.threeten.bp.Duration timeout = Duration.ofMinutes(1); // TODO: createServiceTimeSeries needs special handling if the request failed. Leaving diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsView.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsView.java index 445160a146f8..a866800ebaa1 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsView.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsView.java @@ -17,6 +17,7 @@ import com.google.auth.Credentials; import com.google.auth.oauth2.GoogleCredentials; +import com.google.cloud.monitoring.v3.MetricServiceSettings; import io.opentelemetry.sdk.metrics.InstrumentSelector; import io.opentelemetry.sdk.metrics.SdkMeterProviderBuilder; import io.opentelemetry.sdk.metrics.View; @@ -37,7 +38,7 @@ private BuiltinMetricsView() {} /** * Register built-in metrics on the {@link SdkMeterProviderBuilder} with application default - * credentials. + * credentials and default endpoint. */ public static void registerBuiltinMetrics(String projectId, SdkMeterProviderBuilder builder) throws IOException { @@ -45,11 +46,29 @@ public static void registerBuiltinMetrics(String projectId, SdkMeterProviderBuil projectId, GoogleCredentials.getApplicationDefault(), builder); } - /** Register built-in metrics on the {@link SdkMeterProviderBuilder} with credentials. */ + /** + * Register built-in metrics on the {@link SdkMeterProviderBuilder} with custom credentials and + * default endpoint. + */ public static void registerBuiltinMetrics( String projectId, @Nullable Credentials credentials, SdkMeterProviderBuilder builder) throws IOException { - MetricExporter metricExporter = BigtableCloudMonitoringExporter.create(projectId, credentials); + BuiltinMetricsView.registerBuiltinMetrics( + projectId, credentials, builder, MetricServiceSettings.getDefaultEndpoint()); + } + + /** + * Register built-in metrics on the {@link SdkMeterProviderBuilder} with custom credentials and + * endpoint + */ + public static void registerBuiltinMetrics( + String projectId, + @Nullable Credentials credentials, + SdkMeterProviderBuilder builder, + String endpoint) + throws IOException { + MetricExporter metricExporter = + BigtableCloudMonitoringExporter.create(projectId, credentials, endpoint); for (Map.Entry entry : BuiltinMetricsConstants.getAllViews().entrySet()) { builder.registerView(entry.getKey(), entry.getValue()); diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/DefaultMetricsProvider.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/DefaultMetricsProvider.java index b8aad8c931aa..c6b0a80c7699 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/DefaultMetricsProvider.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/DefaultMetricsProvider.java @@ -42,12 +42,14 @@ public final class DefaultMetricsProvider implements MetricsProvider { private DefaultMetricsProvider() {} @InternalApi - public OpenTelemetry getOpenTelemetry(String projectId, @Nullable Credentials credentials) + public OpenTelemetry getOpenTelemetry( + String projectId, String metricsEndpoint, @Nullable Credentials credentials) throws IOException { this.projectId = projectId; if (openTelemetry == null) { SdkMeterProviderBuilder meterProvider = SdkMeterProvider.builder(); - BuiltinMetricsView.registerBuiltinMetrics(projectId, credentials, meterProvider); + BuiltinMetricsView.registerBuiltinMetrics( + projectId, credentials, meterProvider, metricsEndpoint); openTelemetry = OpenTelemetrySdk.builder().setMeterProvider(meterProvider.build()).build(); } return openTelemetry; diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/BuiltinMetricsIT.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/BuiltinMetricsIT.java index 4f8ff4e4c940..1037347a31a7 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/BuiltinMetricsIT.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/BuiltinMetricsIT.java @@ -42,6 +42,7 @@ import com.google.cloud.bigtable.test_helpers.env.PrefixGenerator; import com.google.cloud.bigtable.test_helpers.env.TestEnvRule; import com.google.cloud.monitoring.v3.MetricServiceClient; +import com.google.cloud.monitoring.v3.MetricServiceSettings; import com.google.common.base.Stopwatch; import com.google.common.collect.BoundType; import com.google.common.collect.ImmutableMap; diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettingsTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettingsTest.java index 4bcacab4c7e5..5280abe1fd3c 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettingsTest.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettingsTest.java @@ -81,6 +81,7 @@ public void settingsAreNotLostTest() { Duration watchdogInterval = Duration.ofSeconds(12); boolean enableRoutingCookie = false; boolean enableRetryInfo = false; + String metricsEndpoint = "test-endpoint:443"; EnhancedBigtableStubSettings.Builder builder = EnhancedBigtableStubSettings.newBuilder() @@ -93,7 +94,8 @@ public void settingsAreNotLostTest() { .setStreamWatchdogProvider(watchdogProvider) .setStreamWatchdogCheckInterval(watchdogInterval) .setEnableRoutingCookie(enableRoutingCookie) - .setEnableRetryInfo(enableRetryInfo); + .setEnableRetryInfo(enableRetryInfo) + .setMetricsEndpoint(metricsEndpoint); verifyBuilder( builder, @@ -106,7 +108,8 @@ public void settingsAreNotLostTest() { watchdogProvider, watchdogInterval, enableRoutingCookie, - enableRetryInfo); + enableRetryInfo, + metricsEndpoint); verifySettings( builder.build(), projectId, @@ -118,7 +121,8 @@ public void settingsAreNotLostTest() { watchdogProvider, watchdogInterval, enableRoutingCookie, - enableRetryInfo); + enableRetryInfo, + metricsEndpoint); verifyBuilder( builder.build().toBuilder(), projectId, @@ -130,7 +134,8 @@ public void settingsAreNotLostTest() { watchdogProvider, watchdogInterval, enableRoutingCookie, - enableRetryInfo); + enableRetryInfo, + metricsEndpoint); } private void verifyBuilder( @@ -144,7 +149,8 @@ private void verifyBuilder( WatchdogProvider watchdogProvider, Duration watchdogInterval, boolean enableRoutingCookie, - boolean enableRetryInfo) { + boolean enableRetryInfo, + String metricsEndpoint) { assertThat(builder.getProjectId()).isEqualTo(projectId); assertThat(builder.getInstanceId()).isEqualTo(instanceId); assertThat(builder.getAppProfileId()).isEqualTo(appProfileId); @@ -155,6 +161,7 @@ private void verifyBuilder( assertThat(builder.getStreamWatchdogCheckInterval()).isEqualTo(watchdogInterval); assertThat(builder.getEnableRoutingCookie()).isEqualTo(enableRoutingCookie); assertThat(builder.getEnableRetryInfo()).isEqualTo(enableRetryInfo); + assertThat(builder.getMetricsEndpoint()).isEqualTo(metricsEndpoint); } private void verifySettings( @@ -168,7 +175,8 @@ private void verifySettings( WatchdogProvider watchdogProvider, Duration watchdogInterval, boolean enableRoutingCookie, - boolean enableRetryInfo) { + boolean enableRetryInfo, + String metricsEndpoint) { assertThat(settings.getProjectId()).isEqualTo(projectId); assertThat(settings.getInstanceId()).isEqualTo(instanceId); assertThat(settings.getAppProfileId()).isEqualTo(appProfileId); @@ -179,6 +187,7 @@ private void verifySettings( assertThat(settings.getStreamWatchdogCheckInterval()).isEqualTo(watchdogInterval); assertThat(settings.getEnableRoutingCookie()).isEqualTo(enableRoutingCookie); assertThat(settings.getEnableRetryInfo()).isEqualTo(enableRetryInfo); + assertThat(settings.getMetricsEndpoint()).isEqualTo(metricsEndpoint); } @Test @@ -965,6 +974,7 @@ public void enableRetryInfoFalseValueTest() throws IOException { "pingAndWarmSettings", "executeQuerySettings", "metricsProvider", + "metricsEndpoint", }; @Test From 0435ead700390849fb59b80ee2ecc3d3c688e1e1 Mon Sep 17 00:00:00 2001 From: Mattie Fu Date: Mon, 30 Sep 2024 11:00:27 -0400 Subject: [PATCH 2/6] format --- .../com/google/cloud/bigtable/data/v2/it/BuiltinMetricsIT.java | 1 - 1 file changed, 1 deletion(-) diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/BuiltinMetricsIT.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/BuiltinMetricsIT.java index 1037347a31a7..4f8ff4e4c940 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/BuiltinMetricsIT.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/BuiltinMetricsIT.java @@ -42,7 +42,6 @@ import com.google.cloud.bigtable.test_helpers.env.PrefixGenerator; import com.google.cloud.bigtable.test_helpers.env.TestEnvRule; import com.google.cloud.monitoring.v3.MetricServiceClient; -import com.google.cloud.monitoring.v3.MetricServiceSettings; import com.google.common.base.Stopwatch; import com.google.common.collect.BoundType; import com.google.common.collect.ImmutableMap; From 68d0507ca5130342d04bce49da439f160a0bdd4b Mon Sep 17 00:00:00 2001 From: Mattie Fu Date: Mon, 30 Sep 2024 15:51:51 -0400 Subject: [PATCH 3/6] update default --- .../v2/stub/EnhancedBigtableStubSettings.java | 23 ++++++++++++++----- .../BigtableCloudMonitoringExporter.java | 19 +++++++++++++-- .../v2/stub/metrics/BuiltinMetricsView.java | 4 ++-- 3 files changed, 36 insertions(+), 10 deletions(-) diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java index dbb6a6e10c47..2a3d0ddba4e5 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java @@ -50,7 +50,6 @@ import com.google.cloud.bigtable.data.v2.stub.metrics.MetricsProvider; import com.google.cloud.bigtable.data.v2.stub.mutaterows.MutateRowsBatchingDescriptor; import com.google.cloud.bigtable.data.v2.stub.readrows.ReadRowsBatchingDescriptor; -import com.google.cloud.monitoring.v3.MetricServiceSettings; import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; @@ -66,6 +65,7 @@ import java.util.Set; import java.util.logging.Logger; import javax.annotation.Nonnull; +import javax.annotation.Nullable; import org.threeten.bp.Duration; /** @@ -251,7 +251,7 @@ public class EnhancedBigtableStubSettings extends StubSettingsmap(FixedCredentialsProvider::create) .orElse(NoCredentialsProvider.create()); settingsBuilder.setCredentialsProvider(credentialsProvider); - settingsBuilder.setEndpoint(endpoint); + if (MONITORING_ENDPOINT != null) { + logger.warning( + "Setting the monitoring endpoint through system variable will be removed in future versions"); + settingsBuilder.setEndpoint(MONITORING_ENDPOINT); + } + if (endpoint != null) { + settingsBuilder.setEndpoint(endpoint); + } org.threeten.bp.Duration timeout = Duration.ofMinutes(1); // TODO: createServiceTimeSeries needs special handling if the request failed. Leaving diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsView.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsView.java index a866800ebaa1..386b88e42dc7 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsView.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsView.java @@ -59,13 +59,13 @@ public static void registerBuiltinMetrics( /** * Register built-in metrics on the {@link SdkMeterProviderBuilder} with custom credentials and - * endpoint + * endpoint. */ public static void registerBuiltinMetrics( String projectId, @Nullable Credentials credentials, SdkMeterProviderBuilder builder, - String endpoint) + @Nullable String endpoint) throws IOException { MetricExporter metricExporter = BigtableCloudMonitoringExporter.create(projectId, credentials, endpoint); From 2ae940f32acbed111c8b3b4209b6b529fbab079d Mon Sep 17 00:00:00 2001 From: Mattie Fu Date: Mon, 30 Sep 2024 17:01:19 -0400 Subject: [PATCH 4/6] add nullable annotation --- .../cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java index 8c29acf1a679..91c63c2b85a8 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java @@ -386,7 +386,7 @@ public static OpenTelemetry getOpenTelemetry( String projectId, MetricsProvider metricsProvider, @Nullable Credentials defaultCredentials, - String metricsEndpoint) + @Nullable String metricsEndpoint) throws IOException { if (metricsProvider instanceof CustomOpenTelemetryMetricsProvider) { CustomOpenTelemetryMetricsProvider customMetricsProvider = From 21e7d7a0c6e2833e70c987126abfdc0583618208 Mon Sep 17 00:00:00 2001 From: Mattie Fu Date: Mon, 30 Sep 2024 17:08:14 -0400 Subject: [PATCH 5/6] update --- .../v2/stub/metrics/BigtableCloudMonitoringExporter.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporter.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporter.java index 0b248b5dd91a..fd54313e8d74 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporter.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporter.java @@ -81,7 +81,8 @@ public final class BigtableCloudMonitoringExporter implements MetricExporter { // to a different environment. It's meant for internal testing only and // will be removed in future versions. Use settings in EnhancedBigtableStubSettings // to override the endpoint. - private static final String MONITORING_ENDPOINT = + @Deprecated @Nullable + private static final String MONITORING_ENDPOINT_OVERRIDE_SYS_PROP = System.getProperty("bigtable.test-monitoring-endpoint"); private static final String APPLICATION_RESOURCE_PROJECT_ID = "project_id"; @@ -133,10 +134,10 @@ public static BigtableCloudMonitoringExporter create( .map(FixedCredentialsProvider::create) .orElse(NoCredentialsProvider.create()); settingsBuilder.setCredentialsProvider(credentialsProvider); - if (MONITORING_ENDPOINT != null) { + if (MONITORING_ENDPOINT_OVERRIDE_SYS_PROP != null) { logger.warning( "Setting the monitoring endpoint through system variable will be removed in future versions"); - settingsBuilder.setEndpoint(MONITORING_ENDPOINT); + settingsBuilder.setEndpoint(MONITORING_ENDPOINT_OVERRIDE_SYS_PROP); } if (endpoint != null) { settingsBuilder.setEndpoint(endpoint); From 36d2865e26d04e5d1e365b294e26d949f53d22e1 Mon Sep 17 00:00:00 2001 From: Mattie Fu Date: Mon, 30 Sep 2024 17:13:22 -0400 Subject: [PATCH 6/6] update --- .../bigtable/data/v2/stub/metrics/BuiltinMetricsView.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsView.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsView.java index 386b88e42dc7..ca52581a92c9 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsView.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsView.java @@ -17,7 +17,6 @@ import com.google.auth.Credentials; import com.google.auth.oauth2.GoogleCredentials; -import com.google.cloud.monitoring.v3.MetricServiceSettings; import io.opentelemetry.sdk.metrics.InstrumentSelector; import io.opentelemetry.sdk.metrics.SdkMeterProviderBuilder; import io.opentelemetry.sdk.metrics.View; @@ -53,8 +52,7 @@ public static void registerBuiltinMetrics(String projectId, SdkMeterProviderBuil public static void registerBuiltinMetrics( String projectId, @Nullable Credentials credentials, SdkMeterProviderBuilder builder) throws IOException { - BuiltinMetricsView.registerBuiltinMetrics( - projectId, credentials, builder, MetricServiceSettings.getDefaultEndpoint()); + BuiltinMetricsView.registerBuiltinMetrics(projectId, credentials, builder, null); } /**