Repository: ambari Updated Branches: refs/heads/trunk 004785dd8 -> 818dadfae
AMBARI-11260. Cluster aggregate metric graphs are showing averages, not sum. Fix for service metrics. (swagle) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/818dadfa Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/818dadfa Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/818dadfa Branch: refs/heads/trunk Commit: 818dadfae8761bf2507f6170fcd98b03b9a33c18 Parents: 004785d Author: Siddharth Wagle <[email protected]> Authored: Thu May 21 19:48:59 2015 -0700 Committer: Siddharth Wagle <[email protected]> Committed: Thu May 21 19:49:06 2015 -0700 ---------------------------------------------------------------------- .../server/api/services/AmbariMetaInfo.java | 37 +++++++++++--------- 1 file changed, 21 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/818dadfa/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java index f411aaa..a8afcf4 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java @@ -887,7 +887,7 @@ public class AmbariMetaInfo { Map<String, Map<String, List<MetricDefinition>>> metricMap) { if (!metricMap.isEmpty()) { - // For every Component + // For every Component for (Map<String, List<MetricDefinition>> componentMetricDef : metricMap.values()) { // For every Component / HostComponent category for (Map.Entry<String, List<MetricDefinition>> metricDefEntry : componentMetricDef.entrySet()) { @@ -895,26 +895,31 @@ public class AmbariMetaInfo { if (metricDefEntry.getKey().equals(Component.name())) { //For every metric definition for (MetricDefinition metricDefinition : metricDefEntry.getValue()) { - Map<String, Metric> newMetrics = new HashMap<String, Metric>(); // Metrics System metrics only if (metricDefinition.getType().equals("ganglia")) { - // For every function id - for (String identifierToAdd : AGGREGATE_FUNCTION_IDENTIFIERS) { - for (Map.Entry<String, Metric> metricEntry : metricDefinition.getMetrics().entrySet()) { - String newMetricKey = metricEntry.getKey() + identifierToAdd; - Metric currentMetric = metricEntry.getValue(); - Metric newMetric = new Metric( - currentMetric.getName() + identifierToAdd, - currentMetric.isPointInTime(), - currentMetric.isTemporal(), - currentMetric.isAmsHostMetric(), - currentMetric.getUnit() - ); - newMetrics.put(newMetricKey, newMetric); + // Create a new map for each category + for (Map<String, Metric> metricByCategory : metricDefinition.getMetricsByCategory().values()) { + Map<String, Metric> newMetrics = new HashMap<String, Metric>(); + + // For every function id + for (String identifierToAdd : AGGREGATE_FUNCTION_IDENTIFIERS) { + + for (Map.Entry<String, Metric> metricEntry : metricByCategory.entrySet()) { + String newMetricKey = metricEntry.getKey() + identifierToAdd; + Metric currentMetric = metricEntry.getValue(); + Metric newMetric = new Metric( + currentMetric.getName() + identifierToAdd, + currentMetric.isPointInTime(), + currentMetric.isTemporal(), + currentMetric.isAmsHostMetric(), + currentMetric.getUnit() + ); + newMetrics.put(newMetricKey, newMetric); + } } + metricByCategory.putAll(newMetrics); } } - metricDefinition.getMetrics().putAll(newMetrics); } } }
