Skip to content
This repository was archived by the owner on Apr 7, 2026. It is now read-only.

Commit c14fdb8

Browse files
committed
Enable different attributes in different gRPC metrics
1 parent 8387e4d commit c14fdb8

1 file changed

Lines changed: 30 additions & 12 deletions

File tree

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

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,34 @@ public class BuiltInMetricsConstant {
6868
.map(m -> METER_NAME + '/' + m)
6969
.collect(Collectors.toSet());
7070

71+
static final Set<String> GRPC_LB_RLS_ATTRIBUTES =
72+
ImmutableSet.of("grpc.lb.rls.data_plane_target", "grpc.lb.pick_result");
73+
static final Set<String> GRPC_CLIENT_ATTEMPT_STARTED_ATTRIBUTES =
74+
ImmutableSet.of("grpc.method", "grpc.target");
75+
static final Set<String> GRPC_SUBCHANNEL_DEFAULT_ATTRIBUTES =
76+
ImmutableSet.of("grpc.target", "grpc.lb.locality", "grpc.lb.backend_service");
77+
static final Set<String> GRPC_SUBCHANNEL_DISCONNECTION_ATTRIBUTES =
78+
ImmutableSet.of(
79+
"grpc.target", "grpc.lb.locality", "grpc.lb.backend_service", "grpc.disconnect_error");
80+
static final Set<String> GRPC_XDS_CLIENT_RESOURCE_UPDATE_ATTRIBUTES =
81+
ImmutableSet.of("grpc.xds.resource_type");
82+
83+
// Additional gRPC attributes to enable.
84+
static final Map<String, Set<String>> GRPC_METRIC_ADDITIONAL_ATTRIBUTES =
85+
ImmutableMap.<String, Set<String>>builder()
86+
.put("grpc.client.attempt.started", GRPC_CLIENT_ATTEMPT_STARTED_ATTRIBUTES)
87+
.put("grpc.subchannel.open_connections", GRPC_SUBCHANNEL_DEFAULT_ATTRIBUTES)
88+
.put("grpc.subchannel.disconnections", GRPC_SUBCHANNEL_DISCONNECTION_ATTRIBUTES)
89+
.put("grpc.subchannel.connection_attempts_succeeded", GRPC_SUBCHANNEL_DEFAULT_ATTRIBUTES)
90+
.put("grpc.subchannel.connection_attempts_failed", GRPC_SUBCHANNEL_DEFAULT_ATTRIBUTES)
91+
.put("grpc.lb.rls.default_target_picks", GRPC_LB_RLS_ATTRIBUTES)
92+
.put("grpc.lb.rls.target_picks", GRPC_LB_RLS_ATTRIBUTES)
93+
.put(
94+
"grpc.xds_client.resource_updates_invalid",
95+
GRPC_XDS_CLIENT_RESOURCE_UPDATE_ATTRIBUTES)
96+
.put("grpc.xds_client.resource_updates_valid", GRPC_XDS_CLIENT_RESOURCE_UPDATE_ATTRIBUTES)
97+
.build();
98+
7199
static final Collection<String> GRPC_METRICS_TO_ENABLE =
72100
ImmutableList.of(
73101
"grpc.client.attempt.started",
@@ -127,17 +155,6 @@ public class BuiltInMetricsConstant {
127155
DIRECT_PATH_ENABLED_KEY,
128156
DIRECT_PATH_USED_KEY);
129157

130-
static final Set<String> GRPC_ATTRIBUTES =
131-
ImmutableSet.of(
132-
"grpc.disconnect_error",
133-
"grpc.method",
134-
"grpc.target",
135-
"grpc.lb.backend_service",
136-
"grpc.lb.locality",
137-
"grpc.lb.pick_result",
138-
"grpc.lb.rls.data_plane_target",
139-
"grpc.xds.resource_type");
140-
141158
static List<Double> BUCKET_BOUNDARIES =
142159
ImmutableList.of(
143160
0.0, 0.5, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0,
@@ -245,7 +262,8 @@ private static void defineGRPCView(ImmutableMap.Builder<InstrumentSelector, View
245262
BuiltInMetricsConstant.COMMON_ATTRIBUTES.stream()
246263
.map(AttributeKey::getKey)
247264
.collect(Collectors.toSet());
248-
attributesFilter.addAll(BuiltInMetricsConstant.GRPC_ATTRIBUTES);
265+
attributesFilter.addAll(
266+
GRPC_METRIC_ADDITIONAL_ATTRIBUTES.getOrDefault(metric, ImmutableSet.of()));
249267

250268
View view =
251269
View.builder()

0 commit comments

Comments
 (0)