@@ -101,7 +101,6 @@ public void uncaughtException(Thread t, Throwable e) {
101101 private final XdsLogger logger ;
102102 private volatile boolean isShutdown ;
103103 private final MessagePrettyPrinter messagePrinter ;
104- private final String target ;
105104 private final XdsClientMetricReporter metricReporter ;
106105
107106 public XdsClientImpl (
@@ -113,7 +112,6 @@ public XdsClientImpl(
113112 TimeProvider timeProvider ,
114113 MessagePrettyPrinter messagePrinter ,
115114 Object securityConfig ,
116- String target ,
117115 XdsClientMetricReporter metricReporter ) {
118116 this .xdsTransportFactory = xdsTransportFactory ;
119117 this .bootstrapInfo = bootstrapInfo ;
@@ -123,7 +121,6 @@ public XdsClientImpl(
123121 this .timeProvider = timeProvider ;
124122 this .messagePrinter = messagePrinter ;
125123 this .securityConfig = securityConfig ;
126- this .target = target ;
127124 this .metricReporter = metricReporter ;
128125 logId = InternalLogId .allocate ("xds-client" , null );
129126 logger = XdsLogger .withLogId (logId );
@@ -148,7 +145,7 @@ private void handleStreamClosed(Status error, ServerInfo serverInfo) {
148145 syncContext .throwIfNotInThisSynchronizationContext ();
149146 cleanUpResourceTimers ();
150147 if (!error .isOk ()) {
151- metricReporter .reportServerFailure (1L , target , serverInfo .target ());
148+ metricReporter .reportServerFailure (1L , serverInfo .target ());
152149 for (Map <String , ResourceSubscriber <? extends ResourceUpdate >> subscriberMap :
153150 resourceSubscribers .values ()) {
154151 for (ResourceSubscriber <? extends ResourceUpdate > subscriber : subscriberMap .values ()) {
@@ -474,7 +471,7 @@ private <T extends ResourceUpdate> void handleResourceUpdate(
474471 Map <String , ParsedResource <T >> parsedResources = result .parsedResources ;
475472 Set <String > invalidResources = result .invalidResources ;
476473 metricReporter .reportResourceUpdates (Long .valueOf (parsedResources .size ()),
477- Long .valueOf (invalidResources .size ()), target ,
474+ Long .valueOf (invalidResources .size ()),
478475 args .getServerInfo ().target (), xdsResourceType .typeUrl ());
479476
480477 List <String > errors = result .errors ;
@@ -539,7 +536,7 @@ public SettableFuture<Void> reportServerConnections(ServerConnectionCallback cal
539536 syncContext .execute (() -> {
540537 serverCpClientMap .forEach ((serverInfo , controlPlaneClient ) ->
541538 callback .reportServerConnectionGauge (
542- controlPlaneClient .hasWorkingAdsStream (), target , serverInfo .target ()));
539+ controlPlaneClient .hasWorkingAdsStream (), serverInfo .target ()));
543540 future .set (null );
544541 });
545542 return future ;
@@ -549,9 +546,17 @@ public SettableFuture<Void> reportServerConnections(ServerConnectionCallback cal
549546 public SettableFuture <Void > reportResourceCounts (ResourceCallback callback ) {
550547 SettableFuture <Void > future = SettableFuture .create ();
551548 syncContext .execute (() -> {
552- Map <XdsResourceType <?>, Map <String , Long >> resourceCountsByType =
553- getResourceCountsByType ();
554- reportResourceCountsToCallback (callback , resourceCountsByType );
549+ for (XdsResourceType <? extends ResourceUpdate > resourceType : resourceSubscribers .keySet ()) {
550+ Map <String , Long > resourceCountsByState = new HashMap <>();
551+ for (ResourceSubscriber <? extends ResourceUpdate > subscriber :
552+ resourceSubscribers .get (resourceType ).values ()) {
553+ String cacheState = cacheStateFromResourceStatus (subscriber .metadata ,
554+ subscriber .data != null );
555+ resourceCountsByState .compute (cacheState , (k , v ) -> (v == null ) ? 1 : v + 1 );
556+ }
557+ resourceCountsByState .forEach ((cacheState , count ) ->
558+ callback .reportResourceCountGauge (count , cacheState , resourceType .typeUrl ()));
559+ }
555560 future .set (null );
556561 });
557562 return future ;
@@ -563,36 +568,6 @@ private String cacheStateFromResourceStatus(ResourceMetadata metadata, boolean i
563568 ? status + "_but_cached" : status ;
564569 }
565570
566- /** Calculates number of resources by ResourceType and ResourceSubscriber.metadata.status. */
567- Map <XdsResourceType <?>, Map <String , Long >> getResourceCountsByType () {
568- Map <XdsResourceType <?>, Map <String , Long >> resourceCountsByType = new HashMap <>();
569- for (XdsResourceType <? extends ResourceUpdate > resourceType : resourceSubscribers .keySet ()) {
570- Map <String , Long > resourceCountsByState = new HashMap <>();
571- for (ResourceSubscriber <? extends ResourceUpdate > subscriber :
572- resourceSubscribers .get (resourceType ).values ()) {
573- String cacheState = cacheStateFromResourceStatus (subscriber .metadata ,
574- subscriber .data != null );
575- resourceCountsByState .compute (cacheState , (k , v ) -> (v == null ) ? 1 : v + 1 );
576- }
577- resourceCountsByType .put (resourceType , resourceCountsByState );
578- }
579- return resourceCountsByType ;
580- }
581-
582- /** Reports resource counts using the provided ResourceCallback. */
583- void reportResourceCountsToCallback (ResourceCallback callback ,
584- Map <XdsResourceType <?>, Map <String , Long >> resourceCountsByType ) {
585- for (Map .Entry <XdsResourceType <?>, Map <String , Long >> entry :
586- resourceCountsByType .entrySet ()) {
587- XdsResourceType <?> resourceType = entry .getKey ();
588- Map <String , Long > resourceCountsByState = entry .getValue ();
589- // TODO(@dnvindhya): include the "authority" label once authority is available here.
590- resourceCountsByState .forEach ((cacheState , count ) ->
591- callback .reportResourceCountGauge (count , cacheState , resourceType .typeUrl (), target ));
592- }
593- }
594-
595-
596571 /** Tracks a single subscribed resource. */
597572 private final class ResourceSubscriber <T extends ResourceUpdate > {
598573 @ Nullable private final ServerInfo serverInfo ;
0 commit comments