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


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/23faabc4
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/23faabc4
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/23faabc4

Branch: refs/heads/trunk
Commit: 23faabc4a9bcb6908314a4c5679b1d4045de8f53
Parents: b93452e
Author: Siddharth Wagle <[email protected]>
Authored: Thu Apr 2 14:33:29 2015 -0700
Committer: Siddharth Wagle <[email protected]>
Committed: Thu Apr 2 14:55:29 2015 -0700

----------------------------------------------------------------------
 .../aggregators/AbstractTimelineAggregator.java |    4 +
 .../metrics/timeline/aggregators/Function.java  |    3 +-
 .../metrics/timeline/ITClusterAggregator.java   |    2 +-
 ambari-server/pom.xml                           |    5 +
 .../internal/AbstractPropertyProvider.java      |   13 +-
 .../controller/internal/PropertyInfo.java       |    9 +
 .../internal/StackDefinedPropertyProvider.java  |    6 +-
 .../ganglia/GangliaPropertyProvider.java        |    2 +-
 .../metrics/timeline/AMSPropertyProvider.java   |  161 +-
 .../controller/utilities/PropertyHelper.java    |   10 +
 .../ambari/server/state/stack/Metric.java       |   11 +-
 .../0.1.0/configuration/ams-site.xml            |    2 +-
 .../HBASE/0.96.0.2.0/metrics.json               |  429 +++--
 .../common-services/HDFS/2.1.0.2.0/metrics.json |  429 +++--
 .../STORM/0.9.1.2.1/metrics.json                | 1510 +++++++++---------
 .../common-services/YARN/2.1.0.2.0/metrics.json |  361 ++++-
 .../src/main/resources/ganglia_properties.json  |  268 ++--
 .../StackArtifactResourceProviderTest.java      |    6 +
 .../RestMetricsPropertyProviderTest.java        |   16 +-
 .../metrics/ganglia/TestStreamProvider.java     |    4 +-
 .../timeline/AMSPropertyProviderTest.java       |  106 +-
 .../ams/single_host_component_metrics.json      |   21 +
 .../test/resources/ams/single_host_metric.json  |  242 +--
 .../stacks/OTHER/1.0/services/HDFS/metrics.json |    3 +-
 24 files changed, 2327 insertions(+), 1296 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/23faabc4/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/aggregators/AbstractTimelineAggregator.java
----------------------------------------------------------------------
diff --git 
a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/aggregators/AbstractTimelineAggregator.java
 
b/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/aggregators/AbstractTimelineAggregator.java
index 8dea46e..07717a8 100644
--- 
a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/aggregators/AbstractTimelineAggregator.java
+++ 
b/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;

http://git-wip-us.apache.org/repos/asf/ambari/blob/23faabc4/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/aggregators/Function.java
----------------------------------------------------------------------
diff --git 
a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/aggregators/Function.java
 
b/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/aggregators/Function.java
index 9d17fca..8292657 100644
--- 
a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/aggregators/Function.java
+++ 
b/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,

http://git-wip-us.apache.org/repos/asf/ambari/blob/23faabc4/ambari-metrics/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/ITClusterAggregator.java
----------------------------------------------------------------------
diff --git 
a/ambari-metrics/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/ITClusterAggregator.java
 
b/ambari-metrics/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/ITClusterAggregator.java
index da3d703b..27e9d67 100644
--- 
a/ambari-metrics/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/ITClusterAggregator.java
+++ 
b/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());

http://git-wip-us.apache.org/repos/asf/ambari/blob/23faabc4/ambari-server/pom.xml
----------------------------------------------------------------------
diff --git a/ambari-server/pom.xml b/ambari-server/pom.xml
index 1e6be0c..896a202 100644
--- a/ambari-server/pom.xml
+++ b/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>

http://git-wip-us.apache.org/repos/asf/ambari/blob/23faabc4/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractPropertyProvider.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractPropertyProvider.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractPropertyProvider.java
index 3d88dda..dba20ed 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractPropertyProvider.java
+++ 
b/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);
       }
 
     }

http://git-wip-us.apache.org/repos/asf/ambari/blob/23faabc4/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PropertyInfo.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PropertyInfo.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PropertyInfo.java
index 6773bd5..ac1eb33 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PropertyInfo.java
+++ 
b/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;
+  }
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/23faabc4/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackDefinedPropertyProvider.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackDefinedPropertyProvider.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackDefinedPropertyProvider.java
index a18086b..497230d 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackDefinedPropertyProvider.java
+++ 
b/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;

http://git-wip-us.apache.org/repos/asf/ambari/blob/23faabc4/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProvider.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProvider.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProvider.java
index e23f461..c07bc17 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProvider.java
+++ 
b/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();

http://git-wip-us.apache.org/repos/asf/ambari/blob/23faabc4/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/timeline/AMSPropertyProvider.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/timeline/AMSPropertyProvider.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/timeline/AMSPropertyProvider.java
index b566473..77ffbc1 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/timeline/AMSPropertyProvider.java
+++ 
b/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());
+            }
           }
         }
       }

http://git-wip-us.apache.org/repos/asf/ambari/blob/23faabc4/ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/PropertyHelper.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/PropertyHelper.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/PropertyHelper.java
index c3d8e2f..cce4909 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/PropertyHelper.java
+++ 
b/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;
+    }
   }
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/23faabc4/ambari-server/src/main/java/org/apache/ambari/server/state/stack/Metric.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/Metric.java 
b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/Metric.java
index c82a70a..4debef5 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/Metric.java
+++ 
b/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;
+  }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/23faabc4/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-site.xml
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-site.xml
 
b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-site.xml
index 99760eb..74c4304 100644
--- 
a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-site.xml
+++ 
b/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.

http://git-wip-us.apache.org/repos/asf/ambari/blob/23faabc4/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/metrics.json
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/metrics.json
 
b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/metrics.json
index 1c25729..7bbf7be 100644
--- 
a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/metrics.json
+++ 
b/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,

http://git-wip-us.apache.org/repos/asf/ambari/blob/23faabc4/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metrics.json
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metrics.json 
b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metrics.json
index 702bda1..6fc808e 100644
--- 
a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metrics.json
+++ 
b/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,

Reply via email to