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);
             }
           }
         }

Reply via email to