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; }
@Override public void storeIncomingStatistics( String guiPath, String accountName, Long timeperiod, String value, ValueType valueType, UnitType unitType) { Double valueDouble = LiveStatisticsUtil.parseDouble(value); Double calculatedValue = LiveStatisticsUtil.calculateValueBasedOnUnitType(valueDouble, unitType); long hoursSince1970 = timeperiod / 240; int fifteenSecondPeriodsSinceStartOfHour = LiveStatisticsUtil.getFifteensecondTimeperiodsSinceStartOfHour(timeperiod * 15); Bucket myBucket = null; try { myBucket = riakClient.fetchBucket(accountName + ";" + hoursSince1970).execute(); BasicMetricHour storedMetricHour = myBucket.fetch("" + guiPath, BasicMetricHour.class).execute(); if (storedMetricHour == null) { storedMetricHour = new BasicMetricHour( guiPath, accountName, hoursSince1970, valueType.toString(), unitType.toString()); } Double prevValue = storedMetricHour.getMetrics()[fifteenSecondPeriodsSinceStartOfHour]; if (prevValue == null) { storedMetricHour.getMetrics()[fifteenSecondPeriodsSinceStartOfHour] = calculatedValue; } else { storedMetricHour.getMetrics()[fifteenSecondPeriodsSinceStartOfHour] = LiveStatisticsUtil.calculateValueBasedOnValueType( prevValue, calculatedValue, valueType); } myBucket.store("" + guiPath, storedMetricHour).execute(); } catch (RiakRetryFailedException e) { e .printStackTrace(); // To change body of catch statement use File | Settings | File // Templates. } }