private BasicMetricHour getMetricHour(String accountName, String guiPath, long hoursSince1970) {
    // logger.info("getting Metric Hour for account: " + accountName + " guiPath: " + guiPath + "
    // ts: " + hoursSince1970);
    BasicMetricHour metricHour = null;

    Bucket mhBucket = null;
    try {
      mhBucket = riakClient.fetchBucket(accountName + ";" + hoursSince1970).execute();
      metricHour = mhBucket.fetch("" + guiPath, BasicMetricHour.class).execute();
      logger.info("finding: " + accountName + ";" + hoursSince1970 + "/" + guiPath);
      if (metricHour != null) {
        metricHourCache.put(
            metricHour.getAccountName()
                + ";"
                + metricHour.getGuiPath()
                + ";"
                + metricHour.getHoursSince1970(),
            metricHour);
      }
    } catch (RiakRetryFailedException rrfe) {
      rrfe.printStackTrace();
    }

    return metricHour;
  }
  private List<LiveStatistics> createLivestatisticsFromMetricHour(
      BasicMetricHour metricHour,
      Integer minTimeperiodWithinTheHour,
      Integer maxTimeperiodWithinTheHour,
      Long hoursSince1970) {
    List<LiveStatistics> retList = new ArrayList<LiveStatistics>();

    if (maxTimeperiodWithinTheHour == null) {
      maxTimeperiodWithinTheHour = 239;
    }

    for (int index = minTimeperiodWithinTheHour; index <= maxTimeperiodWithinTheHour; index++) {
      Long timeperiod = (hoursSince1970 * 240) + index;

      // logger.info("Creating LiveStats for: " + metricHour.getId() + " with value: " +
      // metricHour.getValueAt(index));
      retList.add(
          new BasicLiveStatistics(
              metricHour.getGuiPath(),
              metricHour.getAccountName(),
              timeperiod,
              metricHour.getMetrics()[index],
              metricHour.getValueType(),
              metricHour.getUnitType()));
    }

    return retList;
  }