7676public class XdsClientMetricReporterImplTest {
7777
7878 private static final String target = "test-target" ;
79+ private static final String authority = "test-authority" ;
7980 private static final String server = "trafficdirector.googleapis.com" ;
8081 private static final String resourceTypeUrl =
8182 "resourceTypeUrl.googleapis.com/envoy.config.cluster.v3.Cluster" ;
@@ -101,7 +102,6 @@ public void setUp() {
101102
102103 @ Test
103104 public void reportResourceUpdates () {
104- // TODO(dnvindhya): add the "authority" label once available.
105105 reporter .reportResourceUpdates (10 , 5 , server , resourceTypeUrl );
106106 verify (mockMetricRecorder ).addLongCounter (
107107 eqMetricInstrumentName ("grpc.xds_client.resource_updates_valid" ), eq ((long ) 10 ),
@@ -175,8 +175,8 @@ public void setXdsClient_reportCallbackMetrics_resourceCountsFails() {
175175 public void metricGauges () {
176176 SettableFuture <Void > future = SettableFuture .create ();
177177 future .set (null );
178- when (mockXdsClient .getSubscribedResourcesMetadataSnapshot ()). thenReturn ( Futures . immediateFuture (
179- ImmutableMap .of ()));
178+ when (mockXdsClient .getSubscribedResourcesMetadataSnapshot ())
179+ . thenReturn ( Futures . immediateFuture ( ImmutableMap .of ()));
180180 when (mockXdsClient .reportServerConnections (any (ServerConnectionCallback .class )))
181181 .thenReturn (future );
182182 reporter .setXdsClient (mockXdsClient );
@@ -199,13 +199,15 @@ public void metricGauges() {
199199
200200 // Verify that reportResourceCounts and reportServerConnections were called
201201 // with the captured callback
202- callback .reportResourceCountGauge (10 , "acked" , resourceTypeUrl );
202+ callback .reportResourceCountGauge (10 , "MrPotatoHead" ,
203+ "acked" , resourceTypeUrl );
203204 inOrder .verify (mockBatchRecorder )
204205 .recordLongGauge (eqMetricInstrumentName ("grpc.xds_client.resources" ), eq (10L ), any (),
205206 any ());
206207 callback .reportServerConnectionGauge (true , "xdsServer" );
207208 inOrder .verify (mockBatchRecorder )
208- .recordLongGauge (eqMetricInstrumentName ("grpc.xds_client.connected" ), eq (1L ), any (), any ());
209+ .recordLongGauge (eqMetricInstrumentName ("grpc.xds_client.connected" ),
210+ eq (1L ), any (), any ());
209211
210212 inOrder .verifyNoMoreInteractions ();
211213 }
@@ -222,10 +224,10 @@ public void metricReporterCallback() {
222224 eq (Lists .newArrayList ()));
223225
224226 String cacheState = "requested" ;
225- callback .reportResourceCountGauge (10 , cacheState , resourceTypeUrl );
227+ callback .reportResourceCountGauge (10 , authority , cacheState , resourceTypeUrl );
226228 verify (mockBatchRecorder , times (1 )).recordLongGauge (
227229 eqMetricInstrumentName ("grpc.xds_client.resources" ), eq (10L ),
228- eq (Arrays .asList (target , cacheState , resourceTypeUrl )),
230+ eq (Arrays .asList (target , authority , cacheState , resourceTypeUrl )),
229231 eq (Collections .emptyList ()));
230232 }
231233
@@ -236,32 +238,31 @@ public void reportCallbackMetrics_computeAndReportResourceCounts() {
236238 XdsResourceType <?> routeConfigResource = XdsRouteConfigureResource .getInstance ();
237239 XdsResourceType <?> clusterResource = XdsClusterResource .getInstance ();
238240
239- Any rawListener =
240- Any .pack (Listener .newBuilder ().setName ("listener.googleapis.com" ).build ());
241+ Any rawListener = Any .pack (Listener .newBuilder ().setName ("listener.googleapis.com" ).build ());
241242 long nanosLastUpdate = 1577923199_606042047L ;
242243
243244 Map <String , ResourceMetadata > ldsResourceMetadataMap = new HashMap <>();
244- ldsResourceMetadataMap .put ("resource1 " ,
245+ ldsResourceMetadataMap .put ("xdstp://authority1 " ,
245246 ResourceMetadata .newResourceMetadataRequested ());
246- ResourceMetadata ackedLdsResource = ResourceMetadata . newResourceMetadataAcked ( rawListener , "42" ,
247- nanosLastUpdate );
247+ ResourceMetadata ackedLdsResource =
248+ ResourceMetadata . newResourceMetadataAcked ( rawListener , "42" , nanosLastUpdate );
248249 ldsResourceMetadataMap .put ("resource2" , ackedLdsResource );
249250 ldsResourceMetadataMap .put ("resource3" ,
250251 ResourceMetadata .newResourceMetadataAcked (rawListener , "43" , nanosLastUpdate ));
251- ldsResourceMetadataMap .put ("resource4 " ,
252- ResourceMetadata .newResourceMetadataNacked (ackedLdsResource , "44" , nanosLastUpdate ,
253- "nacked after previous ack" , true ));
252+ ldsResourceMetadataMap .put ("xdstp:/no_authority " ,
253+ ResourceMetadata .newResourceMetadataNacked (ackedLdsResource , "44" ,
254+ nanosLastUpdate , "nacked after previous ack" , true ));
254255
255256 Map <String , ResourceMetadata > rdsResourceMetadataMap = new HashMap <>();
256257 ResourceMetadata requestedRdsResourceMetadata = ResourceMetadata .newResourceMetadataRequested ();
257- rdsResourceMetadataMap .put ("resource5 " ,
258+ rdsResourceMetadataMap .put ("xdstp://authority5 " ,
258259 ResourceMetadata .newResourceMetadataNacked (requestedRdsResourceMetadata , "24" ,
259260 nanosLastUpdate , "nacked after request" , false ));
260- rdsResourceMetadataMap .put ("resource6 " ,
261+ rdsResourceMetadataMap .put ("xdstp://authority6 " ,
261262 ResourceMetadata .newResourceMetadataDoesNotExist ());
262263
263264 Map <String , ResourceMetadata > cdsResourceMetadataMap = new HashMap <>();
264- cdsResourceMetadataMap .put ("resource7 " , ResourceMetadata .newResourceMetadataUnknown ());
265+ cdsResourceMetadataMap .put ("xdstp://authority7 " , ResourceMetadata .newResourceMetadataUnknown ());
265266
266267 metadataByType .put (listenerResource , ldsResourceMetadataMap );
267268 metadataByType .put (routeConfigResource , rdsResourceMetadataMap );
@@ -281,24 +282,34 @@ public void reportCallbackMetrics_computeAndReportResourceCounts() {
281282
282283 // LDS resource requested
283284 verify (mockBatchRecorder ).recordLongGauge (eqMetricInstrumentName ("grpc.xds_client.resources" ),
284- eq (1L ), eq (Arrays .asList (target , "requested" , listenerResource .typeUrl ())), any ());
285+ eq (1L ),
286+ eq (Arrays .asList (target , "authority1" , "requested" , listenerResource .typeUrl ())), any ());
285287 // LDS resources acked
288+ // authority = #old, for non-xdstp resource names
286289 verify (mockBatchRecorder ).recordLongGauge (eqMetricInstrumentName ("grpc.xds_client.resources" ),
287- eq (2L ), eq (Arrays .asList (target , "acked" , listenerResource .typeUrl ())), any ());
290+ eq (2L ),
291+ eq (Arrays .asList (target , "#old" , "acked" , listenerResource .typeUrl ())), any ());
288292 // LDS resource nacked but cached
293+ // "" for missing authority in the resource name
289294 verify (mockBatchRecorder ).recordLongGauge (eqMetricInstrumentName ("grpc.xds_client.resources" ),
290- eq (1L ), eq (Arrays .asList (target , "nacked_but_cached" , listenerResource .typeUrl ())), any ());
295+ eq (1L ),
296+ eq (Arrays .asList (target , "" , "nacked_but_cached" , listenerResource .typeUrl ())), any ());
291297
292298 // RDS resource nacked
293299 verify (mockBatchRecorder ).recordLongGauge (eqMetricInstrumentName ("grpc.xds_client.resources" ),
294- eq (1L ), eq (Arrays .asList (target , "nacked" , routeConfigResource .typeUrl ())), any ());
300+ eq (1L ),
301+ eq (Arrays .asList (target , "authority5" , "nacked" , routeConfigResource .typeUrl ())), any ());
295302 // RDS resource does not exist
296303 verify (mockBatchRecorder ).recordLongGauge (eqMetricInstrumentName ("grpc.xds_client.resources" ),
297- eq (1L ), eq (Arrays .asList (target , "does_not_exist" , routeConfigResource .typeUrl ())), any ());
304+ eq (1L ),
305+ eq (Arrays .asList (target , "authority6" , "does_not_exist" , routeConfigResource .typeUrl ())),
306+ any ());
298307
299308 // CDS resource unknown
300309 verify (mockBatchRecorder ).recordLongGauge (eqMetricInstrumentName ("grpc.xds_client.resources" ),
301- eq (1L ), eq (Arrays .asList (target , "unknown" , clusterResource .typeUrl ())), any ());
310+ eq (1L ),
311+ eq (Arrays .asList (target , "authority7" , "unknown" , clusterResource .typeUrl ())),
312+ any ());
302313 verifyNoMoreInteractions (mockBatchRecorder );
303314 }
304315
0 commit comments