private Map<InetSocketAddress, StatsResult> getStats0(InetSocketAddress target, String item)
     throws InterruptedException {
   Set<String> groups = remotingClient.getGroupSet();
   if (groups == null || groups.size() <= 1) {
     return Collections.emptyMap();
   }
   Map<InetSocketAddress, StatsResult> rt = new HashMap<InetSocketAddress, StatsResult>();
   try {
     for (String group : groups) {
       if (!group.equals(Constants.DEFAULT_GROUP)) {
         URI uri = new URI(group);
         InetSocketAddress sockAddr = new InetSocketAddress(uri.getHost(), uri.getPort());
         if (target == null || target.equals(sockAddr)) {
           BooleanCommand resp =
               (BooleanCommand)
                   remotingClient.invokeToGroup(
                       group,
                       new StatsCommand(OpaqueGenerator.getNextOpaque(), item),
                       STATS_OPTIMEOUT,
                       TimeUnit.MILLISECONDS);
           if (resp.getResponseStatus() == ResponseStatus.NO_ERROR) {
             String body = resp.getErrorMsg();
             if (body != null) {
               parseStatsValues(sockAddr, rt, group, body);
             }
           }
         }
       }
     }
     return rt;
   } catch (InterruptedException e) {
     throw e;
   } catch (Exception e) {
     throw new IllegalStateException("Get statistics from brokers failed", e);
   }
 }