76
76
public class XdsClientMetricReporterImplTest {
77
77
78
78
private static final String target = "test-target" ;
79
+ private static final String authority = "test-authority" ;
79
80
private static final String server = "trafficdirector.googleapis.com" ;
80
81
private static final String resourceTypeUrl =
81
82
"resourceTypeUrl.googleapis.com/envoy.config.cluster.v3.Cluster" ;
@@ -101,7 +102,6 @@ public void setUp() {
101
102
102
103
@ Test
103
104
public void reportResourceUpdates () {
104
- // TODO(dnvindhya): add the "authority" label once available.
105
105
reporter .reportResourceUpdates (10 , 5 , server , resourceTypeUrl );
106
106
verify (mockMetricRecorder ).addLongCounter (
107
107
eqMetricInstrumentName ("grpc.xds_client.resource_updates_valid" ), eq ((long ) 10 ),
@@ -175,8 +175,8 @@ public void setXdsClient_reportCallbackMetrics_resourceCountsFails() {
175
175
public void metricGauges () {
176
176
SettableFuture <Void > future = SettableFuture .create ();
177
177
future .set (null );
178
- when (mockXdsClient .getSubscribedResourcesMetadataSnapshot ()). thenReturn ( Futures . immediateFuture (
179
- ImmutableMap .of ()));
178
+ when (mockXdsClient .getSubscribedResourcesMetadataSnapshot ())
179
+ . thenReturn ( Futures . immediateFuture ( ImmutableMap .of ()));
180
180
when (mockXdsClient .reportServerConnections (any (ServerConnectionCallback .class )))
181
181
.thenReturn (future );
182
182
reporter .setXdsClient (mockXdsClient );
@@ -199,13 +199,15 @@ public void metricGauges() {
199
199
200
200
// Verify that reportResourceCounts and reportServerConnections were called
201
201
// with the captured callback
202
- callback .reportResourceCountGauge (10 , "acked" , resourceTypeUrl );
202
+ callback .reportResourceCountGauge (10 , "MrPotatoHead" ,
203
+ "acked" , resourceTypeUrl );
203
204
inOrder .verify (mockBatchRecorder )
204
205
.recordLongGauge (eqMetricInstrumentName ("grpc.xds_client.resources" ), eq (10L ), any (),
205
206
any ());
206
207
callback .reportServerConnectionGauge (true , "xdsServer" );
207
208
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 ());
209
211
210
212
inOrder .verifyNoMoreInteractions ();
211
213
}
@@ -222,10 +224,10 @@ public void metricReporterCallback() {
222
224
eq (Lists .newArrayList ()));
223
225
224
226
String cacheState = "requested" ;
225
- callback .reportResourceCountGauge (10 , cacheState , resourceTypeUrl );
227
+ callback .reportResourceCountGauge (10 , authority , cacheState , resourceTypeUrl );
226
228
verify (mockBatchRecorder , times (1 )).recordLongGauge (
227
229
eqMetricInstrumentName ("grpc.xds_client.resources" ), eq (10L ),
228
- eq (Arrays .asList (target , cacheState , resourceTypeUrl )),
230
+ eq (Arrays .asList (target , authority , cacheState , resourceTypeUrl )),
229
231
eq (Collections .emptyList ()));
230
232
}
231
233
@@ -236,32 +238,31 @@ public void reportCallbackMetrics_computeAndReportResourceCounts() {
236
238
XdsResourceType <?> routeConfigResource = XdsRouteConfigureResource .getInstance ();
237
239
XdsResourceType <?> clusterResource = XdsClusterResource .getInstance ();
238
240
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 ());
241
242
long nanosLastUpdate = 1577923199_606042047L ;
242
243
243
244
Map <String , ResourceMetadata > ldsResourceMetadataMap = new HashMap <>();
244
- ldsResourceMetadataMap .put ("resource1 " ,
245
+ ldsResourceMetadataMap .put ("xdstp://authority1 " ,
245
246
ResourceMetadata .newResourceMetadataRequested ());
246
- ResourceMetadata ackedLdsResource = ResourceMetadata . newResourceMetadataAcked ( rawListener , "42" ,
247
- nanosLastUpdate );
247
+ ResourceMetadata ackedLdsResource =
248
+ ResourceMetadata . newResourceMetadataAcked ( rawListener , "42" , nanosLastUpdate );
248
249
ldsResourceMetadataMap .put ("resource2" , ackedLdsResource );
249
250
ldsResourceMetadataMap .put ("resource3" ,
250
251
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 ));
254
255
255
256
Map <String , ResourceMetadata > rdsResourceMetadataMap = new HashMap <>();
256
257
ResourceMetadata requestedRdsResourceMetadata = ResourceMetadata .newResourceMetadataRequested ();
257
- rdsResourceMetadataMap .put ("resource5 " ,
258
+ rdsResourceMetadataMap .put ("xdstp://authority5 " ,
258
259
ResourceMetadata .newResourceMetadataNacked (requestedRdsResourceMetadata , "24" ,
259
260
nanosLastUpdate , "nacked after request" , false ));
260
- rdsResourceMetadataMap .put ("resource6 " ,
261
+ rdsResourceMetadataMap .put ("xdstp://authority6 " ,
261
262
ResourceMetadata .newResourceMetadataDoesNotExist ());
262
263
263
264
Map <String , ResourceMetadata > cdsResourceMetadataMap = new HashMap <>();
264
- cdsResourceMetadataMap .put ("resource7 " , ResourceMetadata .newResourceMetadataUnknown ());
265
+ cdsResourceMetadataMap .put ("xdstp://authority7 " , ResourceMetadata .newResourceMetadataUnknown ());
265
266
266
267
metadataByType .put (listenerResource , ldsResourceMetadataMap );
267
268
metadataByType .put (routeConfigResource , rdsResourceMetadataMap );
@@ -281,24 +282,34 @@ public void reportCallbackMetrics_computeAndReportResourceCounts() {
281
282
282
283
// LDS resource requested
283
284
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 ());
285
287
// LDS resources acked
288
+ // authority = #old, for non-xdstp resource names
286
289
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 ());
288
292
// LDS resource nacked but cached
293
+ // "" for missing authority in the resource name
289
294
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 ());
291
297
292
298
// RDS resource nacked
293
299
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 ());
295
302
// RDS resource does not exist
296
303
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 ());
298
307
299
308
// CDS resource unknown
300
309
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 ());
302
313
verifyNoMoreInteractions (mockBatchRecorder );
303
314
}
304
315
0 commit comments