From bc389d2e76e31ba8e60cd23d68107736f6cd725f Mon Sep 17 00:00:00 2001 From: Reza Karegar Date: Thu, 25 Jan 2024 16:14:52 +0000 Subject: [PATCH] Pass client name and version directly to StatsRecorderWrapper. --- .../bigtable/stats/BuiltinMeasureConstants.java | 5 ++--- .../cloud/bigtable/stats/StatsRecorderWrapper.java | 12 +----------- .../bigtable/stats/StatsRecorderWrapperTest.java | 8 +++----- .../bigtable/data/v2/stub/EnhancedBigtableStub.java | 1 + .../stub/metrics/BuiltinMetricsTracerFactory.java | 13 +------------ 5 files changed, 8 insertions(+), 31 deletions(-) diff --git a/google-cloud-bigtable-stats/src/main/java/com/google/cloud/bigtable/stats/BuiltinMeasureConstants.java b/google-cloud-bigtable-stats/src/main/java/com/google/cloud/bigtable/stats/BuiltinMeasureConstants.java index 12b96e14a2..57a94335dd 100644 --- a/google-cloud-bigtable-stats/src/main/java/com/google/cloud/bigtable/stats/BuiltinMeasureConstants.java +++ b/google-cloud-bigtable-stats/src/main/java/com/google/cloud/bigtable/stats/BuiltinMeasureConstants.java @@ -20,7 +20,7 @@ import io.opencensus.tags.TagKey; /** Built-in metrics that will be readable under bigtable.googleapis.com/client namespace */ -public class BuiltinMeasureConstants { +class BuiltinMeasureConstants { // Monitored resource TagKeys static final TagKey PROJECT_ID = TagKey.create("project_id"); static final TagKey INSTANCE_ID = TagKey.create("instance"); @@ -34,8 +34,7 @@ public class BuiltinMeasureConstants { static final TagKey METHOD = TagKey.create("method"); static final TagKey STREAMING = TagKey.create("streaming"); static final TagKey STATUS = TagKey.create("status"); - static final TagKey CLIENT_NAME = TagKey.create("client_name"); - public static final TagKey CLIENT_VERSION = TagKey.create("client_version"); + public static final TagKey CLIENT_NAME = TagKey.create("client_name"); // Units private static final String COUNT = "1"; diff --git a/google-cloud-bigtable-stats/src/main/java/com/google/cloud/bigtable/stats/StatsRecorderWrapper.java b/google-cloud-bigtable-stats/src/main/java/com/google/cloud/bigtable/stats/StatsRecorderWrapper.java index cc5dfe1dd2..6bf0988b91 100644 --- a/google-cloud-bigtable-stats/src/main/java/com/google/cloud/bigtable/stats/StatsRecorderWrapper.java +++ b/google-cloud-bigtable-stats/src/main/java/com/google/cloud/bigtable/stats/StatsRecorderWrapper.java @@ -27,7 +27,6 @@ import io.opencensus.tags.Tagger; import io.opencensus.tags.Tags; import java.util.Map; -import java.util.Objects; /** A wrapper to record built-in metrics */ @InternalApi("For internal use only") @@ -124,21 +123,12 @@ private TagContextBuilder newTagContextBuilder(String tableId, String zone, Stri TagContextBuilder tagContextBuilder = tagger .toBuilder(parentContext) - .putLocal( - BuiltinMeasureConstants.CLIENT_NAME, - TagValue.create( - "bigtable-java/" - + statsAttributes.get(BuiltinMeasureConstants.CLIENT_VERSION.getName()))) .putLocal(BuiltinMeasureConstants.METHOD, TagValue.create(spanName.toString())) .putLocal(BuiltinMeasureConstants.TABLE, TagValue.create(tableId)) .putLocal(BuiltinMeasureConstants.ZONE, TagValue.create(zone)) .putLocal(BuiltinMeasureConstants.CLUSTER, TagValue.create(cluster)); for (Map.Entry entry : statsAttributes.entrySet()) { - // Client version is appended to the client name to keep metric attributes constant. - if (!Objects.equals(entry.getKey(), BuiltinMeasureConstants.CLIENT_VERSION.getName())) { - tagContextBuilder.putLocal( - TagKey.create(entry.getKey()), TagValue.create(entry.getValue())); - } + tagContextBuilder.putLocal(TagKey.create(entry.getKey()), TagValue.create(entry.getValue())); } return tagContextBuilder; } diff --git a/google-cloud-bigtable-stats/src/test/java/com/google/cloud/bigtable/stats/StatsRecorderWrapperTest.java b/google-cloud-bigtable-stats/src/test/java/com/google/cloud/bigtable/stats/StatsRecorderWrapperTest.java index 18b21680aa..829202510c 100644 --- a/google-cloud-bigtable-stats/src/test/java/com/google/cloud/bigtable/stats/StatsRecorderWrapperTest.java +++ b/google-cloud-bigtable-stats/src/test/java/com/google/cloud/bigtable/stats/StatsRecorderWrapperTest.java @@ -51,8 +51,6 @@ public class StatsRecorderWrapperTest { private final String TABLE_ID = "fake-table-id"; private final String ZONE = "fake-zone"; private final String CLUSTER = "fake-cluster"; - - private final String VERSION = "fake-version"; private final String CLIENT_AND_VERSION = "bigtable-java/fake-version"; private final StatsComponent statsComponent = new StatsComponentImpl(); @@ -76,8 +74,8 @@ public void testStreamingOperation() throws InterruptedException { INSTANCE_ID, BuiltinMeasureConstants.APP_PROFILE.getName(), APP_PROFILE_ID, - BuiltinMeasureConstants.CLIENT_VERSION.getName(), - VERSION), + BuiltinMeasureConstants.CLIENT_NAME.getName(), + CLIENT_AND_VERSION), statsComponent.getStatsRecorder()); long operationLatency = 1234; @@ -277,7 +275,7 @@ public void testUnaryOperations() throws InterruptedException { BuiltinMeasureConstants.PROJECT_ID.getName(), PROJECT_ID, BuiltinMeasureConstants.INSTANCE_ID.getName(), INSTANCE_ID, BuiltinMeasureConstants.APP_PROFILE.getName(), APP_PROFILE_ID, - BuiltinMeasureConstants.CLIENT_VERSION.getName(), VERSION), + BuiltinMeasureConstants.CLIENT_NAME.getName(), CLIENT_AND_VERSION), statsComponent.getStatsRecorder()); long operationLatency = 1234; 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 b43b680e1a..9fb906c2d1 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 @@ -259,6 +259,7 @@ public static ApiTracerFactory createBigtableTracerFactory( .put("project_id", projectId) .put("instance", instanceId) .put("app_profile", appProfileId) + .put("client_name", "bigtable-java/" + Version.VERSION) .build(); return new CompositeTracerFactory( diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsTracerFactory.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsTracerFactory.java index 96e11b30c6..794997071d 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsTracerFactory.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BuiltinMetricsTracerFactory.java @@ -20,8 +20,6 @@ import com.google.api.gax.tracing.ApiTracerFactory; import com.google.api.gax.tracing.BaseApiTracerFactory; import com.google.api.gax.tracing.SpanName; -import com.google.cloud.bigtable.Version; -import com.google.cloud.bigtable.stats.BuiltinMeasureConstants; import com.google.cloud.bigtable.stats.StatsWrapper; import com.google.common.collect.ImmutableMap; @@ -39,16 +37,7 @@ public static BuiltinMetricsTracerFactory create(ImmutableMap st } private BuiltinMetricsTracerFactory(ImmutableMap statsAttributes) { - this.statsAttributes = addClientVersionToAttributes(statsAttributes); - } - - private ImmutableMap addClientVersionToAttributes( - ImmutableMap statsAttributes) { - String clientVersionKey = BuiltinMeasureConstants.CLIENT_VERSION.getName(); - return new ImmutableMap.Builder() - .putAll(statsAttributes) - .put(clientVersionKey, Version.VERSION) - .build(); + this.statsAttributes = statsAttributes; } @Override