コード例 #1
0
  /**
   * Returns percent/node combinations for the last month. This is used to get the last months top
   * 20 offenders
   *
   * @return a {@link java.util.TreeMap} object.
   */
  public Map<Double, List<String>> getPercentNode() {
    int days = m_daysInLastMonth;
    long endTime = m_lastMonthEndTime;
    Calendar cal = new GregorianCalendar();
    cal.setTimeInMillis(endTime);
    cal.add(Calendar.DATE, -1 * days);
    long rollingWindow = endTime - cal.getTime().getTime();
    long startTime = cal.getTime().getTime();
    LOG.debug("getPercentNode: Start time {}", new java.util.Date(startTime));
    LOG.debug("getPercentNode: End time {}", new java.util.Date(endTime));
    TreeMap<Double, List<String>> percentNode = new TreeMap<Double, List<String>>();

    for (Node node : m_nodes) {
      if (node != null) {
        double percent = node.getPercentAvail(endTime, rollingWindow);
        String nodeName = node.getName();
        LOG.debug("Node {} {} %", nodeName, percent);
        if (percent < 100.0) {
          List<String> nodeNames = percentNode.get(new Double(percent));
          if (nodeNames == null) {
            nodeNames = new ArrayList<String>();
          }
          nodeNames.add(nodeName);
          percentNode.put(new Double(percent), nodeNames);
        }
      }
    }
    LOG.debug("Percent node {}", percentNode);
    return percentNode;
  }