@@ -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