Parcourir la source

AMBARI-10290. Expose avaialble host metrics across hostcomponents. Support HostComponent host metrics. (swagle)

Siddharth Wagle il y a 10 ans
Parent
commit
23faabc4a9
24 fichiers modifiés avec 2327 ajouts et 1296 suppressions
  1. 4 0
      ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/aggregators/AbstractTimelineAggregator.java
  2. 1 2
      ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/aggregators/Function.java
  3. 1 1
      ambari-metrics/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/ITClusterAggregator.java
  4. 5 0
      ambari-server/pom.xml
  5. 7 6
      ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractPropertyProvider.java
  6. 9 0
      ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PropertyInfo.java
  7. 4 2
      ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackDefinedPropertyProvider.java
  8. 1 1
      ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProvider.java
  9. 117 44
      ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/timeline/AMSPropertyProvider.java
  10. 10 0
      ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/PropertyHelper.java
  11. 10 1
      ambari-server/src/main/java/org/apache/ambari/server/state/stack/Metric.java
  12. 1 1
      ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-site.xml
  13. 319 110
      ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/metrics.json
  14. 319 110
      ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metrics.json
  15. 774 736
      ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/metrics.json
  16. 321 40
      ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/metrics.json
  17. 162 106
      ambari-server/src/main/resources/ganglia_properties.json
  18. 6 0
      ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackArtifactResourceProviderTest.java
  19. 8 8
      ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/RestMetricsPropertyProviderTest.java
  20. 2 2
      ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/ganglia/TestStreamProvider.java
  21. 101 5
      ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/timeline/AMSPropertyProviderTest.java
  22. 21 0
      ambari-server/src/test/resources/ams/single_host_component_metrics.json
  23. 122 120
      ambari-server/src/test/resources/ams/single_host_metric.json
  24. 2 1
      ambari-server/src/test/resources/stacks/OTHER/1.0/services/HDFS/metrics.json

+ 4 - 0
ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/aggregators/AbstractTimelineAggregator.java

@@ -37,6 +37,10 @@ import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.timeline.TimelineMetricConfiguration.AGGREGATOR_CHECKPOINT_DELAY;
 import static org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.timeline.TimelineMetricConfiguration.RESULTSET_FETCH_SIZE;
 
+/**
+ * Base class for all runnable aggregators. Provides common functions like
+ * check pointing and scheduling.
+ */
 public abstract class AbstractTimelineAggregator implements Runnable {
   protected final PhoenixHBaseAccessor hBaseAccessor;
   private final Log LOG;

+ 1 - 2
ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/aggregators/Function.java

@@ -31,8 +31,7 @@ public class Function {
   private ReadFunction readFunction = ReadFunction.VALUE;
   private PostProcessingFunction postProcessingFunction = null;
 
-  public Function(){
-
+  public Function() {
   }
 
   public Function(ReadFunction readFunction,

+ 1 - 1
ambari-metrics/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/ITClusterAggregator.java

@@ -419,7 +419,7 @@ public class ITClusterAggregator extends AbstractMiniHBaseClusterTest {
       currentHostAggregate = PhoenixHBaseAccessor.getMetricClusterAggregateFromResultSet(rs);
       recordCount++;
     }
-    Assert.assertEquals(4, recordCount);
+    assertEquals(4, recordCount);
     assertNotNull(currentMetric);
     assertEquals("cpu_user", currentMetric.getMetricName());
     assertEquals("app1", currentMetric.getAppId());

+ 5 - 0
ambari-server/pom.xml

@@ -1816,6 +1816,11 @@
       <artifactId>ambari-metrics-common</artifactId>
       <version>${project.version}</version>
     </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-annotations</artifactId>
+      <version>2.1.4</version>
+    </dependency>
   </dependencies>
 
   <pluginRepositories>

+ 7 - 6
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractPropertyProvider.java

@@ -21,9 +21,7 @@ package org.apache.ambari.server.controller.internal;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.text.DecimalFormat;
-import java.util.Collections;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
@@ -110,12 +108,12 @@ public abstract class AbstractPropertyProvider extends BaseProvider implements P
   protected Map<String, PropertyInfo> getPropertyInfoMap(String componentName, String propertyId) {
     Map<String, PropertyInfo> propertyInfoMap = new HashMap<String, PropertyInfo>();
 
-    getPropertyInfoMap(componentName, propertyId, propertyInfoMap);
+    updatePropertyInfoMap(componentName, propertyId, propertyInfoMap);
 
     return propertyInfoMap;
   }
 
-  protected void getPropertyInfoMap(String componentName, String propertyId, Map<String, PropertyInfo> propertyInfoMap) {
+  protected void updatePropertyInfoMap(String componentName, String propertyId, Map<String, PropertyInfo> propertyInfoMap) {
     Map<String, PropertyInfo> componentMetricMap = getComponentMetrics().get(componentName);
 
     propertyInfoMap.clear();
@@ -303,8 +301,11 @@ public abstract class AbstractPropertyProvider extends BaseProvider implements P
           regexGroup = regexGroup.replace("/", ".");
           key = key.replaceFirst(FIND_REGEX_IN_METRIC_REGEX, regexGroup);
         }
-        componentMetricMap.put(propertyId, new PropertyInfo(key,
-          propertyInfo.isTemporal(), propertyInfo.isPointInTime()));
+        PropertyInfo compPropertyInfo = new PropertyInfo(key,
+          propertyInfo.isTemporal(), propertyInfo.isPointInTime());
+        compPropertyInfo.setAmsHostMetric(propertyInfo.isAmsHostMetric());
+        compPropertyInfo.setAmsId(propertyInfo.getAmsId());
+        componentMetricMap.put(propertyId, compPropertyInfo);
       }
 
     }

+ 9 - 0
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PropertyInfo.java

@@ -26,6 +26,7 @@ public class PropertyInfo {
   private final boolean temporal;
   private final boolean pointInTime;
   private String amsId;
+  private boolean amsHostMetric;
 
   public PropertyInfo(String propertyId, boolean temporal, boolean pointInTime) {
     this.propertyId = propertyId;
@@ -52,4 +53,12 @@ public class PropertyInfo {
   public void setAmsId(String amsId) {
     this.amsId = amsId;
   }
+
+  public boolean isAmsHostMetric() {
+    return amsHostMetric;
+  }
+
+  public void setAmsHostMetric(boolean amsHostMetric) {
+    this.amsHostMetric = amsHostMetric;
+  }
 }

+ 4 - 2
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackDefinedPropertyProvider.java

@@ -248,8 +248,10 @@ public class StackDefinedPropertyProvider implements PropertyProvider {
 
     for (Entry<String, Metric> entry : def.getMetrics().entrySet()) {
       Metric metric = entry.getValue();
-      defs.put(entry.getKey(), new PropertyInfo(
-          metric.getName(), metric.isTemporal(), metric.isPointInTime()));
+      PropertyInfo propertyInfo = new PropertyInfo(metric.getName(),
+        metric.isTemporal(), metric.isPointInTime());
+      propertyInfo.setAmsHostMetric(metric.isAmsHostMetric());
+      defs.put(entry.getKey(), propertyInfo);
     }
 
     return defs;

+ 1 - 1
ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProvider.java

@@ -202,7 +202,7 @@ public abstract class GangliaPropertyProvider extends MetricsPropertyProvider {
             updateComponentMetricMap(componentMetricMap, id);
           }
 
-          getPropertyInfoMap(getComponentName(resource), id, propertyInfoMap);
+          updatePropertyInfoMap(getComponentName(resource), id, propertyInfoMap);
 
           for (Map.Entry<String, PropertyInfo> entry : propertyInfoMap.entrySet()) {
             String propertyId = entry.getKey();

+ 117 - 44
ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/timeline/AMSPropertyProvider.java

@@ -27,6 +27,7 @@ import org.apache.ambari.server.controller.spi.SystemException;
 import org.apache.ambari.server.controller.spi.TemporalInfo;
 import org.apache.ambari.server.controller.utilities.PropertyHelper;
 import org.apache.ambari.server.controller.utilities.StreamProvider;
+import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.metrics2.sink.timeline.TimelineMetric;
 import org.apache.hadoop.metrics2.sink.timeline.TimelineMetrics;
 import org.apache.http.client.utils.URIBuilder;
@@ -107,6 +108,9 @@ public abstract class AMSPropertyProvider extends MetricsPropertyProvider {
     private final Map<String, Set<String>> metrics = new HashMap<String, Set<String>>();
     private final URIBuilder uriBuilder;
     private final String dummyHostName = "__SummaryInfo__";
+    // Metrics with amsHostMetric = true
+    // Basically a host metric to be returned for a hostcomponent
+    private final Set<String> hostComponentHostMetrics = new HashSet<String>();
 
     private MetricsRequest(TemporalInfo temporalInfo, URIBuilder uriBuilder) {
       this.temporalInfo = temporalInfo;
@@ -135,6 +139,51 @@ public abstract class AMSPropertyProvider extends MetricsPropertyProvider {
       propertyIds.add(id);
     }
 
+    public void putHosComponentHostMetric(String metric) {
+      if (metric != null) {
+        hostComponentHostMetrics.add(metric);
+      }
+    }
+
+    private TimelineMetrics getTimelineMetricsForSpec(String spec) {
+      TimelineMetrics timelineMetrics = null;
+
+      LOG.debug("Metrics request url = " + spec);
+      BufferedReader reader = null;
+      try {
+        reader = new BufferedReader(new InputStreamReader(streamProvider.readFrom(spec)));
+        timelineMetrics = timelineObjectReader.readValue(reader);
+        LOG.debug("Timeline metrics response => " + timelineMetrics);
+
+      } catch (IOException io) {
+        String errorMsg = "Error getting timeline metrics.";
+        if (LOG.isDebugEnabled()) {
+          LOG.error(errorMsg, io);
+        } else {
+          if (io instanceof SocketTimeoutException) {
+            errorMsg += " Can not connect to collector, socket error.";
+          }
+          LOG.error(errorMsg);
+        }
+      } finally {
+        if (reader != null) {
+          try {
+            reader.close();
+          } catch (IOException e) {
+            if (LOG.isWarnEnabled()) {
+              if (LOG.isDebugEnabled()) {
+                LOG.warn("Unable to close http input stream : spec=" + spec, e);
+              } else {
+                LOG.warn("Unable to close http input stream : spec=" + spec);
+              }
+            }
+          }
+        }
+      }
+
+      return timelineMetrics;
+    }
+
     /**
      * Populate the associated resources by making a call to the Metrics
      * service.
@@ -145,7 +194,7 @@ public abstract class AMSPropertyProvider extends MetricsPropertyProvider {
     public Collection<Resource> populateResources() throws SystemException {
       // No open ended query support.
       if (temporalInfo != null && (temporalInfo.getStartTime() == null
-        || temporalInfo.getEndTime() == null)) {
+          || temporalInfo.getEndTime() == null)) {
         return Collections.emptySet();
       }
 
@@ -170,18 +219,28 @@ public abstract class AMSPropertyProvider extends MetricsPropertyProvider {
             return Collections.emptySet();
           }
 
-          String spec = getSpec(hostname, resource);
-
-          BufferedReader reader = null;
-          try {
-            LOG.debug("Metrics request url =" + spec);
-            reader = new BufferedReader(new InputStreamReader(streamProvider.readFrom(spec)));
-
-            TimelineMetrics timelineMetrics = timelineObjectReader.readValue(reader);
-            LOG.debug("Timeline metrics response => " + timelineMetrics);
+          TimelineMetrics timelineMetrics;
+          // Allow for multiple requests since host metrics for a
+          // hostcomponent need the HOST appId
+          if (hostComponentHostMetrics.isEmpty()) {
+            String spec = getSpec(hostname, resource);
+            timelineMetrics = getTimelineMetricsForSpec(spec);
+          } else {
+            Set<String> specs = getSpecsForHostComponentMetrics(hostname, resource);
+            timelineMetrics = new TimelineMetrics();
+            for (String spec : specs) {
+              if (!StringUtils.isEmpty(spec)) {
+                TimelineMetrics metrics = getTimelineMetricsForSpec(spec);
+                if (metrics != null) {
+                  timelineMetrics.getMetrics().addAll(metrics.getMetrics());
+                }
+              }
+            }
+          }
 
-            Set<String> patterns = createPatterns(metrics.keySet());
+          Set<String> patterns = createPatterns(metrics.keySet());
 
+          if (timelineMetrics != null) {
             for (TimelineMetric metric : timelineMetrics.getMetrics()) {
               if (metric.getMetricName() != null
                 && metric.getMetricValues() != null
@@ -189,31 +248,6 @@ public abstract class AMSPropertyProvider extends MetricsPropertyProvider {
                 populateResource(resource, metric);
               }
             }
-
-          } catch (IOException io) {
-            String errorMsg = "Error getting timeline metrics.";
-            if (LOG.isDebugEnabled()) {
-              LOG.error(errorMsg, io);
-            } else {
-              if (io instanceof SocketTimeoutException) {
-                errorMsg += " Can not connect to collector, socket error.";
-              }
-              LOG.error(errorMsg);
-            }
-          } finally {
-            if (reader != null) {
-              try {
-                reader.close();
-              } catch (IOException e) {
-                if (LOG.isWarnEnabled()) {
-                  if (LOG.isDebugEnabled()) {
-                    LOG.warn("Unable to close http input stream : spec=" + spec, e);
-                  } else {
-                    LOG.warn("Unable to close http input stream : spec=" + spec);
-                  }
-                }
-              }
-            }
           }
         }
       }
@@ -221,8 +255,33 @@ public abstract class AMSPropertyProvider extends MetricsPropertyProvider {
       return Collections.emptySet();
     }
 
-    private String getSpec(String hostname, Resource resource) {
-      String metricsParam = getSetString(processRegexps(metrics.keySet()), -1);
+    /**
+     * Return separate specs for : host component metrics and host component
+     * host metrics.
+     * @return @Set Urls
+     */
+    private Set<String> getSpecsForHostComponentMetrics(String hostname, Resource resource) {
+      Set<String> nonHostComponentMetrics = new HashSet<String>(metrics.keySet());
+      nonHostComponentMetrics.removeAll(hostComponentHostMetrics);
+
+      Set<String> specs = new HashSet<String>();
+      if (!hostComponentHostMetrics.isEmpty()) {
+        String hostComponentHostMetricParams = getSetString(processRegexps(hostComponentHostMetrics), -1);
+        setQueryParams(resource, hostComponentHostMetricParams, hostname, "HOST");
+        specs.add(uriBuilder.toString());
+      }
+
+      if (!nonHostComponentMetrics.isEmpty()) {
+        String nonHostComponentHostMetricParams = getSetString(processRegexps(nonHostComponentMetrics), -1);
+        setQueryParams(resource, nonHostComponentHostMetricParams, hostname, null);
+        specs.add(uriBuilder.toString());
+      }
+
+      return specs;
+    }
+
+    private void setQueryParams(Resource resource, String metricsParam,
+                                String hostname, String appId) {
       // Reuse uriBuilder
       uriBuilder.removeQuery();
 
@@ -234,12 +293,16 @@ public abstract class AMSPropertyProvider extends MetricsPropertyProvider {
         uriBuilder.setParameter("hostname", hostname);
       }
 
-      String componentName = getComponentName(resource);
-      if (componentName != null && !componentName.isEmpty()) {
-        if (TIMELINE_APPID_MAP.containsKey(componentName)) {
-          componentName = TIMELINE_APPID_MAP.get(componentName);
+      if (appId != null) {
+        uriBuilder.setParameter("appId", appId);
+      } else {
+        String componentName = getComponentName(resource);
+        if (componentName != null && !componentName.isEmpty()) {
+          if (TIMELINE_APPID_MAP.containsKey(componentName)) {
+            componentName = TIMELINE_APPID_MAP.get(componentName);
+          }
+          uriBuilder.setParameter("appId", componentName);
         }
-        uriBuilder.setParameter("appId", componentName);
       }
 
       if (temporalInfo != null) {
@@ -253,6 +316,12 @@ public abstract class AMSPropertyProvider extends MetricsPropertyProvider {
           uriBuilder.setParameter("endTime", String.valueOf(endTime));
         }
       }
+    }
+
+    private String getSpec(String hostname, Resource resource) {
+      String metricsParam = getSetString(processRegexps(metrics.keySet()), -1);
+
+      setQueryParams(resource, metricsParam, hostname, null);
 
       return uriBuilder.toString();
     }
@@ -423,7 +492,7 @@ public abstract class AMSPropertyProvider extends MetricsPropertyProvider {
           updateComponentMetricMap(componentMetricMap, id);
         }
 
-        getPropertyInfoMap(componentName, id, propertyInfoMap);
+        updatePropertyInfoMap(componentName, id, propertyInfoMap);
 
         for (Map.Entry<String, PropertyInfo> entry : propertyInfoMap.entrySet()) {
           String propertyId = entry.getKey();
@@ -443,6 +512,10 @@ public abstract class AMSPropertyProvider extends MetricsPropertyProvider {
             }
             metricsRequest.putResource(getHostName(resource), resource);
             metricsRequest.putPropertyId(propertyInfo.getPropertyId(), propertyId);
+            // If request is for a host metric we need to create multiple requests
+            if (propertyInfo.isAmsHostMetric()) {
+              metricsRequest.putHosComponentHostMetric(propertyInfo.getPropertyId());
+            }
           }
         }
       }

+ 10 - 0
ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/PropertyHelper.java

@@ -433,6 +433,7 @@ public class PropertyHelper {
             PropertyInfo propertyInfo = new PropertyInfo(metric.getMetric(),
               metric.isTemporal(), metric.isPointInTime());
             propertyInfo.setAmsId(metric.getAmsId());
+            propertyInfo.setAmsHostMetric(metric.isAmsHostMetric());
             metrics.put(property, propertyInfo);
           }
           componentMetrics.put(componentEntry.getKey(), metrics);
@@ -487,6 +488,7 @@ public class PropertyHelper {
     private boolean pointInTime;
     private boolean temporal;
     private String amsId;
+    private boolean amsHostMetric;
 
     private Metric() {
     }
@@ -528,5 +530,13 @@ public class PropertyHelper {
     public void setAmsId(String amsId) {
       this.amsId = amsId;
     }
+
+    public boolean isAmsHostMetric() {
+      return amsHostMetric;
+    }
+
+    public void setAmsHostMetric(boolean amsHostMetric) {
+      this.amsHostMetric = amsHostMetric;
+    }
   }
 }

+ 10 - 1
ambari-server/src/main/java/org/apache/ambari/server/state/stack/Metric.java

@@ -21,14 +21,17 @@ public class Metric {
   private String metric = null;
   private boolean pointInTime = false;
   private boolean temporal = false;
+  private boolean amsHostMetric = false;
 
   public Metric() {
   }
 
-  public Metric(String metric, boolean pointInTime, boolean temporal) {
+  public Metric(String metric, boolean pointInTime, boolean temporal,
+                boolean amsHostMetric) {
     this.metric = metric;
     this.pointInTime = pointInTime;
     this.temporal = temporal;
+    this.amsHostMetric = amsHostMetric;
   }
 
   public String getName() {
@@ -43,4 +46,10 @@ public class Metric {
     return temporal;
   }
 
+  /**
+   * Indicates whether this hostcomponent metric is a host metric for AMS.
+   */
+  public boolean isAmsHostMetric() {
+    return amsHostMetric;
+  }
 }

+ 1 - 1
ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-site.xml

@@ -250,7 +250,7 @@
   </property>
   <property>
     <name>timeline.metrics.service.cluster.aggregator.appIds</name>
-    <value>datanode,nodemanager,hbase,nimbus</value>
+    <value>datanode,nodemanager,hbase</value>
     <description>
       List of application ids to use for aggregating host level metrics for
       an application. Example: bytes_read across Yarn Nodemanagers.

+ 319 - 110
ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/metrics.json

@@ -5,6 +5,151 @@
         "type": "ganglia",
         "metrics": {
           "default": {
+            "metrics/cpu/cpu_idle":{
+              "metric":"cpu_idle",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/cpu/cpu_nice":{
+              "metric":"cpu_nice",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/cpu/cpu_system":{
+              "metric":"cpu_system",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/cpu/cpu_user":{
+              "metric":"cpu_user",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/cpu/cpu_wio":{
+              "metric":"cpu_wio",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/disk_free":{
+              "metric":"disk_free",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/disk_total":{
+              "metric":"disk_total",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/load/load_fifteen":{
+              "metric":"load_fifteen",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/load/load_five":{
+              "metric":"load_five",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/load/load_one":{
+              "metric":"load_one",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/mem_buffers":{
+              "metric":"mem_buffers",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/mem_cached":{
+              "metric":"mem_cached",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/mem_free":{
+              "metric":"mem_free",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/mem_shared":{
+              "metric":"mem_shared",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/mem_total":{
+              "metric":"mem_total",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/swap_free":{
+              "metric":"swap_free",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/swap_total":{
+              "metric":"swap_total",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/network/bytes_in":{
+              "metric":"bytes_in",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/network/bytes_out":{
+              "metric":"bytes_out",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/network/pkts_in":{
+              "metric":"pkts_in",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/network/pkts_out":{
+              "metric":"pkts_out",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/process/proc_run":{
+              "metric":"proc_run",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/process/proc_total":{
+              "metric":"proc_total",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/read_count":{
+              "metric":"read_count",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/write_count":{
+              "metric":"write_count",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/read_bytes":{
+              "metric":"read_bytes",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/write_bytes":{
+              "metric":"write_bytes",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/read_time":{
+              "metric":"read_time",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/write_time":{
+              "metric":"write_time",
+              "pointInTime":true,
+              "temporal":true
+            },
             "metrics/hbase/regionserver/compactionTime_avg_time": {
               "metric": "hbase.regionserver.compactionTime_avg_time",
               "pointInTime": true,
@@ -40,11 +185,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/load/load_one": {
-              "metric": "load_one",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/getClosestRowBefore_num_ops": {
               "metric": "rpc.rpc.getClosestRowBefore_num_ops",
               "pointInTime": true,
@@ -70,11 +210,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/memory/swap_total": {
-              "metric": "swap_total",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/stopMaster_num_ops": {
               "metric": "rpc.rpc.stopMaster_num_ops",
               "pointInTime": true,
@@ -90,11 +225,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/process/proc_total": {
-              "metric": "proc_total",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/disk/part_max_used": {
               "metric": "part_max_used",
               "pointInTime": true,
@@ -170,11 +300,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/network/bytes_in": {
-              "metric": "bytes_in",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/removeFromOnlineRegions_num_ops": {
               "metric": "rpc.rpc.removeFromOnlineRegions_num_ops",
               "pointInTime": true,
@@ -225,11 +350,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/network/pkts_in": {
-              "metric": "pkts_in",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/jvm/memHeapCommittedM": {
               "metric": "jvm.JvmMetrics.MemHeapCommittedM",
               "pointInTime": true,
@@ -355,16 +475,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/network/bytes_out": {
-              "metric": "bytes_out",
-              "pointInTime": true,
-              "temporal": true
-            },
-            "metrics/load/load_five": {
-              "metric": "load_five",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/hbase/regionserver/fsReadLatencyHistogram_75th_percentile": {
               "metric": "hbase.regionserver.fsReadLatencyHistogram_75th_percentile",
               "pointInTime": true,
@@ -740,11 +850,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/network/pkts_out": {
-              "metric": "pkts_out",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/close_num_ops": {
               "metric": "rpc.rpc.close_num_ops",
               "pointInTime": true,
@@ -940,11 +1045,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/memory/mem_buffers": {
-              "metric": "mem_buffers",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/disableTable_num_ops": {
               "metric": "rpc.rpc.disableTable_num_ops",
               "pointInTime": true,
@@ -980,11 +1080,6 @@
               "pointInTime": false,
               "temporal": true
             },
-            "metrics/load/load_fifteen": {
-              "metric": "load_fifteen",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/getBlockCacheColumnFamilySummaries/aboveOneSec/_num_ops": {
               "metric": "rpc.rpc.getBlockCacheColumnFamilySummaries.aboveOneSec._num_ops",
               "pointInTime": true,
@@ -1570,11 +1665,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/process/proc_run": {
-              "metric": "proc_run",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/getConfiguration_num_ops": {
               "metric": "rpc.rpc.getConfiguration_num_ops",
               "pointInTime": true,
@@ -2226,6 +2316,180 @@
         "type": "ganglia",
         "metrics": {
           "default": {
+            "metrics/cpu/cpu_idle":{
+              "metric":"cpu_idle",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/cpu/cpu_nice":{
+              "metric":"cpu_nice",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/cpu/cpu_system":{
+              "metric":"cpu_system",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/cpu/cpu_user":{
+              "metric":"cpu_user",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/cpu/cpu_wio":{
+              "metric":"cpu_wio",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/disk/disk_free":{
+              "metric":"disk_free",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/disk/disk_total":{
+              "metric":"disk_total",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/load/load_fifteen":{
+              "metric":"load_fifteen",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/load/load_five":{
+              "metric":"load_five",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/load/load_one":{
+              "metric":"load_one",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/memory/mem_buffers":{
+              "metric":"mem_buffers",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/memory/mem_cached":{
+              "metric":"mem_cached",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/memory/mem_free":{
+              "metric":"mem_free",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/memory/mem_shared":{
+              "metric":"mem_shared",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/memory/mem_total":{
+              "metric":"mem_total",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/memory/swap_free":{
+              "metric":"swap_free",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/memory/swap_total":{
+              "metric":"swap_total",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/network/bytes_in":{
+              "metric":"bytes_in",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/network/bytes_out":{
+              "metric":"bytes_out",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/network/pkts_in":{
+              "metric":"pkts_in",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/network/pkts_out":{
+              "metric":"pkts_out",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/process/proc_run":{
+              "metric":"proc_run",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/process/proc_total":{
+              "metric":"proc_total",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/disk/read_count":{
+              "metric":"read_count",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/disk/write_count":{
+              "metric":"write_count",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/disk/read_bytes":{
+              "metric":"read_bytes",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/disk/write_bytes":{
+              "metric":"write_bytes",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/disk/read_time":{
+              "metric":"read_time",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/disk/write_time":{
+              "metric":"write_time",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
             "metrics/hbase/regionserver/compactionTime_avg_time": {
               "metric": "hbase.regionserver.compactionTime_avg_time",
               "pointInTime": true,
@@ -2286,11 +2550,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/load/load_one": {
-              "metric": "load_one",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/getClosestRowBefore_num_ops": {
               "metric": "rpc.rpc.getClosestRowBefore_num_ops",
               "pointInTime": true,
@@ -2336,11 +2595,6 @@
               "pointInTime": false,
               "temporal": true
             },
-            "metrics/memory/swap_total": {
-              "metric": "swap_total",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/multi_avg_time": {
               "metric": "rpc.rpc.multi_avg_time",
               "pointInTime": true,
@@ -2366,11 +2620,6 @@
               "pointInTime": false,
               "temporal": true
             },
-            "metrics/process/proc_total": {
-              "metric": "proc_total",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/balance_avg_time": {
               "metric": "rpc.rpc.balance_avg_time",
               "pointInTime": true,
@@ -2501,11 +2750,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/network/bytes_in": {
-              "metric": "bytes_in",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/jvm/memNonHeapCommittedM": {
               "metric": "jvm.JvmMetrics.MemNonHeapCommittedM",
               "pointInTime": true,
@@ -2616,11 +2860,6 @@
               "pointInTime": false,
               "temporal": true
             },
-            "metrics/network/pkts_in": {
-              "metric": "pkts_in",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/isStopped/aboveOneSec/_num_ops": {
               "metric": "rpc.rpc.isStopped.aboveOneSec._num_ops",
               "pointInTime": true,
@@ -2826,11 +3065,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/network/bytes_out": {
-              "metric": "bytes_out",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/checkAndDelete/aboveOneSec/_avg_time": {
               "metric": "rpc.rpc.checkAndDelete.aboveOneSec._avg_time",
               "pointInTime": true,
@@ -2846,11 +3080,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/load/load_five": {
-              "metric": "load_five",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/hbase/regionserver/putRequestLatency_max": {
               "metric": "regionserver.Server.Mutate_max",
               "pointInTime": false,
@@ -3211,11 +3440,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/process/proc_run": {
-              "metric": "proc_run",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/hbase/regionserver/blockCacheSize": {
               "metric": "regionserver.Server.blockCacheSize",
               "pointInTime": false,
@@ -3391,11 +3615,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/network/pkts_out": {
-              "metric": "pkts_out",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/getFromOnlineRegions_num_ops": {
               "metric": "rpc.rpc.getFromOnlineRegions_num_ops",
               "pointInTime": true,
@@ -3756,11 +3975,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/memory/mem_buffers": {
-              "metric": "mem_buffers",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/shutdown_avg_time": {
               "metric": "rpc.rpc.shutdown_avg_time",
               "pointInTime": true,
@@ -3846,11 +4060,6 @@
               "pointInTime": false,
               "temporal": true
             },
-            "metrics/load/load_fifteen": {
-              "metric": "load_fifteen",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/jvm/logInfo": {
               "metric": "jvm.JvmMetrics.LogInfo",
               "pointInTime": true,

+ 319 - 110
ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metrics.json

@@ -2634,6 +2634,151 @@
         "type": "ganglia",
         "metrics": {
           "default": {
+            "metrics/cpu/cpu_idle":{
+              "metric":"cpu_idle",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/cpu/cpu_nice":{
+              "metric":"cpu_nice",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/cpu/cpu_system":{
+              "metric":"cpu_system",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/cpu/cpu_user":{
+              "metric":"cpu_user",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/cpu/cpu_wio":{
+              "metric":"cpu_wio",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/disk_free":{
+              "metric":"disk_free",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/disk_total":{
+              "metric":"disk_total",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/load/load_fifteen":{
+              "metric":"load_fifteen",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/load/load_five":{
+              "metric":"load_five",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/load/load_one":{
+              "metric":"load_one",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/mem_buffers":{
+              "metric":"mem_buffers",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/mem_cached":{
+              "metric":"mem_cached",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/mem_free":{
+              "metric":"mem_free",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/mem_shared":{
+              "metric":"mem_shared",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/mem_total":{
+              "metric":"mem_total",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/swap_free":{
+              "metric":"swap_free",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/swap_total":{
+              "metric":"swap_total",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/network/bytes_in":{
+              "metric":"bytes_in",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/network/bytes_out":{
+              "metric":"bytes_out",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/network/pkts_in":{
+              "metric":"pkts_in",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/network/pkts_out":{
+              "metric":"pkts_out",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/process/proc_run":{
+              "metric":"proc_run",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/process/proc_total":{
+              "metric":"proc_total",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/read_count":{
+              "metric":"read_count",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/write_count":{
+              "metric":"write_count",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/read_bytes":{
+              "metric":"read_bytes",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/write_bytes":{
+              "metric":"write_bytes",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/read_time":{
+              "metric":"read_time",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/write_time":{
+              "metric":"write_time",
+              "pointInTime":true,
+              "temporal":true
+            },
             "metrics/dfs/datanode/heartBeats_avg_time": {
               "metric": "dfs.datanode.HeartbeatsAvgTime",
               "pointInTime": true,
@@ -2684,11 +2829,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/load/load_one": {
-              "metric": "load_one",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/dfs/datanode/writes_from_remote_client": {
               "metric": "dfs.datanode.WritesFromRemoteClient",
               "pointInTime": true,
@@ -2734,11 +2874,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/memory/swap_total": {
-              "metric": "swap_total",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/multi_avg_time": {
               "metric": "rpc.rpc.multi_avg_time",
               "pointInTime": true,
@@ -2764,11 +2899,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/process/proc_total": {
-              "metric": "proc_total",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/splitRegion_num_ops": {
               "metric": "rpc.rpc.splitRegion_num_ops",
               "pointInTime": true,
@@ -2874,11 +3004,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/network/bytes_in": {
-              "metric": "bytes_in",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/jvm/memNonHeapCommittedM": {
               "metric": "jvm.JvmMetrics.MemNonHeapCommittedM",
               "pointInTime": true,
@@ -3004,11 +3129,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/network/pkts_in": {
-              "metric": "pkts_in",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/isStopped/aboveOneSec/_num_ops": {
               "metric": "rpc.rpc.isStopped.aboveOneSec._num_ops",
               "pointInTime": true,
@@ -3209,11 +3329,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/network/bytes_out": {
-              "metric": "bytes_out",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/checkAndDelete/aboveOneSec/_avg_time": {
               "metric": "rpc.rpc.checkAndDelete.aboveOneSec._avg_time",
               "pointInTime": true,
@@ -3224,11 +3339,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/load/load_five": {
-              "metric": "load_five",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/dfs/datanode/blocks_read": {
               "metric": "dfs.datanode.BlocksRead",
               "pointInTime": true,
@@ -3529,11 +3639,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/process/proc_run": {
-              "metric": "proc_run",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/close_avg_time": {
               "metric": "rpc.rpc.close_avg_time",
               "pointInTime": true,
@@ -3659,11 +3764,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/network/pkts_out": {
-              "metric": "pkts_out",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/getFromOnlineRegions_num_ops": {
               "metric": "rpc.rpc.getFromOnlineRegions_num_ops",
               "pointInTime": true,
@@ -4014,11 +4114,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/memory/mem_buffers": {
-              "metric": "mem_buffers",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/shutdown_avg_time": {
               "metric": "rpc.rpc.shutdown_avg_time",
               "pointInTime": true,
@@ -4079,11 +4174,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/load/load_fifteen": {
-              "metric": "load_fifteen",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/getHServerInfo_avg_time": {
               "metric": "rpc.rpc.getHServerInfo_avg_time",
               "pointInTime": true,
@@ -4208,6 +4298,180 @@
         "type": "ganglia",
         "metrics": {
           "default": {
+            "metrics/cpu/cpu_idle":{
+              "metric":"cpu_idle",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/cpu/cpu_nice":{
+              "metric":"cpu_nice",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/cpu/cpu_system":{
+              "metric":"cpu_system",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/cpu/cpu_user":{
+              "metric":"cpu_user",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/cpu/cpu_wio":{
+              "metric":"cpu_wio",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/disk/disk_free":{
+              "metric":"disk_free",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/disk/disk_total":{
+              "metric":"disk_total",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/load/load_fifteen":{
+              "metric":"load_fifteen",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/load/load_five":{
+              "metric":"load_five",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/load/load_one":{
+              "metric":"load_one",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/memory/mem_buffers":{
+              "metric":"mem_buffers",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/memory/mem_cached":{
+              "metric":"mem_cached",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/memory/mem_free":{
+              "metric":"mem_free",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/memory/mem_shared":{
+              "metric":"mem_shared",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/memory/mem_total":{
+              "metric":"mem_total",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/memory/swap_free":{
+              "metric":"swap_free",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/memory/swap_total":{
+              "metric":"swap_total",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/network/bytes_in":{
+              "metric":"bytes_in",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/network/bytes_out":{
+              "metric":"bytes_out",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/network/pkts_in":{
+              "metric":"pkts_in",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/network/pkts_out":{
+              "metric":"pkts_out",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/process/proc_run":{
+              "metric":"proc_run",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/process/proc_total":{
+              "metric":"proc_total",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/disk/read_count":{
+              "metric":"read_count",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/disk/write_count":{
+              "metric":"write_count",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/disk/read_bytes":{
+              "metric":"read_bytes",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/disk/write_bytes":{
+              "metric":"write_bytes",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/disk/read_time":{
+              "metric":"read_time",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/disk/write_time":{
+              "metric":"write_time",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
             "metrics/dfs/datanode/heartBeats_avg_time": {
               "metric": "dfs.datanode.HeartbeatsAvgTime",
               "pointInTime": true,
@@ -4253,11 +4517,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/load/load_one": {
-              "metric": "load_one",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/dfs/datanode/writes_from_remote_client": {
               "metric": "dfs.datanode.WritesFromRemoteClient",
               "pointInTime": true,
@@ -4298,11 +4557,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/memory/swap_total": {
-              "metric": "swap_total",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/multi_avg_time": {
               "metric": "rpc.rpc.multi_avg_time",
               "pointInTime": true,
@@ -4323,11 +4577,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/process/proc_total": {
-              "metric": "proc_total",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/balance_avg_time": {
               "metric": "rpc.rpc.balance_avg_time",
               "pointInTime": true,
@@ -4438,11 +4687,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/network/bytes_in": {
-              "metric": "bytes_in",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/jvm/memNonHeapCommittedM": {
               "metric": "jvm.JvmMetrics.MemNonHeapCommittedM",
               "pointInTime": false,
@@ -4553,11 +4797,6 @@
               "pointInTime": false,
               "temporal": true
             },
-            "metrics/network/pkts_in": {
-              "metric": "pkts_in",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/isStopped/aboveOneSec/_num_ops": {
               "metric": "rpc.rpc.isStopped.aboveOneSec._num_ops",
               "pointInTime": true,
@@ -4743,11 +4982,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/network/bytes_out": {
-              "metric": "bytes_out",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/checkAndDelete/aboveOneSec/_avg_time": {
               "metric": "rpc.rpc.checkAndDelete.aboveOneSec._avg_time",
               "pointInTime": true,
@@ -4758,11 +4992,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/load/load_five": {
-              "metric": "load_five",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/dfs/datanode/blocks_read": {
               "metric": "dfs.datanode.BlocksRead",
               "pointInTime": true,
@@ -5053,11 +5282,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/process/proc_run": {
-              "metric": "proc_run",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/close_avg_time": {
               "metric": "rpc.rpc.close_avg_time",
               "pointInTime": true,
@@ -5178,11 +5402,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/network/pkts_out": {
-              "metric": "pkts_out",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/getFromOnlineRegions_num_ops": {
               "metric": "rpc.rpc.getFromOnlineRegions_num_ops",
               "pointInTime": true,
@@ -5503,11 +5722,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/memory/mem_buffers": {
-              "metric": "mem_buffers",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/shutdown_avg_time": {
               "metric": "rpc.rpc.shutdown_avg_time",
               "pointInTime": true,
@@ -5568,11 +5782,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/load/load_fifteen": {
-              "metric": "load_fifteen",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/getHServerInfo_avg_time": {
               "metric": "rpc.rpc.getHServerInfo_avg_time",
               "pointInTime": true,

+ 774 - 736
ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/metrics.json

@@ -3,109 +3,111 @@
     "Component": [
       {
         "type": "org.apache.ambari.server.controller.metrics.RestMetricsPropertyProvider",
-        "properties" : {
+        "properties": {
           "default_port": "8745",
           "port_config_type": "storm-site",
           "port_property_name": "storm.port",
           "protocol": "http"
         },
-        "metrics": {"default":{
-          "metrics/api/cluster/summary/tasks.total":
-          {
-            "metric": "/api/cluster/summary##tasks.total",
-            "pointInTime": true,
-            "temporal": false
-          },
-          "metrics/api/cluster/summary/slots.total": {
-            "metric": "/api/cluster/summary##slots.total",
-            "pointInTime": true,
-            "temporal": false
-          },
-          "metrics/api/cluster/summary/slots.free": {
-            "metric": "/api/cluster/summary##slots.free",
-            "pointInTime": true,
-            "temporal": false
-          },
-          "metrics/api/cluster/summary/supervisors": {
-            "metric": "/api/cluster/summary##supervisors",
-            "pointInTime": true,
-            "temporal": false
-          },
-          "metrics/api/cluster/summary/executors.total": {
-            "metric": "/api/cluster/summary##executors.total",
-            "pointInTime": true,
-            "temporal": false
-          },
-          "metrics/api/cluster/summary/slots.used": {
-            "metric": "/api/cluster/summary##slots.used",
-            "pointInTime": true,
-            "temporal": false
-          },
-          "metrics/api/cluster/summary/topologies": {
-            "metric": "/api/cluster/summary##topologies",
-            "pointInTime": true,
-            "temporal": false
-          },
-          "metrics/api/cluster/summary/nimbus.uptime": {
-            "metric": "/api/cluster/summary##nimbus.uptime",
-            "pointInTime": true,
-            "temporal": false
+        "metrics": {
+          "default": {
+            "metrics/api/cluster/summary/tasks.total": {
+              "metric": "/api/cluster/summary##tasks.total",
+              "pointInTime": true,
+              "temporal": false
+            },
+            "metrics/api/cluster/summary/slots.total": {
+              "metric": "/api/cluster/summary##slots.total",
+              "pointInTime": true,
+              "temporal": false
+            },
+            "metrics/api/cluster/summary/slots.free": {
+              "metric": "/api/cluster/summary##slots.free",
+              "pointInTime": true,
+              "temporal": false
+            },
+            "metrics/api/cluster/summary/supervisors": {
+              "metric": "/api/cluster/summary##supervisors",
+              "pointInTime": true,
+              "temporal": false
+            },
+            "metrics/api/cluster/summary/executors.total": {
+              "metric": "/api/cluster/summary##executors.total",
+              "pointInTime": true,
+              "temporal": false
+            },
+            "metrics/api/cluster/summary/slots.used": {
+              "metric": "/api/cluster/summary##slots.used",
+              "pointInTime": true,
+              "temporal": false
+            },
+            "metrics/api/cluster/summary/topologies": {
+              "metric": "/api/cluster/summary##topologies",
+              "pointInTime": true,
+              "temporal": false
+            },
+            "metrics/api/cluster/summary/nimbus.uptime": {
+              "metric": "/api/cluster/summary##nimbus.uptime",
+              "pointInTime": true,
+              "temporal": false
+            }
           }
-        }}
+        }
       }
     ],
     "HostComponent": [
       {
         "type": "org.apache.ambari.server.controller.metrics.RestMetricsPropertyProvider",
-        "properties" : {
+        "properties": {
           "default_port": "8745",
           "port_config_type": "storm-site",
           "port_property_name": "storm.port",
           "protocol": "http"
         },
-        "metrics": {"default":{
-          "metrics/api/cluster/summary/tasks.total":
-          {
-            "metric": "/api/cluster/summary##tasks.total",
-            "pointInTime": true,
-            "temporal": false
-          },
-          "metrics/api/cluster/summary/slots.total": {
-            "metric": "/api/cluster/summary##slots.total",
-            "pointInTime": true,
-            "temporal": false
-          },
-          "metrics/api/cluster/summary/slots.free": {
-            "metric": "/api/cluster/summary##slots.free",
-            "pointInTime": true,
-            "temporal": false
-          },
-          "metrics/api/cluster/summary/supervisors": {
-            "metric": "/api/cluster/summary##supervisors",
-            "pointInTime": true,
-            "temporal": false
-          },
-          "metrics/api/cluster/summary/executors.total": {
-            "metric": "/api/cluster/summary##executors.total",
-            "pointInTime": true,
-            "temporal": false
-          },
-          "metrics/api/cluster/summary/slots.used": {
-            "metric": "/api/cluster/summary##slots.used",
-            "pointInTime": true,
-            "temporal": false
-          },
-          "metrics/api/cluster/summary/topologies": {
-            "metric": "/api/cluster/summary##topologies",
-            "pointInTime": true,
-            "temporal": false
-          },
-          "metrics/api/cluster/summary/nimbus.uptime": {
-            "metric": "/api/cluster/summary##nimbus.uptime",
-            "pointInTime": true,
-            "temporal": false
+        "metrics": {
+          "default": {
+            "metrics/api/cluster/summary/tasks.total": {
+              "metric": "/api/cluster/summary##tasks.total",
+              "pointInTime": true,
+              "temporal": false
+            },
+            "metrics/api/cluster/summary/slots.total": {
+              "metric": "/api/cluster/summary##slots.total",
+              "pointInTime": true,
+              "temporal": false
+            },
+            "metrics/api/cluster/summary/slots.free": {
+              "metric": "/api/cluster/summary##slots.free",
+              "pointInTime": true,
+              "temporal": false
+            },
+            "metrics/api/cluster/summary/supervisors": {
+              "metric": "/api/cluster/summary##supervisors",
+              "pointInTime": true,
+              "temporal": false
+            },
+            "metrics/api/cluster/summary/executors.total": {
+              "metric": "/api/cluster/summary##executors.total",
+              "pointInTime": true,
+              "temporal": false
+            },
+            "metrics/api/cluster/summary/slots.used": {
+              "metric": "/api/cluster/summary##slots.used",
+              "pointInTime": true,
+              "temporal": false
+            },
+            "metrics/api/cluster/summary/topologies": {
+              "metric": "/api/cluster/summary##topologies",
+              "pointInTime": true,
+              "temporal": false
+            },
+            "metrics/api/cluster/summary/nimbus.uptime": {
+              "metric": "/api/cluster/summary##nimbus.uptime",
+              "pointInTime": true,
+              "temporal": false
+            }
           }
-        }}
+        }
       }
     ]
   },
@@ -113,302 +115,320 @@
     "Component": [
       {
         "type": "ganglia",
-        "metrics": {"default":{
-          "metrics/boottime": {
-            "metric": "boottime",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/network/bytes_in": {
-            "metric": "bytes_in",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/network/bytes_out": {
-            "metric": "bytes_out",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/cpu/cpu_aidle": {
-            "metric": "cpu_aidle",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/load_fifteen": {
-            "metric": "load_fifteen",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/load_five": {
-            "metric": "load_five",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/load_one": {
-            "metric": "load_one",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/memory/mem_buffers": {
-            "metric": "mem_buffers",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/disk/part_max_used": {
-            "metric": "part_max_used",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/network/pkts_in": {
-            "metric": "pkts_in",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/network/pkts_out": {
-            "metric": "pkts_out",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/process/proc_run": {
-            "metric": "proc_run",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/process/proc_total": {
-            "metric": "proc_total",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/memory/swap_total": {
-            "metric": "swap_total",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/memory/heap/committed": {
-            "metric": "Nimbus.JVM.Memory.Heap.committed",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/memory/heap/init": {
-            "metric": "Nimbus.JVM.Memory.Heap.init",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/memory/heap/max": {
-            "metric": "Nimbus.JVM.Memory.Heap.max",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/memory/heap/used": {
-            "metric": "Nimbus.JVM.Memory.Heap.used",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/memory/nonheap/committed": {
-            "metric": "Nimbus.JVM.Memory.NonHeap.committed",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/memory/nonheap/init": {
-            "metric": "Nimbus.JVM.Memory.NonHeap.init",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/memory/nonheap/max": {
-            "metric": "Nimbus.JVM.Memory.NonHeap.max",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/memory/nonheap/used": {
-            "metric": "Nimbus.JVM.Memory.NonHeap.used",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/os/processcputime": {
-            "metric": "Nimbus.JVM.OS.ProcessCpuTime",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/threading/daemonthreadcount": {
-            "metric": "Nimbus.JVM.Threading.DaemonThreadCount",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/threading/threadcount": {
-            "metric": "Nimbus.JVM.Threading.ThreadCount",
-            "pointInTime": true,
-            "temporal": true
-          },
+        "metrics": {
+          "default": {
+            "metrics/boottime": {
+              "metric": "boottime",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/network/bytes_in": {
+              "metric": "bytes_in",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/network/bytes_out": {
+              "metric": "bytes_out",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/cpu/cpu_aidle": {
+              "metric": "cpu_aidle",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/load_fifteen": {
+              "metric": "load_fifteen",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/load_five": {
+              "metric": "load_five",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/load_one": {
+              "metric": "load_one",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/memory/mem_buffers": {
+              "metric": "mem_buffers",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/disk/part_max_used": {
+              "metric": "part_max_used",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/network/pkts_in": {
+              "metric": "pkts_in",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/network/pkts_out": {
+              "metric": "pkts_out",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/process/proc_run": {
+              "metric": "proc_run",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/process/proc_total": {
+              "metric": "proc_total",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/memory/swap_total": {
+              "metric": "swap_total",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/memory/heap/committed": {
+              "metric": "Nimbus.JVM.Memory.Heap.committed",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/memory/heap/init": {
+              "metric": "Nimbus.JVM.Memory.Heap.init",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/memory/heap/max": {
+              "metric": "Nimbus.JVM.Memory.Heap.max",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/memory/heap/used": {
+              "metric": "Nimbus.JVM.Memory.Heap.used",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/memory/nonheap/committed": {
+              "metric": "Nimbus.JVM.Memory.NonHeap.committed",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/memory/nonheap/init": {
+              "metric": "Nimbus.JVM.Memory.NonHeap.init",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/memory/nonheap/max": {
+              "metric": "Nimbus.JVM.Memory.NonHeap.max",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/memory/nonheap/used": {
+              "metric": "Nimbus.JVM.Memory.NonHeap.used",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/os/processcputime": {
+              "metric": "Nimbus.JVM.OS.ProcessCpuTime",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/threading/daemonthreadcount": {
+              "metric": "Nimbus.JVM.Threading.DaemonThreadCount",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/threading/threadcount": {
+              "metric": "Nimbus.JVM.Threading.ThreadCount",
+              "pointInTime": true,
+              "temporal": true
+            },
 
-          "metrics/storm/nimbus/freeslots": {
-            "metric": "Free Slots",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/supervisors": {
-            "metric": "Supervisors",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/topologies": {
-            "metric": "Topologies",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/totalexecutors": {
-            "metric": "Total Executors",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/totalslots": {
-            "metric": "Total Slots",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/totaltasks": {
-            "metric": "Total Tasks",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/usedslots": {
-            "metric": "Used Slots",
-            "pointInTime": true,
-            "temporal": true
+            "metrics/storm/nimbus/freeslots": {
+              "metric": "Free Slots",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/supervisors": {
+              "metric": "Supervisors",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/topologies": {
+              "metric": "Topologies",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/totalexecutors": {
+              "metric": "Total Executors",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/totalslots": {
+              "metric": "Total Slots",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/totaltasks": {
+              "metric": "Total Tasks",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/usedslots": {
+              "metric": "Used Slots",
+              "pointInTime": true,
+              "temporal": true
+            }
           }
-        }}
+        }
       }
     ],
     "HostComponent": [
       {
         "type": "ganglia",
-        "metrics": {"default":{
-          "metrics/boottime": {
-            "metric": "boottime",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/network/bytes_in": {
-            "metric": "bytes_in",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/network/bytes_out": {
-            "metric": "bytes_out",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/cpu/cpu_aidle": {
-            "metric": "cpu_aidle",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/load_fifteen": {
-            "metric": "load_fifteen",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/load_five": {
-            "metric": "load_five",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/load_one": {
-            "metric": "load_one",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/memory/mem_buffers": {
-            "metric": "mem_buffers",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/disk/part_max_used": {
-            "metric": "part_max_used",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/network/pkts_in": {
-            "metric": "pkts_in",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/network/pkts_out": {
-            "metric": "pkts_out",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/process/proc_run": {
-            "metric": "proc_run",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/process/proc_total": {
-            "metric": "proc_total",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/memory/swap_total": {
-            "metric": "swap_total",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/memory/heap/committed": {
-            "metric": "Nimbus.JVM.Memory.Heap.committed",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/memory/heap/init": {
-            "metric": "Nimbus.JVM.Memory.Heap.init",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/memory/heap/max": {
-            "metric": "Nimbus.JVM.Memory.Heap.max",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/memory/heap/used": {
-            "metric": "Nimbus.JVM.Memory.Heap.used",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/memory/nonheap/committed": {
-            "metric": "Nimbus.JVM.Memory.NonHeap.committed",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/memory/nonheap/init": {
-            "metric": "Nimbus.JVM.Memory.NonHeap.init",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/memory/nonheap/max": {
-            "metric": "Nimbus.JVM.Memory.NonHeap.max",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/memory/nonheap/used": {
-            "metric": "Nimbus.JVM.Memory.NonHeap.used",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/os/processcputime": {
-            "metric": "Nimbus.JVM.OS.ProcessCpuTime",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/threading/daemonthreadcount": {
-            "metric": "Nimbus.JVM.Threading.DaemonThreadCount",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/nimbus/jvm/threading/threadcount": {
-            "metric": "Nimbus.JVM.Threading.ThreadCount",
-            "pointInTime": true,
-            "temporal": true
-          }
+        "metrics": {
+          "default": {
+            "metrics/boottime": {
+              "metric": "boottime",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric": true
+            },
+            "metrics/network/bytes_in": {
+              "metric": "bytes_in",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric": true
+            },
+            "metrics/network/bytes_out": {
+              "metric": "bytes_out",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric": true
+            },
+            "metrics/cpu/cpu_aidle": {
+              "metric": "cpu_aidle",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric": true
+            },
+            "metrics/load_fifteen": {
+              "metric": "load_fifteen",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric": true
+            },
+            "metrics/load_five": {
+              "metric": "load_five",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric": true
+            },
+            "metrics/load_one": {
+              "metric": "load_one",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric": true
+            },
+            "metrics/memory/mem_buffers": {
+              "metric": "mem_buffers",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric": true
+            },
+            "metrics/disk/part_max_used": {
+              "metric": "part_max_used",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric": true
+            },
+            "metrics/network/pkts_in": {
+              "metric": "pkts_in",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric": true
+            },
+            "metrics/network/pkts_out": {
+              "metric": "pkts_out",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric": true
+            },
+            "metrics/process/proc_run": {
+              "metric": "proc_run",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric": true
+            },
+            "metrics/process/proc_total": {
+              "metric": "proc_total",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric": true
+            },
+            "metrics/memory/swap_total": {
+              "metric": "swap_total",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric": true
+            },
+            "metrics/storm/nimbus/jvm/memory/heap/committed": {
+              "metric": "Nimbus.JVM.Memory.Heap.committed",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/memory/heap/init": {
+              "metric": "Nimbus.JVM.Memory.Heap.init",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/memory/heap/max": {
+              "metric": "Nimbus.JVM.Memory.Heap.max",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/memory/heap/used": {
+              "metric": "Nimbus.JVM.Memory.Heap.used",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/memory/nonheap/committed": {
+              "metric": "Nimbus.JVM.Memory.NonHeap.committed",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/memory/nonheap/init": {
+              "metric": "Nimbus.JVM.Memory.NonHeap.init",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/memory/nonheap/max": {
+              "metric": "Nimbus.JVM.Memory.NonHeap.max",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/memory/nonheap/used": {
+              "metric": "Nimbus.JVM.Memory.NonHeap.used",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/os/processcputime": {
+              "metric": "Nimbus.JVM.OS.ProcessCpuTime",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/threading/daemonthreadcount": {
+              "metric": "Nimbus.JVM.Threading.DaemonThreadCount",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/nimbus/jvm/threading/threadcount": {
+              "metric": "Nimbus.JVM.Threading.ThreadCount",
+              "pointInTime": true,
+              "temporal": true
+            }
 
-        }}
+          }
+        }
       }
     ]
   },
@@ -416,375 +436,393 @@
     "Component": [
       {
         "type": "ganglia",
-        "metrics": {"default":{
-          "metrics/boottime": {
-            "metric": "boottime",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/network/bytes_in": {
-            "metric": "bytes_in",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/network/bytes_out": {
-            "metric": "bytes_out",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/cpu/cpu_aidle": {
-            "metric": "cpu_aidle",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/load_fifteen": {
-            "metric": "load_fifteen",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/load_five": {
-            "metric": "load_five",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/load_one": {
-            "metric": "load_one",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/memory/mem_buffers": {
-            "metric": "mem_buffers",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/disk/part_max_used": {
-            "metric": "part_max_used",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/network/pkts_in": {
-            "metric": "pkts_in",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/network/pkts_out": {
-            "metric": "pkts_out",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/process/proc_run": {
-            "metric": "proc_run",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/process/proc_total": {
-            "metric": "proc_total",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/memory/swap_total": {
-            "metric": "swap_total",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/memory/heap/committed": {
-            "metric": "Supervisor.JVM.Memory.Heap.committed",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/memory/heap/init": {
-            "metric": "Supervisor.JVM.Memory.Heap.init",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/memory/heap/max": {
-            "metric": "Supervisor.JVM.Memory.Heap.max",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/memory/heap/used": {
-            "metric": "Supervisor.JVM.Memory.Heap.used",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/memory/nonheap/committed": {
-            "metric": "Supervisor.JVM.Memory.NonHeap.committed",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/memory/nonheap/init": {
-            "metric": "Supervisor.JVM.Memory.NonHeap.init",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/memory/nonheap/max": {
-            "metric": "Supervisor.JVM.Memory.NonHeap.max",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/memory/nonheap/used": {
-            "metric": "Supervisor.JVM.Memory.NonHeap.used",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/os/processcputime": {
-            "metric": "Supervisor.JVM.OS.ProcessCpuTime",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/threading/daemonthreadcount": {
-            "metric": "Supervisor.JVM.Threading.DaemonThreadCount",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/threading/threadcount": {
-            "metric": "Supervisor.JVM.Threading.ThreadCount",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/memory/heap/committed": {
-            "metric": "Worker.(.+).JVM.Memory.Heap.committed",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/memory/heap/init": {
-            "metric": "Worker.(.+).JVM.Memory.Heap.init",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/memory/heap/max": {
-            "metric": "Worker.(.+).JVM.Memory.Heap.max",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/memory/heap/used": {
-            "metric": "Worker.(.+).JVM.Memory.Heap.used",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/memory/nonheap/committed": {
-            "metric": "Worker.(.+).JVM.Memory.NonHeap.committed",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/memory/nonheap/init": {
-            "metric": "Worker.(.+).JVM.Memory.NonHeap.init",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/memory/nonheap/max": {
-            "metric": "Worker.(.+).JVM.Memory.NonHeap.max",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/memory/nonheap/used": {
-            "metric": "Worker.(.+).JVM.Memory.NonHeap.used",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/os/processcputime": {
-            "metric": "Worker.(.+).JVM.OS.ProcessCpuTime",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/threading/daemonthreadcount": {
-            "metric": "Worker.(.+).JVM.Threading.DaemonThreadCount",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/threading/threadcount": {
-            "metric": "Worker.(.+).JVM.Threading.ThreadCount",
-            "pointInTime": true,
-            "temporal": true
+        "metrics": {
+          "default": {
+            "metrics/boottime": {
+              "metric": "boottime",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/network/bytes_in": {
+              "metric": "bytes_in",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/network/bytes_out": {
+              "metric": "bytes_out",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/cpu/cpu_aidle": {
+              "metric": "cpu_aidle",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/load_fifteen": {
+              "metric": "load_fifteen",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/load_five": {
+              "metric": "load_five",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/load_one": {
+              "metric": "load_one",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/memory/mem_buffers": {
+              "metric": "mem_buffers",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/disk/part_max_used": {
+              "metric": "part_max_used",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/network/pkts_in": {
+              "metric": "pkts_in",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/network/pkts_out": {
+              "metric": "pkts_out",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/process/proc_run": {
+              "metric": "proc_run",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/process/proc_total": {
+              "metric": "proc_total",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/memory/swap_total": {
+              "metric": "swap_total",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/memory/heap/committed": {
+              "metric": "Supervisor.JVM.Memory.Heap.committed",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/memory/heap/init": {
+              "metric": "Supervisor.JVM.Memory.Heap.init",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/memory/heap/max": {
+              "metric": "Supervisor.JVM.Memory.Heap.max",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/memory/heap/used": {
+              "metric": "Supervisor.JVM.Memory.Heap.used",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/memory/nonheap/committed": {
+              "metric": "Supervisor.JVM.Memory.NonHeap.committed",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/memory/nonheap/init": {
+              "metric": "Supervisor.JVM.Memory.NonHeap.init",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/memory/nonheap/max": {
+              "metric": "Supervisor.JVM.Memory.NonHeap.max",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/memory/nonheap/used": {
+              "metric": "Supervisor.JVM.Memory.NonHeap.used",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/os/processcputime": {
+              "metric": "Supervisor.JVM.OS.ProcessCpuTime",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/threading/daemonthreadcount": {
+              "metric": "Supervisor.JVM.Threading.DaemonThreadCount",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/threading/threadcount": {
+              "metric": "Supervisor.JVM.Threading.ThreadCount",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/memory/heap/committed": {
+              "metric": "Worker.(.+).JVM.Memory.Heap.committed",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/memory/heap/init": {
+              "metric": "Worker.(.+).JVM.Memory.Heap.init",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/memory/heap/max": {
+              "metric": "Worker.(.+).JVM.Memory.Heap.max",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/memory/heap/used": {
+              "metric": "Worker.(.+).JVM.Memory.Heap.used",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/memory/nonheap/committed": {
+              "metric": "Worker.(.+).JVM.Memory.NonHeap.committed",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/memory/nonheap/init": {
+              "metric": "Worker.(.+).JVM.Memory.NonHeap.init",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/memory/nonheap/max": {
+              "metric": "Worker.(.+).JVM.Memory.NonHeap.max",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/memory/nonheap/used": {
+              "metric": "Worker.(.+).JVM.Memory.NonHeap.used",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/os/processcputime": {
+              "metric": "Worker.(.+).JVM.OS.ProcessCpuTime",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/threading/daemonthreadcount": {
+              "metric": "Worker.(.+).JVM.Threading.DaemonThreadCount",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/threading/threadcount": {
+              "metric": "Worker.(.+).JVM.Threading.ThreadCount",
+              "pointInTime": true,
+              "temporal": true
+            }
           }
-        }}
+        }
       }
     ],
     "HostComponent": [
       {
         "type": "ganglia",
-        "metrics": {"default":{
-          "metrics/boottime": {
-            "metric": "boottime",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/network/bytes_in": {
-            "metric": "bytes_in",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/network/bytes_out": {
-            "metric": "bytes_out",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/cpu/cpu_aidle": {
-            "metric": "cpu_aidle",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/load_fifteen": {
-            "metric": "load_fifteen",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/load_five": {
-            "metric": "load_five",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/load_one": {
-            "metric": "load_one",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/memory/mem_buffers": {
-            "metric": "mem_buffers",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/disk/part_max_used": {
-            "metric": "part_max_used",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/network/pkts_in": {
-            "metric": "pkts_in",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/network/pkts_out": {
-            "metric": "pkts_out",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/process/proc_run": {
-            "metric": "proc_run",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/process/proc_total": {
-            "metric": "proc_total",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/memory/swap_total": {
-            "metric": "swap_total",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/memory/heap/committed": {
-            "metric": "Supervisor.JVM.Memory.Heap.committed",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/memory/heap/init": {
-            "metric": "Supervisor.JVM.Memory.Heap.init",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/memory/heap/max": {
-            "metric": "Supervisor.JVM.Memory.Heap.max",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/memory/heap/used": {
-            "metric": "Supervisor.JVM.Memory.Heap.used",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/memory/nonheap/committed": {
-            "metric": "Supervisor.JVM.Memory.NonHeap.committed",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/memory/nonheap/init": {
-            "metric": "Supervisor.JVM.Memory.NonHeap.init",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/memory/nonheap/max": {
-            "metric": "Supervisor.JVM.Memory.NonHeap.max",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/memory/nonheap/used": {
-            "metric": "Supervisor.JVM.Memory.NonHeap.used",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/os/processcputime": {
-            "metric": "Supervisor.JVM.OS.ProcessCpuTime",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/threading/daemonthreadcount": {
-            "metric": "Supervisor.JVM.Threading.DaemonThreadCount",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/supervisor/jvm/threading/threadcount": {
-            "metric": "Supervisor.JVM.Threading.ThreadCount",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/memory/heap/committed": {
-            "metric": "Worker.(.+).JVM.Memory.Heap.committed",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/memory/heap/init": {
-            "metric": "Worker.(.+).JVM.Memory.Heap.init",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/memory/heap/max": {
-            "metric": "Worker.(.+).JVM.Memory.Heap.max",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/memory/heap/used": {
-            "metric": "Worker.(.+).JVM.Memory.Heap.used",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/memory/nonheap/committed": {
-            "metric": "Worker.(.+).JVM.Memory.NonHeap.committed",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/memory/nonheap/init": {
-            "metric": "Worker.(.+).JVM.Memory.NonHeap.init",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/memory/nonheap/max": {
-            "metric": "Worker.(.+).JVM.Memory.NonHeap.max",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/memory/nonheap/used": {
-            "metric": "Worker.(.+).JVM.Memory.NonHeap.used",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/os/processcputime": {
-            "metric": "Worker.(.+).JVM.OS.ProcessCpuTime",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/threading/daemonthreadcount": {
-            "metric": "Worker.(.+).JVM.Threading.DaemonThreadCount",
-            "pointInTime": true,
-            "temporal": true
-          },
-          "metrics/storm/worker/$1/jvm/threading/threadcount": {
-            "metric": "Worker.(.+).JVM.Threading.ThreadCount",
-            "pointInTime": true,
-            "temporal": true
+        "metrics": {
+          "default": {
+            "metrics/boottime": {
+              "metric": "boottime",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric":true
+            },
+            "metrics/network/bytes_in": {
+              "metric": "bytes_in",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric":true
+            },
+            "metrics/network/bytes_out": {
+              "metric": "bytes_out",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric":true
+            },
+            "metrics/cpu/cpu_aidle": {
+              "metric": "cpu_aidle",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric":true
+            },
+            "metrics/load_fifteen": {
+              "metric": "load_fifteen",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric":true
+            },
+            "metrics/load_five": {
+              "metric": "load_five",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric":true
+            },
+            "metrics/load_one": {
+              "metric": "load_one",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric":true
+            },
+            "metrics/memory/mem_buffers": {
+              "metric": "mem_buffers",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric":true
+            },
+            "metrics/disk/part_max_used": {
+              "metric": "part_max_used",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric":true
+            },
+            "metrics/network/pkts_in": {
+              "metric": "pkts_in",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric":true
+            },
+            "metrics/network/pkts_out": {
+              "metric": "pkts_out",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric":true
+            },
+            "metrics/process/proc_run": {
+              "metric": "proc_run",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric":true
+            },
+            "metrics/process/proc_total": {
+              "metric": "proc_total",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric":true
+            },
+            "metrics/memory/swap_total": {
+              "metric": "swap_total",
+              "pointInTime": true,
+              "temporal": true,
+              "amsHostMetric":true
+            },
+            "metrics/storm/supervisor/jvm/memory/heap/committed": {
+              "metric": "Supervisor.JVM.Memory.Heap.committed",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/memory/heap/init": {
+              "metric": "Supervisor.JVM.Memory.Heap.init",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/memory/heap/max": {
+              "metric": "Supervisor.JVM.Memory.Heap.max",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/memory/heap/used": {
+              "metric": "Supervisor.JVM.Memory.Heap.used",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/memory/nonheap/committed": {
+              "metric": "Supervisor.JVM.Memory.NonHeap.committed",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/memory/nonheap/init": {
+              "metric": "Supervisor.JVM.Memory.NonHeap.init",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/memory/nonheap/max": {
+              "metric": "Supervisor.JVM.Memory.NonHeap.max",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/memory/nonheap/used": {
+              "metric": "Supervisor.JVM.Memory.NonHeap.used",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/os/processcputime": {
+              "metric": "Supervisor.JVM.OS.ProcessCpuTime",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/threading/daemonthreadcount": {
+              "metric": "Supervisor.JVM.Threading.DaemonThreadCount",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/supervisor/jvm/threading/threadcount": {
+              "metric": "Supervisor.JVM.Threading.ThreadCount",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/memory/heap/committed": {
+              "metric": "Worker.(.+).JVM.Memory.Heap.committed",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/memory/heap/init": {
+              "metric": "Worker.(.+).JVM.Memory.Heap.init",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/memory/heap/max": {
+              "metric": "Worker.(.+).JVM.Memory.Heap.max",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/memory/heap/used": {
+              "metric": "Worker.(.+).JVM.Memory.Heap.used",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/memory/nonheap/committed": {
+              "metric": "Worker.(.+).JVM.Memory.NonHeap.committed",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/memory/nonheap/init": {
+              "metric": "Worker.(.+).JVM.Memory.NonHeap.init",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/memory/nonheap/max": {
+              "metric": "Worker.(.+).JVM.Memory.NonHeap.max",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/memory/nonheap/used": {
+              "metric": "Worker.(.+).JVM.Memory.NonHeap.used",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/os/processcputime": {
+              "metric": "Worker.(.+).JVM.OS.ProcessCpuTime",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/threading/daemonthreadcount": {
+              "metric": "Worker.(.+).JVM.Threading.DaemonThreadCount",
+              "pointInTime": true,
+              "temporal": true
+            },
+            "metrics/storm/worker/$1/jvm/threading/threadcount": {
+              "metric": "Worker.(.+).JVM.Threading.ThreadCount",
+              "pointInTime": true,
+              "temporal": true
+            }
           }
-        }}
+        }
       }
     ]
   }

+ 321 - 40
ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/metrics.json

@@ -5,6 +5,153 @@
         "type": "ganglia",
         "metrics": {
           "default": {
+            "metrics/cpu/cpu_idle":{
+              "metric":"cpu_idle",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/cpu/cpu_nice":{
+              "metric":"cpu_nice",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/cpu/cpu_system":{
+              "metric":"cpu_system",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/cpu/cpu_user":{
+              "metric":"cpu_user",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/cpu/cpu_wio":{
+              "metric":"cpu_wio",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/disk_free":{
+              "metric":"disk_free",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/disk_total":{
+              "metric":"disk_total",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/load/load_fifteen":{
+              "metric":"load_fifteen",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/load/load_five":{
+              "metric":"load_five",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/load/load_one":{
+              "metric":"load_one",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/mem_buffers":{
+              "metric":"mem_buffers",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/mem_cached":{
+              "metric":"mem_cached",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/mem_free":{
+              "metric":"mem_free",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/mem_shared":{
+              "metric":"mem_shared",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/memory/mem_total":{
+              "metric":"mem_total",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/swap_free":{
+              "metric":"swap_free",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/memory/swap_total":{
+              "metric":"swap_total",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/network/bytes_in":{
+              "metric":"bytes_in",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/network/bytes_out":{
+              "metric":"bytes_out",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/network/pkts_in":{
+              "metric":"pkts_in",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/network/pkts_out":{
+              "metric":"pkts_out",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/process/proc_run":{
+              "metric":"proc_run",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/process/proc_total":{
+              "metric":"proc_total",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/read_count":{
+              "metric":"read_count",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/write_count":{
+              "metric":"write_count",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/read_bytes":{
+              "metric":"read_bytes",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/write_bytes":{
+              "metric":"write_bytes",
+              "pointInTime":true,
+              "temporal":true,
+              "amsHostMetric":true
+            },
+            "metrics/disk/read_time":{
+              "metric":"read_time",
+              "pointInTime":true,
+              "temporal":true
+            },
+            "metrics/disk/write_time":{
+              "metric":"write_time",
+              "pointInTime":true,
+              "temporal":true
+            },
             "metrics/jvm/memHeapCommittedM": {
               "metric": "jvm.JvmMetrics.MemHeapCommittedM",
               "pointInTime": false,
@@ -75,16 +222,6 @@
               "pointInTime": false,
               "temporal": true
             },
-            "metrics/process/proc_run": {
-              "metric": "proc_run",
-              "pointInTime": true,
-              "temporal": true
-            },
-            "metrics/memory/swap_total": {
-              "metric": "swap_total",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/rpc/ReceivedBytes": {
               "metric": "rpc.rpc.ReceivedBytes",
               "pointInTime": false,
@@ -100,11 +237,6 @@
               "pointInTime": false,
               "temporal": true
             },
-            "metrics/process/proc_total": {
-              "metric": "proc_total",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/yarn/AllocatedGB": {
               "metric": "yarn.NodeManagerMetrics.AllocatedGB",
               "pointInTime": true,
@@ -140,11 +272,6 @@
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/memory/mem_buffers": {
-              "metric": "mem_buffers",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/ugi/loginSuccess_num_ops": {
               "metric": "ugi.ugi.LoginSuccessNumOps",
               "pointInTime": false,
@@ -165,31 +292,16 @@
               "pointInTime": false,
               "temporal": true
             },
-            "metrics/network/bytes_out": {
-              "metric": "bytes_out",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/cpu/cpu_aidle": {
               "metric": "cpu_aidle",
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/network/bytes_in": {
-              "metric": "bytes_in",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/boottime": {
               "metric": "boottime",
               "pointInTime": true,
               "temporal": true
             },
-            "metrics/network/pkts_out": {
-              "metric": "pkts_out",
-              "pointInTime": true,
-              "temporal": true
-            },
             "metrics/jvm/memNonHeapCommittedM": {
               "metric": "jvm.JvmMetrics.MemNonHeapCommittedM",
               "pointInTime": false,
@@ -279,11 +391,6 @@
               "metric": "rpc.metrics.RpcAuthenticationFailures",
               "pointInTime": false,
               "temporal": true
-            },
-            "metrics/network/pkts_in": {
-              "metric": "pkts_in",
-              "pointInTime": true,
-              "temporal": true
             }
           }
         }
@@ -293,6 +400,180 @@
       {
         "type": "ganglia",
         "metrics": {
+          "metrics/cpu/cpu_idle":{
+            "metric":"cpu_idle",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/cpu/cpu_nice":{
+            "metric":"cpu_nice",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/cpu/cpu_system":{
+            "metric":"cpu_system",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/cpu/cpu_user":{
+            "metric":"cpu_user",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/cpu/cpu_wio":{
+            "metric":"cpu_wio",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/disk/disk_free":{
+            "metric":"disk_free",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/disk/disk_total":{
+            "metric":"disk_total",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/load/load_fifteen":{
+            "metric":"load_fifteen",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/load/load_five":{
+            "metric":"load_five",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/load/load_one":{
+            "metric":"load_one",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/memory/mem_buffers":{
+            "metric":"mem_buffers",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/memory/mem_cached":{
+            "metric":"mem_cached",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/memory/mem_free":{
+            "metric":"mem_free",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/memory/mem_shared":{
+            "metric":"mem_shared",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/memory/mem_total":{
+            "metric":"mem_total",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/memory/swap_free":{
+            "metric":"swap_free",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/memory/swap_total":{
+            "metric":"swap_total",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/network/bytes_in":{
+            "metric":"bytes_in",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/network/bytes_out":{
+            "metric":"bytes_out",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/network/pkts_in":{
+            "metric":"pkts_in",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/network/pkts_out":{
+            "metric":"pkts_out",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/process/proc_run":{
+            "metric":"proc_run",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/process/proc_total":{
+            "metric":"proc_total",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/disk/read_count":{
+            "metric":"read_count",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/disk/write_count":{
+            "metric":"write_count",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/disk/read_bytes":{
+            "metric":"read_bytes",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/disk/write_bytes":{
+            "metric":"write_bytes",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/disk/read_time":{
+            "metric":"read_time",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
+          "metrics/disk/write_time":{
+            "metric":"write_time",
+            "pointInTime":true,
+            "temporal":true,
+            "amsHostMetric":true
+          },
           "default": {
             "metrics/jvm/memHeapCommittedM": {
               "metric": "jvm.JvmMetrics.MemHeapCommittedM",

+ 162 - 106
ambari-server/src/main/resources/ganglia_properties.json

@@ -112,28 +112,28 @@
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/cpu/cpu_aidle":{
-        "metric":"cpu_aidle",
+      "metrics/cpu/cpu_num":{
+        "metric":"cpu_num",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/cpu/cpu_idle":{
-        "metric":"cpu_idle",
+      "metrics/cpu/cpu_speed":{
+        "metric":"cpu_speed",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/cpu/cpu_nice":{
-        "metric":"cpu_nice",
+      "metrics/cpu/cpu_aidle":{
+        "metric":"cpu_aidle",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/cpu/cpu_num":{
-        "metric":"cpu_num",
+      "metrics/cpu/cpu_idle":{
+        "metric":"cpu_idle",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/cpu/cpu_speed":{
-        "metric":"cpu_speed",
+      "metrics/cpu/cpu_nice":{
+        "metric":"cpu_nice",
         "pointInTime":true,
         "temporal":true
       },
@@ -162,173 +162,203 @@
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/jvm/gcCount":{
-        "metric":"jvm.metrics.gcCount",
+      "metrics/load/load_fifteen":{
+        "metric":"load_fifteen",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/jvm/gcTimeMillis":{
-        "metric":"jvm.metrics.gcTimeMillis",
+      "metrics/load/load_five":{
+        "metric":"load_five",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/jvm/logError":{
-        "metric":"jvm.metrics.logError",
+      "metrics/load/load_one":{
+        "metric":"load_one",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/jvm/logFatal":{
-        "metric":"jvm.metrics.logFatal",
+      "metrics/memory/mem_buffers":{
+        "metric":"mem_buffers",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/jvm/logInfo":{
-        "metric":"jvm.metrics.logInfo",
+      "metrics/memory/mem_cached":{
+        "metric":"mem_cached",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/jvm/logWarn":{
-        "metric":"jvm.metrics.logWarn",
+      "metrics/memory/mem_free":{
+        "metric":"mem_free",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/jvm/maxMemoryM":{
-        "metric":"jvm.metrics.maxMemoryM",
+      "metrics/memory/mem_shared":{
+        "metric":"mem_shared",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/jvm/memHeapCommittedM":{
-        "metric":"jvm.metrics.memHeapCommittedM",
+      "metrics/memory/mem_total":{
+        "metric":"mem_total",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/jvm/memHeapUsedM":{
-        "metric":"jvm.metrics.memHeapUsedM",
+      "metrics/memory/swap_free":{
+        "metric":"swap_free",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/jvm/memNonHeapCommittedM":{
-        "metric":"jvm.metrics.memNonHeapCommittedM",
+      "metrics/memory/swap_total":{
+        "metric":"swap_total",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/jvm/memNonHeapUsedM":{
-        "metric":"jvm.metrics.memNonHeapUsedM",
+      "metrics/network/bytes_in":{
+        "metric":"bytes_in",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/jvm/threadsBlocked":{
-        "metric":"jvm.metrics.threadsBlocked",
+      "metrics/network/bytes_out":{
+        "metric":"bytes_out",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/jvm/threadsNew":{
-        "metric":"jvm.metrics.threadsNew",
+      "metrics/network/pkts_in":{
+        "metric":"pkts_in",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/jvm/threadsRunnable":{
-        "metric":"jvm.metrics.threadsRunnable",
+      "metrics/network/pkts_out":{
+        "metric":"pkts_out",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/jvm/threadsTerminated":{
-        "metric":"jvm.metrics.threadsTerminated",
+      "metrics/part_max_used":{
+        "metric":"part_max_used",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/jvm/threadsTimedWaiting":{
-        "metric":"jvm.metrics.threadsTimedWaiting",
+      "metrics/process/proc_run":{
+        "metric":"proc_run",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/jvm/threadsWaiting":{
-        "metric":"jvm.metrics.threadsWaiting",
+      "metrics/process/proc_total":{
+        "metric":"proc_total",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/load/load_fifteen":{
-        "metric":"load_fifteen",
+      "metrics/disk/read_count":{
+        "metric":"read_count",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/load/load_five":{
-        "metric":"load_five",
+      "metrics/disk/write_count":{
+        "metric":"write_count",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/load/load_one":{
-        "metric":"load_one",
+      "metrics/disk/read_bytes":{
+        "metric":"read_bytes",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/memory/mem_buffers":{
-        "metric":"mem_buffers",
+      "metrics/disk/write_bytes":{
+        "metric":"write_bytes",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/memory/mem_cached":{
-        "metric":"mem_cached",
+      "metrics/disk/read_time":{
+        "metric":"read_time",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/memory/mem_free":{
-        "metric":"mem_free",
+      "metrics/disk/write_time":{
+        "metric":"write_time",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/memory/mem_shared":{
-        "metric":"mem_shared",
+      "metrics/jvm/gcCount":{
+        "metric":"jvm.metrics.gcCount",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/memory/mem_total":{
-        "metric":"mem_total",
+      "metrics/jvm/gcTimeMillis":{
+        "metric":"jvm.metrics.gcTimeMillis",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/memory/swap_free":{
-        "metric":"swap_free",
+      "metrics/jvm/logError":{
+        "metric":"jvm.metrics.logError",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/memory/swap_total":{
-        "metric":"swap_total",
+      "metrics/jvm/logFatal":{
+        "metric":"jvm.metrics.logFatal",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/network/bytes_in":{
-        "metric":"bytes_in",
+      "metrics/jvm/logInfo":{
+        "metric":"jvm.metrics.logInfo",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/network/bytes_out":{
-        "metric":"bytes_out",
+      "metrics/jvm/logWarn":{
+        "metric":"jvm.metrics.logWarn",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/network/pkts_in":{
-        "metric":"pkts_in",
+      "metrics/jvm/maxMemoryM":{
+        "metric":"jvm.metrics.maxMemoryM",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/network/pkts_out":{
-        "metric":"pkts_out",
+      "metrics/jvm/memHeapCommittedM":{
+        "metric":"jvm.metrics.memHeapCommittedM",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/part_max_used":{
-        "metric":"part_max_used",
+      "metrics/jvm/memHeapUsedM":{
+        "metric":"jvm.metrics.memHeapUsedM",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/process/proc_run":{
-        "metric":"proc_run",
+      "metrics/jvm/memNonHeapCommittedM":{
+        "metric":"jvm.metrics.memNonHeapCommittedM",
         "pointInTime":true,
         "temporal":true
       },
-      "metrics/process/proc_total":{
-        "metric":"proc_total",
+      "metrics/jvm/memNonHeapUsedM":{
+        "metric":"jvm.metrics.memNonHeapUsedM",
+        "pointInTime":true,
+        "temporal":true
+      },
+      "metrics/jvm/threadsBlocked":{
+        "metric":"jvm.metrics.threadsBlocked",
+        "pointInTime":true,
+        "temporal":true
+      },
+      "metrics/jvm/threadsNew":{
+        "metric":"jvm.metrics.threadsNew",
+        "pointInTime":true,
+        "temporal":true
+      },
+      "metrics/jvm/threadsRunnable":{
+        "metric":"jvm.metrics.threadsRunnable",
+        "pointInTime":true,
+        "temporal":true
+      },
+      "metrics/jvm/threadsTerminated":{
+        "metric":"jvm.metrics.threadsTerminated",
+        "pointInTime":true,
+        "temporal":true
+      },
+      "metrics/jvm/threadsTimedWaiting":{
+        "metric":"jvm.metrics.threadsTimedWaiting",
+        "pointInTime":true,
+        "temporal":true
+      },
+      "metrics/jvm/threadsWaiting":{
+        "metric":"jvm.metrics.threadsWaiting",
         "pointInTime":true,
         "temporal":true
       },
@@ -2426,7 +2456,7 @@
         "temporal":true
       },
       "metrics/dfs/datanode/blocks_replicated":{
-        "metric":"dfs.datanode.blocks_replicated",
+        "metric":"dfs.datanode.BlocksReplicated",
         "pointInTime":true,
         "temporal":true
       },
@@ -11830,47 +11860,56 @@
       "metrics/boottime":{
         "metric":"boottime",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/cpu/cpu_aidle":{
         "metric":"cpu_aidle",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/cpu/cpu_idle":{
         "metric":"cpu_idle",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/cpu/cpu_nice":{
         "metric":"cpu_nice",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/cpu/cpu_num":{
         "metric":"cpu_num",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/cpu/cpu_speed":{
         "metric":"cpu_speed",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/cpu/cpu_system":{
         "metric":"cpu_system",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/cpu/cpu_user":{
         "metric":"cpu_user",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/cpu/cpu_wio":{
         "metric":"cpu_wio",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/dfs/datanode/blockChecksumOp_avg_time":{
         "metric":"dfs.datanode.blockChecksumOp_avg_time",
@@ -11913,7 +11952,7 @@
         "temporal":true
       },
       "metrics/dfs/datanode/blocks_replicated":{
-        "metric":"dfs.datanode.blocks_replicated",
+        "metric":"dfs.datanode.BlocksReplicated",
         "pointInTime":true,
         "temporal":true
       },
@@ -12010,17 +12049,20 @@
       "metrics/disk/disk_free":{
         "metric":"disk_free",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/disk/disk_total":{
         "metric":"disk_total",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/disk/part_max_used":{
         "metric":"part_max_used",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/jvm/gcCount":{
         "metric":"jvm.metrics.gcCount",
@@ -12110,17 +12152,20 @@
       "metrics/load/load_fifteen":{
         "metric":"load_fifteen",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/load/load_five":{
         "metric":"load_five",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/load/load_one":{
         "metric":"load_one",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/memory/mem_buffers":{
         "metric":"mem_buffers",
@@ -12130,17 +12175,20 @@
       "metrics/memory/mem_cached":{
         "metric":"mem_cached",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/memory/mem_free":{
         "metric":"mem_free",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/memory/mem_shared":{
         "metric":"mem_shared",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/memory/mem_total":{
         "metric":"mem_total",
@@ -12150,42 +12198,50 @@
       "metrics/memory/swap_free":{
         "metric":"swap_free",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/memory/swap_total":{
         "metric":"swap_total",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/network/bytes_in":{
         "metric":"bytes_in",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/network/bytes_out":{
         "metric":"bytes_out",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/network/pkts_in":{
         "metric":"pkts_in",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/network/pkts_out":{
         "metric":"pkts_out",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/process/proc_run":{
         "metric":"proc_run",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/process/proc_total":{
         "metric":"proc_total",
         "pointInTime":true,
-        "temporal":true
+        "temporal":true,
+        "amsHostMetric":true
       },
       "metrics/rpc/NumOpenConnections":{
         "metric":"rpc.rpc.NumOpenConnections",

+ 6 - 0
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackArtifactResourceProviderTest.java

@@ -42,6 +42,7 @@ import org.apache.ambari.server.controller.utilities.PredicateBuilder;
 import org.apache.ambari.server.controller.utilities.PropertyHelper;
 import org.apache.ambari.server.orm.GuiceJpaInitializer;
 import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
+import org.apache.ambari.server.state.stack.Metric;
 import org.apache.ambari.server.state.stack.MetricDefinition;
 import org.apache.ambari.server.state.stack.WidgetLayout;
 import org.junit.After;
@@ -119,7 +120,12 @@ public class StackArtifactResourceProviderTest {
     Assert.assertEquals(1, ((ArrayList) descriptor.get("Component")).size());
     MetricDefinition md = (MetricDefinition) ((ArrayList) descriptor.get
       ("Component")).iterator().next();
+
+    Metric m1 = md.getMetrics().get("metrics/dfs/datanode/heartBeats_avg_time");
+    Metric m2 = md.getMetrics().get("metrics/rpc/closeRegion_num_ops");
     Assert.assertEquals(326, md.getMetrics().size());
+    Assert.assertTrue(m1.isAmsHostMetric());
+    Assert.assertFalse(m2.isAmsHostMetric());
 
     verify(managementController);
   }

+ 8 - 8
ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/RestMetricsPropertyProviderTest.java

@@ -72,14 +72,14 @@ public class RestMetricsPropertyProviderTest {
     metricsProperties.put("port_config_type", "storm-site");
     metricsProperties.put("port_property_name", "storm.port");
     metricsProperties.put("protocol", "http");
-    componentMetrics.put("metrics/api/cluster/summary/tasks.total", new Metric("/api/cluster/summary##tasks.total", false, false));
-    componentMetrics.put("metrics/api/cluster/summary/slots.total", new Metric("/api/cluster/summary##slots.total", false, false));
-    componentMetrics.put("metrics/api/cluster/summary/slots.free", new Metric("/api/cluster/summary##slots.free", false, false));
-    componentMetrics.put("metrics/api/cluster/summary/supervisors", new Metric("/api/cluster/summary##supervisors", false, false));
-    componentMetrics.put("metrics/api/cluster/summary/executors.total", new Metric("/api/cluster/summary##executors.total", false, false));
-    componentMetrics.put("metrics/api/cluster/summary/slots.used", new Metric("/api/cluster/summary##slots.used", false, false));
-    componentMetrics.put("metrics/api/cluster/summary/topologies", new Metric("/api/cluster/summary##topologies", false, false));
-    componentMetrics.put("metrics/api/cluster/summary/nimbus.uptime", new Metric("/api/cluster/summary##nimbus.uptime", false, false));
+    componentMetrics.put("metrics/api/cluster/summary/tasks.total", new Metric("/api/cluster/summary##tasks.total", false, false, false));
+    componentMetrics.put("metrics/api/cluster/summary/slots.total", new Metric("/api/cluster/summary##slots.total", false, false, false));
+    componentMetrics.put("metrics/api/cluster/summary/slots.free", new Metric("/api/cluster/summary##slots.free", false, false, false));
+    componentMetrics.put("metrics/api/cluster/summary/supervisors", new Metric("/api/cluster/summary##supervisors", false, false, false));
+    componentMetrics.put("metrics/api/cluster/summary/executors.total", new Metric("/api/cluster/summary##executors.total", false, false, false));
+    componentMetrics.put("metrics/api/cluster/summary/slots.used", new Metric("/api/cluster/summary##slots.used", false, false, false));
+    componentMetrics.put("metrics/api/cluster/summary/topologies", new Metric("/api/cluster/summary##topologies", false, false, false));
+    componentMetrics.put("metrics/api/cluster/summary/nimbus.uptime", new Metric("/api/cluster/summary##nimbus.uptime", false, false, false));
   }
 
 

+ 2 - 2
ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/ganglia/TestStreamProvider.java

@@ -24,8 +24,8 @@ import java.io.IOException;
 import java.io.InputStream;
 
 public class TestStreamProvider implements StreamProvider {
-
-  private final String fileName;
+  // Allow for filename to be set at runtime
+  protected String fileName;
   private String lastSpec;
   private boolean isLastSpecUpdated;
 

+ 101 - 5
ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/timeline/AMSPropertyProviderTest.java

@@ -33,6 +33,8 @@ import org.junit.Assert;
 import org.junit.Test;
 
 import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -46,6 +48,7 @@ import static org.mockito.Mockito.mock;
 public class AMSPropertyProviderTest {
   private static final String PROPERTY_ID1 = PropertyHelper.getPropertyId("metrics/cpu", "cpu_user");
   private static final String PROPERTY_ID2 = PropertyHelper.getPropertyId("metrics/memory", "mem_free");
+  private static final String PROPERTY_ID3 = PropertyHelper.getPropertyId("metrics/dfs/datanode", "blocks_replicated");
   private static final String CLUSTER_NAME_PROPERTY_ID = PropertyHelper.getPropertyId("HostRoles", "cluster_name");
   private static final String HOST_NAME_PROPERTY_ID = PropertyHelper.getPropertyId("HostRoles", "host_name");
   private static final String COMPONENT_NAME_PROPERTY_ID = PropertyHelper.getPropertyId("HostRoles", "component_name");
@@ -98,8 +101,7 @@ public class AMSPropertyProviderTest {
   }
 
   @Test
-  public void testPopulateResourcesForSingleHostMetricPointInTime() throws
-    Exception {
+  public void testPopulateResourcesForSingleHostMetricPointInTime() throws Exception {
 
     // given
     TestStreamProvider streamProvider = new TestStreamProvider(SINGLE_HOST_METRICS_FILE_PATH);
@@ -176,7 +178,6 @@ public class AMSPropertyProviderTest {
     uriBuilder2.addParameter("metricNames", "mem_free,cpu_user");
     uriBuilder2.addParameter("hostname", "h1");
     uriBuilder2.addParameter("appId", "HOST");
-    System.out.println(streamProvider.getLastSpec());
     Assert.assertTrue(uriBuilder.toString().equals(streamProvider.getLastSpec())
         || uriBuilder2.toString().equals(streamProvider.getLastSpec()));
     Double val1 = (Double) res.getPropertyValue(PROPERTY_ID1);
@@ -185,7 +186,6 @@ public class AMSPropertyProviderTest {
     Assert.assertEquals(2.47025664E8, val2, 0.1);
   }
 
-
   @Test
   public void testPopulateResourcesForMultipleHostMetrics() throws Exception {
     TestStreamProvider streamProvider = new TestStreamProvider(MULTIPLE_HOST_METRICS_FILE_PATH);
@@ -236,7 +236,6 @@ public class AMSPropertyProviderTest {
     Assert.assertEquals(86, val.length);
   }
 
-
   @Test
   public void testPopulateResourcesForRegexpMetrics() throws Exception {
     TestStreamProvider streamProvider = new TestStreamProvider(MULTIPLE_COMPONENT_REGEXP_METRICS_FILE_PATH);
@@ -369,6 +368,103 @@ public class AMSPropertyProviderTest {
     Assert.assertEquals(188, val.length);
   }
 
+  static class TestStreamProviderForHostComponentHostMetricsTest extends TestStreamProvider {
+    String hostMetricFilePath = FILE_PATH_PREFIX + "single_host_metric.json";
+    String hostComponentMetricFilePath = FILE_PATH_PREFIX + "single_host_component_metrics.json";
+    Set<String> specs = new HashSet<String>();
+
+    public TestStreamProviderForHostComponentHostMetricsTest(String fileName) {
+      super(fileName);
+    }
+
+    @Override
+    public InputStream readFrom(String spec) throws IOException {
+      if (spec.contains("HOST")) {
+        this.fileName = hostMetricFilePath;
+      } else {
+        this.fileName = hostComponentMetricFilePath;
+      }
+
+      specs.add(spec);
+
+      return super.readFrom(spec);
+    }
+
+    public Set<String> getAllSpecs() {
+      return specs;
+    }
+  }
+
+  @Test
+  public void testPopulateResourcesForHostComponentHostMetrics() throws Exception {
+    TestStreamProviderForHostComponentHostMetricsTest streamProvider =
+      new TestStreamProviderForHostComponentHostMetricsTest(null);
+    TestMetricHostProvider metricHostProvider = new TestMetricHostProvider();
+    ComponentSSLConfiguration sslConfiguration = mock(ComponentSSLConfiguration.class);
+
+    Map<String, Map<String, PropertyInfo>> propertyIds = PropertyHelper.getMetricPropertyIds(Resource.Type.HostComponent);
+    AMSPropertyProvider propertyProvider = new AMSHostComponentPropertyProvider(
+      propertyIds,
+      streamProvider,
+      sslConfiguration,
+      metricHostProvider,
+      CLUSTER_NAME_PROPERTY_ID,
+      HOST_NAME_PROPERTY_ID,
+      COMPONENT_NAME_PROPERTY_ID
+    );
+
+    Resource resource = new ResourceImpl(Resource.Type.Host);
+    resource.setProperty(HOST_NAME_PROPERTY_ID, "h1");
+    resource.setProperty(COMPONENT_NAME_PROPERTY_ID, "DATANODE");
+    Map<String, TemporalInfo> temporalInfoMap = new HashMap<String, TemporalInfo>();
+    temporalInfoMap.put(PROPERTY_ID1, new TemporalInfoImpl(1416445244701L, 1416445251802L, 1L));
+    temporalInfoMap.put(PROPERTY_ID3, new TemporalInfoImpl(1416445244701L, 1416445251802L, 1L));
+    Request request = PropertyHelper.getReadRequest(
+      new HashSet<String>() {{ add(PROPERTY_ID1); add(PROPERTY_ID3); }},
+      temporalInfoMap);
+    Set<Resource> resources =
+      propertyProvider.populateResources(Collections.singleton(resource), request, null);
+    Assert.assertEquals(1, resources.size());
+    Resource res = resources.iterator().next();
+    Map<String, Object> properties = PropertyHelper.getProperties(resources.iterator().next());
+    Assert.assertNotNull(properties);
+
+    Set<String> specs = streamProvider.getAllSpecs();
+    Assert.assertEquals(2, specs.size());
+    String hostMetricSpec = null;
+    String hostComponentMetricsSpec = null;
+    for (String spec : specs) {
+      if (spec.contains("HOST")) {
+        hostMetricSpec = spec;
+      } else {
+        hostComponentMetricsSpec = spec;
+      }
+    }
+    Assert.assertNotNull(hostMetricSpec);
+    Assert.assertNotNull(hostComponentMetricsSpec);
+    // Verify calls
+    URIBuilder uriBuilder1 = AMSPropertyProvider.getAMSUriBuilder("localhost", 8188);
+    uriBuilder1.addParameter("metricNames", "dfs.datanode.BlocksReplicated");
+    uriBuilder1.addParameter("hostname", "h1");
+    uriBuilder1.addParameter("appId", "DATANODE");
+    uriBuilder1.addParameter("startTime", "1416445244701");
+    uriBuilder1.addParameter("endTime", "1416445251802");
+    Assert.assertEquals(uriBuilder1.toString(), hostComponentMetricsSpec);
+
+    URIBuilder uriBuilder2 = AMSPropertyProvider.getAMSUriBuilder("localhost", 8188);
+    uriBuilder2.addParameter("metricNames", "cpu_user");
+    uriBuilder2.addParameter("hostname", "h1");
+    uriBuilder2.addParameter("appId", "HOST");
+    uriBuilder2.addParameter("startTime", "1416445244701");
+    uriBuilder2.addParameter("endTime", "1416445251802");
+    Assert.assertEquals(uriBuilder2.toString(), hostMetricSpec);
+
+    Number[][] val = (Number[][]) res.getPropertyValue(PROPERTY_ID1);
+    Assert.assertEquals(111, val.length);
+    val = (Number[][]) res.getPropertyValue(PROPERTY_ID3);
+    Assert.assertEquals(8, val.length);
+  }
+
   public static class TestMetricHostProvider implements MetricHostProvider {
 
     @Override

+ 21 - 0
ambari-server/src/test/resources/ams/single_host_component_metrics.json

@@ -0,0 +1,21 @@
+{
+  "metrics": [
+  {
+    "timestamp": 1416445244801,
+    "type": "Long",
+    "metricname": "dfs.datanode.BlocksReplicated",
+    "appid": "datanode",
+    "hostname": "c6402.ambari.apache.org",
+    "starttime": 1416445244801,
+    "metrics": {
+      "1416445244801": 0.0,
+      "1416445245801": 0.0,
+      "1416445246801": 0.0,
+      "1416445247801": 0.0,
+      "1416445248801": 0.0,
+      "1416445249801": 0.0,
+      "1416445250801": 0.0,
+      "1416445251801": 0.0
+    }
+  }
+]}

+ 122 - 120
ambari-server/src/test/resources/ams/single_host_metric.json

@@ -1,122 +1,124 @@
-{"metrics": [
-    {
-        "timestamp": 1416445244801,
-        "metricname": "cpu_user",
-        "appid": "HOST",
-        "starttime": 1416445244801,
-        "metrics": {
-          "1416445244801": 4006.085,
-          "1416445259801": 4006.29,
-          "1416445274801": 4006.6475,
-          "1416445289801": 4006.9474999999998,
-          "1416445304801": 4007.1025,
-          "1416445319801": 4007.21,
-          "1416445364801": 4007.8375,
-          "1416445379801": 4008.0425000000005,
-          "1416445394801": 4008.37,
-          "1416445409801": 4008.9474999999998,
-          "1416445424801": 4009.08,
-          "1416445439801": 4009.185,
-          "1416445484801": 4009.9525,
-          "1416445499801": 4010.19,
-          "1416445514801": 4010.8725,
-          "1416445529801": 4011.3424999999997,
-          "1416445544801": 4011.4975000000004,
-          "1416445559801": 4011.665,
-          "1416445604801": 4012.57,
-          "1416445619801": 4012.9325,
-          "1416445634801": 4013.3424999999997,
-          "1416445649801": 4013.9225,
-          "1416445664801": 4014.1949999999997,
-          "1416445679801": 4014.58,
-          "1416445724801": 4015.73,
-          "1416445739801": 4015.8599999999997,
-          "1416445964801": 4020.1075,
-          "1416445979801": 4020.2975,
-          "1416445994801": 4020.4624999999996,
-          "1416446009801": 4020.825,
-          "1416446024801": 4020.96,
-          "1416446084801": 4021.9725,
-          "1416446099801": 4022.2,
-          "1416446114801": 4022.3775,
-          "1416446129801": 4022.7275,
-          "1416446144801": 4022.98,
-          "1416446204801": 4023.9425,
-          "1416446219801": 4024.245,
-          "1416446234801": 4024.5275,
-          "1416446249801": 4024.925,
-          "1416446264801": 4025.03,
-          "1416446324801": 4026.2075,
-          "1416446339801": 4026.4125,
-          "1416446354801": 4026.5275,
-          "1416446369801": 4026.915,
-          "1416446384801": 4027.0550000000003,
-          "1416446444801": 4028.0975,
-          "1416446459801": 4028.2799999999997,
-          "1416446474801": 4028.4275,
-          "1416446489801": 4028.8375,
-          "1416446504801": 4028.98,
-          "1416446564801": 4030.005,
-          "1416446579801": 4030.1800000000003,
-          "1416446594801": 4030.365,
-          "1416446609801": 4030.745,
-          "1416446624801": 4030.895,
-          "1416446684801": 4031.7825,
-          "1416446699801": 4032.0175,
-          "1416446714801": 4032.2025,
-          "1416446729801": 4032.5525,
-          "1416446744801": 4032.82,
-          "1416446804801": 4033.7475,
-          "1416446819801": 4033.9700000000003,
-          "1416446834801": 4034.1425,
-          "1416446849801": 4034.4725,
-          "1416446864801": 4034.635,
-          "1416446924801": 4035.54,
-          "1416446939801": 4035.7175,
-          "1416446954801": 4035.885,
-          "1416446969801": 4036.255,
-          "1416446984801": 4036.435,
-          "1416447044801": 4037.8475,
-          "1416447059801": 4038.045,
-          "1416447074801": 4038.2025,
-          "1416447089801": 4038.7,
-          "1416447104801": 4038.855,
-          "1416447164801": 4039.7375,
-          "1416447179801": 4039.9025,
-          "1416447194801": 4040.08,
-          "1416447209801": 4040.42,
-          "1416447224801": 4040.59,
-          "1416447284801": 4041.51,
-          "1416447299801": 4041.85,
-          "1416447314801": 4042.6525,
-          "1416447329801": 4043.1025,
-          "1416447344801": 4043.29,
-          "1416447404801": 4044.265,
-          "1416447419801": 4044.52,
-          "1416447434801": 4044.705,
-          "1416447449801": 4045.09,
-          "1416447464801": 4045.325,
-          "1416447524801": 4046.2525,
-          "1416447539801": 4046.3975,
-          "1416447554801": 4046.55,
-          "1416447569801": 4046.865,
-          "1416447584801": 4047.0550000000003,
-          "1416447644801": 4049.255,
-          "1416448681363": 4105.1125,
-          "1416448696363": 4105.3625,
-          "1416448711363": 4105.6875,
-          "1416448726363": 4105.842500000001,
-          "1416448741363": 4105.9574999999995,
-          "1416448756363": 4106.07,
-          "1416448801363": 4106.74,
-          "1416448816363": 4106.9175,
-          "1416448831363": 4107.2,
-          "1416448846363": 4107.3525,
-          "1416448861363": 4107.545,
-          "1416448876363": 4107.65,
-          "1416448921363": 4109.2625,
-          "1416448936363": 4109.4,
-          "1416448936464": 4108.2
-        }
+{
+  "metrics": [
+  {
+    "timestamp": 1416445244801,
+    "metricname": "cpu_user",
+    "appid": "HOST",
+    "hostname": "c6402.ambari.apache.org",
+    "starttime": 1416445244801,
+    "metrics": {
+      "1416445244801": 4006.085,
+      "1416445259801": 4006.29,
+      "1416445274801": 4006.6475,
+      "1416445289801": 4006.9474999999998,
+      "1416445304801": 4007.1025,
+      "1416445319801": 4007.21,
+      "1416445364801": 4007.8375,
+      "1416445379801": 4008.0425000000005,
+      "1416445394801": 4008.37,
+      "1416445409801": 4008.9474999999998,
+      "1416445424801": 4009.08,
+      "1416445439801": 4009.185,
+      "1416445484801": 4009.9525,
+      "1416445499801": 4010.19,
+      "1416445514801": 4010.8725,
+      "1416445529801": 4011.3424999999997,
+      "1416445544801": 4011.4975000000004,
+      "1416445559801": 4011.665,
+      "1416445604801": 4012.57,
+      "1416445619801": 4012.9325,
+      "1416445634801": 4013.3424999999997,
+      "1416445649801": 4013.9225,
+      "1416445664801": 4014.1949999999997,
+      "1416445679801": 4014.58,
+      "1416445724801": 4015.73,
+      "1416445739801": 4015.8599999999997,
+      "1416445964801": 4020.1075,
+      "1416445979801": 4020.2975,
+      "1416445994801": 4020.4624999999996,
+      "1416446009801": 4020.825,
+      "1416446024801": 4020.96,
+      "1416446084801": 4021.9725,
+      "1416446099801": 4022.2,
+      "1416446114801": 4022.3775,
+      "1416446129801": 4022.7275,
+      "1416446144801": 4022.98,
+      "1416446204801": 4023.9425,
+      "1416446219801": 4024.245,
+      "1416446234801": 4024.5275,
+      "1416446249801": 4024.925,
+      "1416446264801": 4025.03,
+      "1416446324801": 4026.2075,
+      "1416446339801": 4026.4125,
+      "1416446354801": 4026.5275,
+      "1416446369801": 4026.915,
+      "1416446384801": 4027.0550000000003,
+      "1416446444801": 4028.0975,
+      "1416446459801": 4028.2799999999997,
+      "1416446474801": 4028.4275,
+      "1416446489801": 4028.8375,
+      "1416446504801": 4028.98,
+      "1416446564801": 4030.005,
+      "1416446579801": 4030.1800000000003,
+      "1416446594801": 4030.365,
+      "1416446609801": 4030.745,
+      "1416446624801": 4030.895,
+      "1416446684801": 4031.7825,
+      "1416446699801": 4032.0175,
+      "1416446714801": 4032.2025,
+      "1416446729801": 4032.5525,
+      "1416446744801": 4032.82,
+      "1416446804801": 4033.7475,
+      "1416446819801": 4033.9700000000003,
+      "1416446834801": 4034.1425,
+      "1416446849801": 4034.4725,
+      "1416446864801": 4034.635,
+      "1416446924801": 4035.54,
+      "1416446939801": 4035.7175,
+      "1416446954801": 4035.885,
+      "1416446969801": 4036.255,
+      "1416446984801": 4036.435,
+      "1416447044801": 4037.8475,
+      "1416447059801": 4038.045,
+      "1416447074801": 4038.2025,
+      "1416447089801": 4038.7,
+      "1416447104801": 4038.855,
+      "1416447164801": 4039.7375,
+      "1416447179801": 4039.9025,
+      "1416447194801": 4040.08,
+      "1416447209801": 4040.42,
+      "1416447224801": 4040.59,
+      "1416447284801": 4041.51,
+      "1416447299801": 4041.85,
+      "1416447314801": 4042.6525,
+      "1416447329801": 4043.1025,
+      "1416447344801": 4043.29,
+      "1416447404801": 4044.265,
+      "1416447419801": 4044.52,
+      "1416447434801": 4044.705,
+      "1416447449801": 4045.09,
+      "1416447464801": 4045.325,
+      "1416447524801": 4046.2525,
+      "1416447539801": 4046.3975,
+      "1416447554801": 4046.55,
+      "1416447569801": 4046.865,
+      "1416447584801": 4047.0550000000003,
+      "1416447644801": 4049.255,
+      "1416448681363": 4105.1125,
+      "1416448696363": 4105.3625,
+      "1416448711363": 4105.6875,
+      "1416448726363": 4105.842500000001,
+      "1416448741363": 4105.9574999999995,
+      "1416448756363": 4106.07,
+      "1416448801363": 4106.74,
+      "1416448816363": 4106.9175,
+      "1416448831363": 4107.2,
+      "1416448846363": 4107.3525,
+      "1416448861363": 4107.545,
+      "1416448876363": 4107.65,
+      "1416448921363": 4109.2625,
+      "1416448936363": 4109.4,
+      "1416448936464": 4108.2
     }
+  }
 ]}

+ 2 - 1
ambari-server/src/test/resources/stacks/OTHER/1.0/services/HDFS/metrics.json

@@ -2777,7 +2777,8 @@
             "metrics/dfs/datanode/heartBeats_avg_time": {
               "metric": "dfs.datanode.HeartbeatsAvgTime",
               "pointInTime": true,
-              "temporal": true
+              "temporal": true,
+              "amsHostMetric":true
             },
             "metrics/rpc/closeRegion_num_ops": {
               "metric": "rpc.rpc.closeRegion_num_ops",