Skip to content

Commit e3cafd7

Browse files
authored
chore: built-in metrics attributes (#3346)
1 parent 8cd5163 commit e3cafd7

File tree

4 files changed

+24
-7
lines changed

4 files changed

+24
-7
lines changed

google-cloud-spanner/src/main/java/com/google/cloud/spanner/BuiltInMetricsConstant.java

+8-1
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,16 @@ public class BuiltInMetricsConstant {
6161
public static final AttributeKey<String> LOCATION_ID_KEY = AttributeKey.stringKey("location");
6262
public static final AttributeKey<String> INSTANCE_CONFIG_ID_KEY =
6363
AttributeKey.stringKey("instance_config");
64+
public static final AttributeKey<String> CLIENT_HASH_KEY = AttributeKey.stringKey("client_hash");
6465

6566
// These metric labels will be promoted to the spanner monitored resource fields
6667
public static final Set<AttributeKey<String>> SPANNER_PROMOTED_RESOURCE_LABELS =
67-
ImmutableSet.of(PROJECT_ID_KEY, INSTANCE_ID_KEY, INSTANCE_CONFIG_ID_KEY, LOCATION_ID_KEY);
68+
ImmutableSet.of(
69+
PROJECT_ID_KEY,
70+
INSTANCE_ID_KEY,
71+
INSTANCE_CONFIG_ID_KEY,
72+
LOCATION_ID_KEY,
73+
CLIENT_HASH_KEY);
6874

6975
public static final AttributeKey<String> DATABASE_KEY = AttributeKey.stringKey("database");
7076
public static final AttributeKey<String> CLIENT_UID_KEY = AttributeKey.stringKey("client_uid");
@@ -87,6 +93,7 @@ public class BuiltInMetricsConstant {
8793
LOCATION_ID_KEY,
8894
INSTANCE_CONFIG_ID_KEY,
8995
CLIENT_UID_KEY,
96+
CLIENT_HASH_KEY,
9097
METHOD_KEY,
9198
STATUS_KEY,
9299
DATABASE_KEY,

google-cloud-spanner/src/main/java/com/google/cloud/spanner/BuiltInOpenTelemetryMetricsProvider.java

+2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.google.cloud.spanner;
1818

1919
import static com.google.cloud.opentelemetry.detection.GCPPlatformDetector.SupportedPlatform.GOOGLE_KUBERNETES_ENGINE;
20+
import static com.google.cloud.spanner.BuiltInMetricsConstant.CLIENT_HASH_KEY;
2021
import static com.google.cloud.spanner.BuiltInMetricsConstant.CLIENT_NAME_KEY;
2122
import static com.google.cloud.spanner.BuiltInMetricsConstant.CLIENT_UID_KEY;
2223
import static com.google.cloud.spanner.BuiltInMetricsConstant.INSTANCE_CONFIG_ID_KEY;
@@ -83,6 +84,7 @@ Map<String, String> createClientAttributes(String projectId, String client_name)
8384
clientAttributes.put(INSTANCE_CONFIG_ID_KEY.getKey(), "unknown");
8485
clientAttributes.put(CLIENT_NAME_KEY.getKey(), client_name);
8586
clientAttributes.put(CLIENT_UID_KEY.getKey(), getDefaultTaskValue());
87+
clientAttributes.put(CLIENT_HASH_KEY.getKey(), "cloud_spanner_client_raw_metrics");
8688
return clientAttributes;
8789
}
8890

google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenTelemetryBuiltInMetricsTracerTest.java

+1
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ public static void setup() {
9999
BuiltInOpenTelemetryMetricsProvider.detectClientLocation())
100100
.put(BuiltInMetricsConstant.CLIENT_NAME_KEY, client_name)
101101
.put(BuiltInMetricsConstant.CLIENT_UID_KEY, attributes.get("client_uid"))
102+
.put(BuiltInMetricsConstant.CLIENT_HASH_KEY, "cloud_spanner_client_raw_metrics")
102103
.build();
103104
}
104105

google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerCloudMonitoringExporterTest.java

+13-6
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package com.google.cloud.spanner;
1818

19+
import static com.google.cloud.spanner.BuiltInMetricsConstant.CLIENT_HASH_KEY;
1920
import static com.google.cloud.spanner.BuiltInMetricsConstant.CLIENT_NAME_KEY;
2021
import static com.google.cloud.spanner.BuiltInMetricsConstant.CLIENT_UID_KEY;
2122
import static com.google.cloud.spanner.BuiltInMetricsConstant.DATABASE_KEY;
@@ -76,6 +77,8 @@ public class SpannerCloudMonitoringExporterTest {
7677
private static final String locationId = "global";
7778
private static final String databaseId = "fake-database";
7879
private static final String clientName = "spanner-java";
80+
81+
private static final String clientHash = "spanner-test";
7982
private static final String instanceConfigId = "fake-instance-config-id";
8083

8184
@Rule public final MockitoRule mockitoRule = MockitoJUnit.rule();
@@ -101,6 +104,7 @@ public void setUp() {
101104
.put(INSTANCE_CONFIG_ID_KEY, instanceConfigId)
102105
.put(DATABASE_KEY, databaseId)
103106
.put(CLIENT_NAME_KEY, clientName)
107+
.put(CLIENT_HASH_KEY, clientHash)
104108
.put(String.valueOf(DIRECT_PATH_ENABLED_KEY), true)
105109
.put(String.valueOf(DIRECT_PATH_USED_KEY), true)
106110
.build();
@@ -153,9 +157,10 @@ public void testExportingSumData() {
153157
PROJECT_ID_KEY.getKey(), projectId,
154158
INSTANCE_ID_KEY.getKey(), instanceId,
155159
LOCATION_ID_KEY.getKey(), locationId,
156-
INSTANCE_CONFIG_ID_KEY.getKey(), instanceConfigId);
160+
INSTANCE_CONFIG_ID_KEY.getKey(), instanceConfigId,
161+
CLIENT_HASH_KEY.getKey(), clientHash);
157162

158-
assertThat(timeSeries.getResource().getLabelsMap()).hasSize(4);
163+
assertThat(timeSeries.getResource().getLabelsMap()).hasSize(5);
159164

160165
assertThat(timeSeries.getMetric().getLabelsMap())
161166
.containsExactly(
@@ -218,13 +223,14 @@ public void testExportingHistogramData() {
218223

219224
TimeSeries timeSeries = request.getTimeSeriesList().get(0);
220225

221-
assertThat(timeSeries.getResource().getLabelsMap()).hasSize(4);
226+
assertThat(timeSeries.getResource().getLabelsMap()).hasSize(5);
222227
assertThat(timeSeries.getResource().getLabelsMap())
223228
.containsExactly(
224229
PROJECT_ID_KEY.getKey(), projectId,
225230
INSTANCE_ID_KEY.getKey(), instanceId,
226231
LOCATION_ID_KEY.getKey(), locationId,
227-
INSTANCE_CONFIG_ID_KEY.getKey(), instanceConfigId);
232+
INSTANCE_CONFIG_ID_KEY.getKey(), instanceConfigId,
233+
CLIENT_HASH_KEY.getKey(), clientHash);
228234

229235
assertThat(timeSeries.getMetric().getLabelsMap()).hasSize(4);
230236
assertThat(timeSeries.getMetric().getLabelsMap())
@@ -296,13 +302,14 @@ public void testExportingSumDataInBatches() {
296302
timeSeries = secondRequest.getTimeSeriesList().get(i - 200);
297303
}
298304

299-
assertThat(timeSeries.getResource().getLabelsMap()).hasSize(4);
305+
assertThat(timeSeries.getResource().getLabelsMap()).hasSize(5);
300306
assertThat(timeSeries.getResource().getLabelsMap())
301307
.containsExactly(
302308
PROJECT_ID_KEY.getKey(), projectId,
303309
INSTANCE_ID_KEY.getKey(), instanceId,
304310
LOCATION_ID_KEY.getKey(), locationId,
305-
INSTANCE_CONFIG_ID_KEY.getKey(), instanceConfigId);
311+
INSTANCE_CONFIG_ID_KEY.getKey(), instanceConfigId,
312+
CLIENT_HASH_KEY.getKey(), clientHash);
306313

307314
assertThat(timeSeries.getMetric().getLabelsMap()).hasSize(5);
308315
assertThat(timeSeries.getMetric().getLabelsMap())

0 commit comments

Comments
 (0)