private ArrayList<Datapoint> convertMetricStatisticsToDataoints( Statistics statistics, Collection<MetricStatistics> metrics) { ArrayList<Datapoint> datapoints = Lists.newArrayList(); boolean wantsAverage = statistics.getMember().contains("Average"); boolean wantsSum = statistics.getMember().contains("Sum"); boolean wantsSampleCount = statistics.getMember().contains("SampleCount"); boolean wantsMaximum = statistics.getMember().contains("Maximum"); boolean wantsMinimum = statistics.getMember().contains("Minimum"); for (MetricStatistics metricStatistics : metrics) { Datapoint datapoint = new Datapoint(); datapoint.setTimestamp(metricStatistics.getTimestamp()); datapoint.setUnit(metricStatistics.getUnits().toString()); if (wantsSum) { datapoint.setSum(metricStatistics.getSampleSum()); } if (wantsSampleCount) { datapoint.setSampleCount(metricStatistics.getSampleSize()); } if (wantsMaximum) { datapoint.setMaximum(metricStatistics.getSampleMax()); } if (wantsMinimum) { datapoint.setMinimum(metricStatistics.getSampleMin()); } if (wantsAverage) { datapoint.setAverage( MetricUtils.average(metricStatistics.getSampleSum(), metricStatistics.getSampleSize())); } datapoints.add(datapoint); } return datapoints; }