code: private void printWorkerInfo(List<WorkerInfo> workerInfoList) {
      mIndentationLevel = 0;
      if (mCapacityTierInfoMap.size() == 0) {
        return;
      } else if (mCapacityTierInfoMap.size() == 1) {
        // Do not print Total value when only one tier exists
        printShortWorkerInfo(workerInfoList);
        return;
      }
      Set<String> tiers = mCapacityTierInfoMap.keySet();
      String tiersInfo = String.format(Strings.repeat("%-14s", tiers.size()), tiers.toArray());
      String longInfoFormat = getInfoFormat(workerInfoList, false);
      print(String.format("%n" + longInfoFormat,
          "Worker Name", "Last Heartbeat", "Storage", "Total", tiersInfo));
  
      for (WorkerInfo info : workerInfoList) {
        String workerName = info.getAddress().getHost();
  
        long usedBytes = info.getUsedBytes();
        long capacityBytes = info.getCapacityBytes();
  
        String usedPercentageInfo = "";
        if (capacityBytes != 0) {
          int usedPercentage = (int) (100L * usedBytes / capacityBytes);
          usedPercentageInfo = String.format(" (%s%%)", usedPercentage);
        }
  
        String capacityTierInfo = getWorkerFormattedTierValues(mCapacityTierInfoMap, workerName);
        String usedTierInfo = getWorkerFormattedTierValues(mUsedTierInfoMap, workerName);
  
        print(String.format(longInfoFormat, workerName, info.getLastContactSec(), "capacity",
            FormatUtils.getSizeFromBytes(capacityBytes), capacityTierInfo));
        print(String.format(longInfoFormat, "", "", "used",
            FormatUtils.getSizeFromBytes(usedBytes) + usedPercentageInfo, usedTierInfo));
      }
    }
docs: Prints worker capacity information.
  
  @param workerInfoList the worker info list to get info from