AMBARI-20276 : Perf - AMS scale test for 3000 node cluster. (avijayan)
diff --git a/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/loadsimulator/LoadRunner.java b/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/loadsimulator/LoadRunner.java
index 203a88b..cd1dd1b 100644
--- a/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/loadsimulator/LoadRunner.java
+++ b/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/loadsimulator/LoadRunner.java
@@ -62,6 +62,7 @@
   public LoadRunner(String hostName,
                     int threadCount,
                     String metricsHostName,
+                    int minHostIndex,
                     int collectIntervalMillis,
                     int sendIntervalMillis,
                     boolean createMaster) {
@@ -70,24 +71,24 @@
     this.timer = Executors.newScheduledThreadPool(1);
     this.sendIntervalMillis = sendIntervalMillis;
 
-    workers = prepareWorkers(hostName, threadCount, metricsHostName, createMaster);
+    workers = prepareWorkers(hostName, threadCount, metricsHostName, createMaster, minHostIndex);
   }
 
   private Collection<Callable<String>> prepareWorkers(String hostName,
                                                       int threadCount,
                                                       String metricsHost,
-                                                      Boolean createMaster) {
+                                                      Boolean createMaster, int minHostIndex) {
     Collection<Callable<String>> senderWorkers =
       new ArrayList<Callable<String>>(threadCount);
 
-    int startIndex = 0;
+    int startIndex = minHostIndex;
     if (createMaster) {
-      String simHost = hostName + "0";
+      String simHost = hostName + startIndex;
       addMetricsWorkers(senderWorkers, simHost, metricsHost, MASTER_APPS);
       startIndex++;
     }
 
-    for (int i = startIndex; i < threadCount; i++) {
+    for (int i = startIndex; i < threadCount + minHostIndex; i++) {
       String simHost = hostName + i;
       addMetricsWorkers(senderWorkers, simHost, metricsHost, SLAVE_APPS);
     }
@@ -150,7 +151,7 @@
 
   public static void main(String[] args) {
     LoadRunner runner =
-      new LoadRunner("local", 2, "metrics", 10000, 20000, false);
+      new LoadRunner("local", 0, "metrics", 0, 10000, 20000, false);
 
     runner.start();
   }
diff --git a/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/loadsimulator/MetricsLoadSimulator.java b/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/loadsimulator/MetricsLoadSimulator.java
index 09db9b5..b64f542 100644
--- a/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/loadsimulator/MetricsLoadSimulator.java
+++ b/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/loadsimulator/MetricsLoadSimulator.java
@@ -43,6 +43,7 @@
       mapArgs.get("hostName"),
       Integer.valueOf(mapArgs.get("numberOfHosts")),
       mapArgs.get("metricsHostName"),
+      mapArgs.get("minHostIndex") == null ? 0 : Integer.valueOf(mapArgs.get("minHostIndex")),
       Integer.valueOf(mapArgs.get("collectInterval")),
       Integer.valueOf(mapArgs.get("sendInterval")),
       Boolean.valueOf(mapArgs.get("master"))
@@ -60,6 +61,7 @@
             mapArgs.get("hostName"),
             Integer.valueOf(mapArgs.get("numberOfHosts")),
             mapArgs.get("metricsHostName"),
+            mapArgs.get("minHostIndex") == null ? 0 : Integer.valueOf(mapArgs.get("minHostIndex")),
             Integer.valueOf(mapArgs.get("collectInterval")),
             Integer.valueOf(mapArgs.get("sendInterval")),
             Boolean.valueOf(mapArgs.get("master"))
diff --git a/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/loadsimulator/data/AppID.java b/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/loadsimulator/data/AppID.java
index a130171..56c3571 100644
--- a/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/loadsimulator/data/AppID.java
+++ b/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/loadsimulator/data/AppID.java
@@ -27,9 +27,11 @@
   MASTER_HBASE("hbase"),
   SLAVE_HBASE("hbase"),
   NIMBUS("nimbus"),
+  HIVEMETASTORE("hivemetastore"),
+  HIVESERVER2("hiveserver2"),
   KAFKA_BROKER("kafka_broker");
 
-  public static final AppID[] MASTER_APPS = {HOST, NAMENODE, RESOURCEMANAGER, MASTER_HBASE, KAFKA_BROKER, NIMBUS};
+  public static final AppID[] MASTER_APPS = {HOST, NAMENODE, RESOURCEMANAGER, MASTER_HBASE, KAFKA_BROKER, NIMBUS, HIVEMETASTORE, HIVESERVER2};
   public static final AppID[] SLAVE_APPS = {HOST, DATANODE, NODEMANAGER, SLAVE_HBASE};
 
   private String id;
diff --git a/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricConfiguration.java b/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricConfiguration.java
index 80d451e..0d5042f 100644
--- a/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricConfiguration.java
+++ b/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricConfiguration.java
@@ -260,6 +260,9 @@
   public static final String TIMELINE_METRICS_APPS_BLACKLIST =
     "timeline.metrics.apps.blacklist";
 
+  public static final String TIMELINE_METRICS_APPS_WHITELIST =
+    "timeline.metrics.apps.whitelist";
+
   public static final String HBASE_BLOCKING_STORE_FILES =
     "hbase.hstore.blockingStoreFiles";
 
diff --git a/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricsFilter.java b/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricsFilter.java
index 0fe979e..1446ec2 100644
--- a/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricsFilter.java
+++ b/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricsFilter.java
@@ -38,11 +38,13 @@
 
 import static org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.timeline.TimelineMetricConfiguration.TIMELINE_METRICS_WHITELIST_FILE;
 import static org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.timeline.TimelineMetricConfiguration.TIMELINE_METRICS_APPS_BLACKLIST;
+import static org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.timeline.TimelineMetricConfiguration.TIMELINE_METRICS_APPS_WHITELIST;
 
 public class TimelineMetricsFilter {
 
   private static Set<String> whitelistedMetrics;
   private static Set<Pattern> whitelistedMetricPatterns;
+  private static Set<String> whitelistedApps;
   private static Set<String> blacklistedApps;
   private static String patternPrefix = "._p_";
   private static Set<String> amshbaseWhitelist;
@@ -62,6 +64,7 @@
     whitelistedMetrics = new HashSet<String>();
     whitelistedMetricPatterns = new HashSet<Pattern>();
     blacklistedApps = new HashSet<>();
+    whitelistedApps = new HashSet<>();
     amshbaseWhitelist = new HashSet<>();
 
     String whitelistFile = metricsConf.get(TIMELINE_METRICS_WHITELIST_FILE, "");
@@ -77,6 +80,14 @@
       LOG.info("Blacklisted apps : " + blacklistedApps.toString());
     }
 
+    String appsWhitelist = metricsConf.get(TIMELINE_METRICS_APPS_WHITELIST, "");
+    if (!StringUtils.isEmpty(appsWhitelist)) {
+      for (String app : appsWhitelist.split(",")) {
+        whitelistedApps.add(app);
+      }
+      LOG.info("Whitelisted apps : " + whitelistedApps.toString());
+    }
+
     amshbaseWhitelist = configuration.getAmshbaseWhitelist();
     if (CollectionUtils.isNotEmpty(amshbaseWhitelist)) {
       LOG.info("Whitelisting " + amshbaseWhitelist.size() + " ams-hbase metrics");
@@ -119,28 +130,36 @@
 
   public static boolean acceptMetric(TimelineMetric metric) {
 
-    // App takes precedence.
-    if (CollectionUtils.isNotEmpty(blacklistedApps) && blacklistedApps.contains(metric.getAppId())) {
+    String appId = metric.getAppId();
+    String metricName = metric.getMetricName();
+    // App Blacklisting
+    if (CollectionUtils.isNotEmpty(blacklistedApps) && blacklistedApps.contains(appId)) {
       return false;
     }
 
     //Special Case appId = ams-hbase whitelisting.
-    if ("ams-hbase".equals(metric.getAppId()) && CollectionUtils.isNotEmpty(amshbaseWhitelist)) {
+    if ("ams-hbase".equals(appId) && CollectionUtils.isNotEmpty(amshbaseWhitelist)) {
       return amshbaseWhitelist.contains(metric.getMetricName());
     }
 
+    // App Whitelisting
+    if (CollectionUtils.isNotEmpty(whitelistedApps) && whitelistedApps.contains(appId)) {
+      return true;
+    }
+
+    // Metric Whitelisting
     if (CollectionUtils.isEmpty(whitelistedMetrics) && CollectionUtils.isEmpty(whitelistedMetricPatterns)) {
       return true;
     }
 
-    if (whitelistedMetrics.contains(metric.getMetricName())) {
+    if (whitelistedMetrics.contains(metricName)) {
       return true;
     }
 
     for (Pattern p : whitelistedMetricPatterns) {
-      Matcher m = p.matcher(metric.getMetricName());
+      Matcher m = p.matcher(metricName);
       if (m.find()) {
-        whitelistedMetrics.add(metric.getMetricName());
+        whitelistedMetrics.add(metricName);
         return true;
       }
     }
diff --git a/ambari-metrics-timelineservice/src/main/resources/metrics_def/AMS-HBASE.dat b/ambari-metrics-timelineservice/src/main/resources/metrics_def/AMS-HBASE.dat
index 63ac9f3..de4068b 100644
--- a/ambari-metrics-timelineservice/src/main/resources/metrics_def/AMS-HBASE.dat
+++ b/ambari-metrics-timelineservice/src/main/resources/metrics_def/AMS-HBASE.dat
@@ -1,18 +1,245 @@
-dfs.FSNamesystem.MissingReplOneBlocks
-dfs.FSNamesystem.TransactionsSinceLastCheckpoint
-dfs.FSNamesystem.MillisSinceLastLoadedEdits
-dfs.FSNamesystem.SnapshottableDirectories
-master.Master.QueueCallTime_median
-dfs.FSNamesystem.LastCheckpointTime
-dfs.FSNamesystem.TotalFiles
-dfs.FSNamesystem.ExpiredHeartbeats
-dfs.FSNamesystem.PostponedMisreplicatedBlocks
-dfs.FSNamesystem.LastWrittenTransactionId
+regionserver.WAL.SyncTime_min
+regionserver.WAL.SyncTime_num_ops
+regionserver.WAL.appendCount
+regionserver.WAL.slowAppendCount
+jvm.JvmMetrics.GcCountParNew
+jvm.JvmMetrics.GcTimeMillis
+jvm.JvmMetrics.GcTimeMillisConcurrentMarkSweep
+jvm.JvmMetrics.GcTimeMillisParNew
+ugi.UgiMetrics.GetGroupsAvgTime
+ugi.UgiMetrics.GetGroupsNumOps
+ugi.UgiMetrics.LoginFailureNumOps
+ugi.UgiMetrics.LoginSuccessAvgTime
+ugi.UgiMetrics.LoginSuccessNumOps
+ugi.UgiMetrics.LoginFailureAvgTime
+jvm.JvmMetrics.LogError
+jvm.JvmMetrics.LogFatal
+jvm.JvmMetrics.LogInfo
+jvm.JvmMetrics.LogWarn
 jvm.JvmMetrics.MemHeapCommittedM
-dfs.FSNamesystem.Snapshots
-dfs.FSNamesystem.TransactionsSinceLastLogRoll
-master.Server.averageLoad
+jvm.JvmMetrics.MemHeapMaxM
 jvm.JvmMetrics.MemHeapUsedM
+jvm.JvmMetrics.MemMaxM
+jvm.JvmMetrics.MemNonHeapCommittedM
+jvm.JvmMetrics.MemNonHeapMaxM
+jvm.JvmMetrics.MemNonHeapUsedM
+jvm.JvmMetrics.ThreadsBlocked
+jvm.JvmMetrics.ThreadsNew
+jvm.JvmMetrics.ThreadsRunnable
+jvm.JvmMetrics.ThreadsTerminated
+jvm.JvmMetrics.ThreadsTimedWaiting
+master.AssignmentManger.Assign_75th_percentile
+master.AssignmentManger.Assign_95th_percentile
+master.AssignmentManger.Assign_99th_percentile
+master.AssignmentManger.Assign_max
+master.AssignmentManger.Assign_mean
+master.AssignmentManger.Assign_median
+master.AssignmentManger.Assign_min
+jvm.JvmMetrics.ThreadsWaiting
+master.AssignmentManger.Assign_num_ops
+master.AssignmentManger.BulkAssign_75th_percentile
+master.AssignmentManger.BulkAssign_95th_percentile
+master.AssignmentManger.BulkAssign_99th_percentile
+master.AssignmentManger.BulkAssign_max
+master.AssignmentManger.BulkAssign_mean
+master.AssignmentManger.BulkAssign_median
+master.AssignmentManger.BulkAssign_min
+master.AssignmentManger.BulkAssign_num_ops
 master.AssignmentManger.ritCount
-dfs.FSNamesystem.PendingDataNodeMessageCount
-dfs.FSNamesystem.StaleDataNodes
\ No newline at end of file
+master.AssignmentManger.ritCountOverThreshold
+master.AssignmentManger.ritOldestAge
+master.Balancer.BalancerCluster_75th_percentile
+master.Balancer.BalancerCluster_95th_percentile
+master.Balancer.BalancerCluster_99th_percentile
+master.Balancer.BalancerCluster_max
+master.Balancer.BalancerCluster_mean
+master.Balancer.BalancerCluster_median
+master.Balancer.BalancerCluster_min
+master.Balancer.BalancerCluster_num_ops
+master.Balancer.miscInvocationCount
+master.FileSystem.HlogSplitSize_75th_percentile
+master.FileSystem.HlogSplitSize_95th_percentile
+master.FileSystem.HlogSplitSize_99th_percentile
+master.FileSystem.HlogSplitSize_max
+master.FileSystem.HlogSplitSize_mean
+master.FileSystem.HlogSplitSize_median
+master.FileSystem.HlogSplitSize_min
+master.FileSystem.HlogSplitSize_num_ops
+master.FileSystem.HlogSplitTime_75th_percentile
+master.FileSystem.HlogSplitTime_95th_percentile
+master.FileSystem.HlogSplitTime_99th_percentile
+master.FileSystem.HlogSplitTime_max
+master.FileSystem.HlogSplitTime_mean
+master.FileSystem.HlogSplitTime_median
+master.FileSystem.HlogSplitTime_min
+master.FileSystem.HlogSplitTime_num_ops
+master.FileSystem.MetaHlogSplitSize_75th_percentile
+master.FileSystem.MetaHlogSplitSize_95th_percentile
+master.FileSystem.MetaHlogSplitSize_99th_percentile
+master.FileSystem.MetaHlogSplitSize_max
+master.FileSystem.MetaHlogSplitSize_mean
+master.FileSystem.MetaHlogSplitSize_median
+master.FileSystem.MetaHlogSplitSize_min
+master.FileSystem.MetaHlogSplitSize_num_ops
+master.FileSystem.MetaHlogSplitTime_75th_percentile
+master.FileSystem.MetaHlogSplitTime_95th_percentile
+master.FileSystem.MetaHlogSplitTime_99th_percentile
+master.FileSystem.MetaHlogSplitTime_max
+master.FileSystem.MetaHlogSplitTime_mean
+master.FileSystem.MetaHlogSplitTime_median
+master.FileSystem.MetaHlogSplitTime_min
+master.FileSystem.MetaHlogSplitTime_num_ops
+master.Server.averageLoad
+master.Server.clusterRequests
+master.Server.masterActiveTime
+master.Server.masterStartTime
+master.Server.numDeadRegionServers
+master.Server.numRegionServers
+metricssystem.MetricsSystem.DroppedPubAll
+metricssystem.MetricsSystem.NumActiveSinks
+ipc.IPC.ProcessCallTime_75th_percentile
+ipc.IPC.ProcessCallTime_95th_percentile
+metricssystem.MetricsSystem.NumActiveSources
+metricssystem.MetricsSystem.NumAllSinks
+ipc.IPC.ProcessCallTime_99th_percentile
+metricssystem.MetricsSystem.NumAllSources
+metricssystem.MetricsSystem.PublishAvgTime
+metricssystem.MetricsSystem.PublishNumOps
+ipc.IPC.ProcessCallTime_max
+ipc.IPC.ProcessCallTime_mean
+metricssystem.MetricsSystem.Sink_timelineAvgTime
+ipc.IPC.ProcessCallTime_median
+metricssystem.MetricsSystem.Sink_timelineDropped
+metricssystem.MetricsSystem.Sink_timelineNumOps
+ipc.IPC.ProcessCallTime_num_ops
+metricssystem.MetricsSystem.Sink_timelineQsize
+metricssystem.MetricsSystem.SnapshotAvgTime
+ipc.IPC.QueueCallTime_95th_percentile
+metricssystem.MetricsSystem.SnapshotNumOps
+ipc.IPC.ProcessCallTime_min
+ipc.IPC.QueueCallTime_75th_percentile
+ipc.IPC.QueueCallTime_99th_percentile
+ipc.IPC.QueueCallTime_max
+ipc.IPC.QueueCallTime_mean
+ipc.IPC.QueueCallTime_median
+ipc.IPC.QueueCallTime_min
+regionserver.Server.Append_75th_percentile
+regionserver.Server.Append_95th_percentile
+ipc.IPC.QueueCallTime_num_ops
+ipc.IPC.authenticationFailures
+regionserver.Server.Append_99th_percentile
+regionserver.Server.Append_max
+ipc.IPC.authenticationSuccesses
+regionserver.Server.Append_mean
+regionserver.Server.Append_median
+regionserver.Server.Append_min
+regionserver.Server.Append_num_ops
+regionserver.Server.Delete_75th_percentile
+regionserver.Server.Delete_95th_percentile
+ipc.IPC.authorizationFailures
+regionserver.Server.Delete_99th_percentile
+regionserver.Server.Delete_max
+regionserver.Server.Delete_mean
+regionserver.Server.Delete_median
+regionserver.Server.Delete_min
+regionserver.Server.Delete_num_ops
+ipc.IPC.authorizationSuccesses
+ipc.IPC.numActiveHandler
+ipc.IPC.numCallsInGeneralQueue
+regionserver.Server.Get_75th_percentile
+regionserver.Server.Get_95th_percentile
+regionserver.Server.Get_99th_percentile
+regionserver.Server.Get_max
+regionserver.Server.Get_mean
+regionserver.Server.Get_median
+ipc.IPC.numCallsInPriorityQueue
+regionserver.Server.Get_min
+regionserver.Server.Get_num_ops
+regionserver.Server.Increment_75th_percentile
+regionserver.Server.Increment_95th_percentile
+regionserver.Server.Increment_99th_percentile
+regionserver.Server.Increment_max
+regionserver.Server.Increment_mean
+regionserver.Server.Increment_median
+ipc.IPC.numCallsInReplicationQueue
+ipc.IPC.numOpenConnections
+regionserver.Server.Increment_min
+regionserver.Server.Increment_num_ops
+ipc.IPC.queueSize
+regionserver.Server.Mutate_75th_percentile
+regionserver.Server.Mutate_95th_percentile
+regionserver.Server.Mutate_99th_percentile
+regionserver.Server.Mutate_max
+regionserver.Server.Mutate_mean
+regionserver.Server.Mutate_median
+ipc.IPC.receivedBytes
+regionserver.Server.Mutate_min
+regionserver.Server.Mutate_num_ops
+regionserver.Server.Replay_75th_percentile
+regionserver.Server.Replay_95th_percentile
+regionserver.Server.Replay_99th_percentile
+regionserver.Server.Replay_max
+regionserver.Server.Replay_mean
+regionserver.Server.Replay_median
+ipc.IPC.sentBytes
+jvm.JvmMetrics.GcCount
+regionserver.Server.Replay_min
+regionserver.Server.Replay_num_ops
+regionserver.Server.blockCacheCount
+regionserver.Server.blockCacheEvictionCount
+regionserver.Server.blockCacheExpressHitPercent
+regionserver.Server.blockCacheFreeSize
+regionserver.Server.blockCacheHitCount
+regionserver.Server.blockCacheMissCount
+regionserver.Server.blockCacheSize
+regionserver.Server.blockCountHitPercent
+regionserver.Server.checkMutateFailedCount
+regionserver.Server.checkMutatePassedCount
+regionserver.Server.compactionQueueLength
+regionserver.Server.flushQueueLength
+jvm.JvmMetrics.GcCountConcurrentMarkSweep
+regionserver.Server.hlogFileCount
+regionserver.Server.hlogFileSize
+regionserver.Server.memStoreSize
+regionserver.Server.mutationsWithoutWALCount
+regionserver.Server.mutationsWithoutWALSize
+regionserver.Server.percentFilesLocal
+regionserver.Server.readRequestCount
+regionserver.Server.regionCount
+regionserver.Server.regionServerStartTime
+regionserver.Server.slowAppendCount
+regionserver.Server.slowDeleteCount
+regionserver.Server.slowGetCount
+regionserver.Server.slowIncrementCount
+regionserver.Server.slowPutCount
+regionserver.Server.staticBloomSize
+regionserver.Server.staticIndexSize
+regionserver.Server.storeCount
+regionserver.Server.storeFileCount
+regionserver.Server.storeFileIndexSize
+regionserver.Server.storeFileSize
+regionserver.Server.totalRequestCount
+regionserver.Server.updatesBlockedTime
+regionserver.Server.writeRequestCount
+regionserver.WAL.AppendSize_75th_percentile
+regionserver.WAL.AppendSize_95th_percentile
+regionserver.WAL.AppendSize_99th_percentile
+regionserver.WAL.AppendSize_max
+regionserver.WAL.AppendSize_mean
+regionserver.WAL.AppendSize_median
+regionserver.WAL.SyncTime_median
+regionserver.WAL.AppendSize_min
+regionserver.WAL.AppendSize_num_ops
+regionserver.WAL.SyncTime_max
+regionserver.WAL.AppendTime_75th_percentile
+regionserver.WAL.AppendTime_95th_percentile
+regionserver.WAL.AppendTime_99th_percentile
+regionserver.WAL.AppendTime_max
+regionserver.WAL.SyncTime_95th_percentile
+regionserver.WAL.AppendTime_mean
+regionserver.WAL.AppendTime_median
+regionserver.WAL.AppendTime_min
+regionserver.WAL.AppendTime_num_ops
+regionserver.WAL.SyncTime_75th_percentile
+regionserver.WAL.SyncTime_99th_percentile
+regionserver.WAL.SyncTime_mean
\ No newline at end of file
diff --git a/ambari-metrics-timelineservice/src/main/resources/metrics_def/DATANODE.dat b/ambari-metrics-timelineservice/src/main/resources/metrics_def/DATANODE.dat
index e157630..c015865 100644
--- a/ambari-metrics-timelineservice/src/main/resources/metrics_def/DATANODE.dat
+++ b/ambari-metrics-timelineservice/src/main/resources/metrics_def/DATANODE.dat
@@ -1,101 +1,161 @@
-| dfs.datanode.BlockChecksumOpAvgTime | datanode   |
-| dfs.datanode.BlockChecksumOpNumOps | datanode   |
-| dfs.datanode.BlockReportsAvgTime | datanode   |
-| dfs.datanode.BlockReportsNumOps | datanode   |
-| dfs.datanode.BlockVerificationFailures | datanode   |
-| dfs.datanode.BlocksCached | datanode   |
-| dfs.datanode.BlocksGetLocalPathInfo | datanode   |
-| dfs.datanode.BlocksRead | datanode   |
-| dfs.datanode.BlocksRemoved | datanode   |
-| dfs.datanode.BlocksReplicated | datanode   |
-| dfs.datanode.BlocksUncached | datanode   |
-| dfs.datanode.BlocksVerified | datanode   |
-| dfs.datanode.BlocksWritten | datanode   |
-| dfs.datanode.BytesRead | datanode   |
-| dfs.datanode.BytesWritten | datanode   |
-| dfs.datanode.CacheReportsAvgTime | datanode   |
-| dfs.datanode.CacheReportsNumOps | datanode   |
-| dfs.datanode.CopyBlockOpAvgTime | datanode   |
-| dfs.datanode.CopyBlockOpNumOps | datanode   |
-| dfs.datanode.FlushNanosAvgTime | datanode   |
-| dfs.datanode.FlushNanosNumOps | datanode   |
-| dfs.datanode.FsyncCount | datanode   |
-| dfs.datanode.FsyncNanosAvgTime | datanode   |
-| dfs.datanode.FsyncNanosNumOps | datanode   |
-| dfs.datanode.HeartbeatsAvgTime | datanode   |
-| dfs.datanode.HeartbeatsNumOps | datanode   |
-| dfs.datanode.PacketAckRoundTripTimeNanosAvgTime | datanode   |
-| dfs.datanode.PacketAckRoundTripTimeNanosNumOps | datanode   |
-| dfs.datanode.ReadBlockOpAvgTime | datanode   |
-| dfs.datanode.ReadBlockOpNumOps | datanode   |
-| dfs.datanode.ReadsFromLocalClient | datanode   |
-| dfs.datanode.ReadsFromRemoteClient | datanode   |
-| dfs.datanode.ReplaceBlockOpAvgTime | datanode   |
-| dfs.datanode.ReplaceBlockOpNumOps | datanode   |
-| dfs.datanode.SendDataPacketBlockedOnNetworkNanosAvgTime | datanode   |
-| dfs.datanode.SendDataPacketBlockedOnNetworkNanosNumOps | datanode   |
-| dfs.datanode.SendDataPacketTransferNanosAvgTime | datanode   |
-| dfs.datanode.SendDataPacketTransferNanosNumOps | datanode   |
-| dfs.datanode.VolumeFailures | datanode   |
-| dfs.datanode.WriteBlockOpAvgTime | datanode   |
-| dfs.datanode.WriteBlockOpNumOps | datanode   |
-| dfs.datanode.WritesFromLocalClient | datanode   |
-| dfs.datanode.WritesFromRemoteClient | datanode   |
-| jvm.JvmMetrics.GcCount | datanode   |
-| jvm.JvmMetrics.GcCountCopy | datanode   |
-| jvm.JvmMetrics.GcCountMarkSweepCompact | datanode   |
-| jvm.JvmMetrics.GcTimeMillis | datanode   |
-| jvm.JvmMetrics.GcTimeMillisCopy | datanode   |
-| jvm.JvmMetrics.GcTimeMillisMarkSweepCompact | datanode   |
-| jvm.JvmMetrics.LogError | datanode   |
-| jvm.JvmMetrics.LogFatal | datanode   |
-| jvm.JvmMetrics.LogInfo | datanode   |
-| jvm.JvmMetrics.LogWarn | datanode   |
-| jvm.JvmMetrics.MemHeapCommittedM | datanode   |
-| jvm.JvmMetrics.MemHeapMaxM | datanode   |
-| jvm.JvmMetrics.MemHeapUsedM | datanode   |
-| jvm.JvmMetrics.MemMaxM | datanode   |
-| jvm.JvmMetrics.MemNonHeapCommittedM | datanode   |
-| jvm.JvmMetrics.MemNonHeapMaxM | datanode   |
-| jvm.JvmMetrics.MemNonHeapUsedM | datanode   |
-| jvm.JvmMetrics.ThreadsBlocked | datanode   |
-| jvm.JvmMetrics.ThreadsNew | datanode   |
-| jvm.JvmMetrics.ThreadsRunnable | datanode   |
-| jvm.JvmMetrics.ThreadsTerminated | datanode   |
-| jvm.JvmMetrics.ThreadsTimedWaiting | datanode   |
-| jvm.JvmMetrics.ThreadsWaiting | datanode   |
-| metricssystem.MetricsSystem.DroppedPubAll | datanode   |
-| metricssystem.MetricsSystem.NumActiveSinks | datanode   |
-| metricssystem.MetricsSystem.NumActiveSources | datanode   |
-| metricssystem.MetricsSystem.NumAllSinks | datanode   |
-| metricssystem.MetricsSystem.NumAllSources | datanode   |
-| metricssystem.MetricsSystem.PublishAvgTime | datanode   |
-| metricssystem.MetricsSystem.PublishNumOps | datanode   |
-| metricssystem.MetricsSystem.Sink_timelineAvgTime | datanode   |
-| metricssystem.MetricsSystem.Sink_timelineDropped | datanode   |
-| metricssystem.MetricsSystem.Sink_timelineNumOps | datanode   |
-| metricssystem.MetricsSystem.Sink_timelineQsize | datanode   |
-| metricssystem.MetricsSystem.SnapshotAvgTime | datanode   |
-| metricssystem.MetricsSystem.SnapshotNumOps | datanode   |
-| rpc.rpc.CallQueueLength | datanode   |
-| rpc.rpc.NumOpenConnections | datanode   |
-| rpc.rpc.ReceivedBytes | datanode   |
-| rpc.rpc.RpcAuthenticationFailures | datanode   |
-| rpc.rpc.RpcAuthenticationSuccesses | datanode   |
-| rpc.rpc.RpcAuthorizationFailures | datanode   |
-| rpc.rpc.RpcAuthorizationSuccesses | datanode   |
-| rpc.rpc.RpcProcessingTimeAvgTime | datanode   |
-| rpc.rpc.RpcProcessingTimeNumOps | datanode   |
-| rpc.rpc.RpcQueueTimeAvgTime | datanode   |
-| rpc.rpc.RpcQueueTimeNumOps | datanode   |
-| rpc.rpc.SentBytes | datanode   |
-| rpcdetailed.rpcdetailed.InitReplicaRecoveryAvgTime | datanode   |
-| rpcdetailed.rpcdetailed.InitReplicaRecoveryNumOps | datanode   |
-| rpcdetailed.rpcdetailed.UpdateReplicaUnderRecoveryAvgTime | datanode   |
-| rpcdetailed.rpcdetailed.UpdateReplicaUnderRecoveryNumOps | datanode   |
-| ugi.UgiMetrics.GetGroupsAvgTime | datanode   |
-| ugi.UgiMetrics.GetGroupsNumOps | datanode   |
-| ugi.UgiMetrics.LoginFailureAvgTime | datanode   |
-| ugi.UgiMetrics.LoginFailureNumOps | datanode   |
-| ugi.UgiMetrics.LoginSuccessAvgTime | datanode   |
-| ugi.UgiMetrics.LoginSuccessNumOps | datanode   |
+FSDatasetState.org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.CacheCapacity
+FSDatasetState.org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.CacheUsed
+FSDatasetState.org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.Capacity
+FSDatasetState.org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.DfsUsed
+FSDatasetState.org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.EstimatedCapacityLostTotal
+FSDatasetState.org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.LastVolumeFailureDate
+FSDatasetState.org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.NumBlocksCached
+FSDatasetState.org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.NumBlocksFailedToCache
+FSDatasetState.org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.NumBlocksFailedToUnCache
+FSDatasetState.org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.NumFailedVolumes
+FSDatasetState.org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.Remaining
+dfs.FsVolume.DataFileIoRateAvgTime
+dfs.FsVolume.DataFileIoRateNumOps
+dfs.FsVolume.FileIoErrorRateAvgTime
+dfs.FsVolume.FileIoErrorRateNumOps
+dfs.FsVolume.FlushIoRateAvgTime
+dfs.FsVolume.FlushIoRateNumOps
+dfs.FsVolume.MetadataOperationRateAvgTime
+dfs.FsVolume.MetadataOperationRateNumOps
+dfs.FsVolume.ReadIoRateAvgTime
+dfs.FsVolume.ReadIoRateNumOps
+dfs.FsVolume.SyncIoRateAvgTime
+dfs.FsVolume.SyncIoRateNumOps
+dfs.FsVolume.TotalDataFileIos
+dfs.FsVolume.TotalFileIoErrors
+dfs.FsVolume.TotalMetadataOperations
+dfs.FsVolume.WriteIoRateAvgTime
+dfs.FsVolume.WriteIoRateNumOps
+dfs.datanode.BlockChecksumOpAvgTime
+dfs.datanode.BlockChecksumOpNumOps
+dfs.datanode.BlockReportsAvgTime
+dfs.datanode.BlockReportsNumOps
+dfs.datanode.BlockVerificationFailures
+dfs.datanode.BlocksCached
+dfs.datanode.BlocksGetLocalPathInfo
+dfs.datanode.BlocksRead
+dfs.datanode.BlocksRemoved
+dfs.datanode.BlocksReplicated
+dfs.datanode.BlocksUncached
+dfs.datanode.BlocksVerified
+dfs.datanode.BlocksWritten
+dfs.datanode.BytesRead
+dfs.datanode.BytesWritten
+dfs.datanode.CacheReportsAvgTime
+dfs.datanode.CacheReportsNumOps
+dfs.datanode.CopyBlockOpAvgTime
+dfs.datanode.CopyBlockOpNumOps
+dfs.datanode.DataNodeActiveXceiversCount
+dfs.datanode.DatanodeNetworkErrors
+dfs.datanode.FlushNanosAvgTime
+dfs.datanode.FlushNanosNumOps
+dfs.datanode.FsyncCount
+dfs.datanode.FsyncNanosAvgTime
+dfs.datanode.FsyncNanosNumOps
+dfs.datanode.HeartbeatsAvgTime
+dfs.datanode.HeartbeatsNumOps
+dfs.datanode.HeartbeatsTotalAvgTime
+dfs.datanode.HeartbeatsTotalNumOps
+dfs.datanode.IncrementalBlockReportsAvgTime
+dfs.datanode.IncrementalBlockReportsNumOps
+dfs.datanode.LifelinesAvgTime
+dfs.datanode.LifelinesNumOps
+dfs.datanode.PacketAckRoundTripTimeNanosAvgTime
+dfs.datanode.PacketAckRoundTripTimeNanosNumOps
+dfs.datanode.RamDiskBlocksDeletedBeforeLazyPersisted
+dfs.datanode.RamDiskBlocksEvicted
+dfs.datanode.RamDiskBlocksEvictedWithoutRead
+dfs.datanode.RamDiskBlocksEvictionWindowMsAvgTime
+dfs.datanode.RamDiskBlocksEvictionWindowMsNumOps
+dfs.datanode.RamDiskBlocksLazyPersistWindowMsAvgTime
+dfs.datanode.RamDiskBlocksLazyPersistWindowMsNumOps
+dfs.datanode.RamDiskBlocksLazyPersisted
+dfs.datanode.RamDiskBlocksReadHits
+dfs.datanode.RamDiskBlocksWrite
+dfs.datanode.RamDiskBlocksWriteFallback
+dfs.datanode.RamDiskBytesLazyPersisted
+dfs.datanode.RamDiskBytesWrite
+dfs.datanode.ReadBlockOpAvgTime
+dfs.datanode.ReadBlockOpNumOps
+dfs.datanode.ReadsFromLocalClient
+dfs.datanode.ReadsFromRemoteClient
+dfs.datanode.RemoteBytesRead
+dfs.datanode.RemoteBytesWritten
+dfs.datanode.ReplaceBlockOpAvgTime
+dfs.datanode.ReplaceBlockOpNumOps
+dfs.datanode.SendDataPacketBlockedOnNetworkNanosAvgTime
+dfs.datanode.SendDataPacketBlockedOnNetworkNanosNumOps
+dfs.datanode.SendDataPacketTransferNanosAvgTime
+dfs.datanode.SendDataPacketTransferNanosNumOps
+dfs.datanode.TotalReadTime
+dfs.datanode.TotalWriteTime
+dfs.datanode.VolumeFailures
+dfs.datanode.WriteBlockOpAvgTime
+dfs.datanode.WriteBlockOpNumOps
+dfs.datanode.WritesFromLocalClient
+dfs.datanode.WritesFromRemoteClient
+jvm.JvmMetrics.GcCount
+jvm.JvmMetrics.GcCountConcurrentMarkSweep
+jvm.JvmMetrics.GcCountParNew
+jvm.JvmMetrics.GcNumInfoThresholdExceeded
+jvm.JvmMetrics.GcNumWarnThresholdExceeded
+jvm.JvmMetrics.GcTimeMillis
+jvm.JvmMetrics.GcTimeMillisConcurrentMarkSweep
+jvm.JvmMetrics.GcTimeMillisParNew
+jvm.JvmMetrics.GcTotalExtraSleepTime
+jvm.JvmMetrics.LogError
+jvm.JvmMetrics.LogFatal
+jvm.JvmMetrics.LogInfo
+jvm.JvmMetrics.LogWarn
+jvm.JvmMetrics.MemHeapCommittedM
+jvm.JvmMetrics.MemHeapMaxM
+jvm.JvmMetrics.MemHeapUsedM
+jvm.JvmMetrics.MemMaxM
+jvm.JvmMetrics.MemNonHeapCommittedM
+jvm.JvmMetrics.MemNonHeapMaxM
+jvm.JvmMetrics.MemNonHeapUsedM
+jvm.JvmMetrics.ThreadsBlocked
+jvm.JvmMetrics.ThreadsNew
+jvm.JvmMetrics.ThreadsRunnable
+jvm.JvmMetrics.ThreadsTerminated
+jvm.JvmMetrics.ThreadsTimedWaiting
+jvm.JvmMetrics.ThreadsWaiting
+metricssystem.MetricsSystem.DroppedPubAll
+metricssystem.MetricsSystem.NumActiveSinks
+metricssystem.MetricsSystem.NumActiveSources
+metricssystem.MetricsSystem.NumAllSinks
+metricssystem.MetricsSystem.NumAllSources
+metricssystem.MetricsSystem.PublishAvgTime
+metricssystem.MetricsSystem.PublishNumOps
+metricssystem.MetricsSystem.Sink_timelineAvgTime
+metricssystem.MetricsSystem.Sink_timelineDropped
+metricssystem.MetricsSystem.Sink_timelineNumOps
+metricssystem.MetricsSystem.Sink_timelineQsize
+metricssystem.MetricsSystem.SnapshotAvgTime
+metricssystem.MetricsSystem.SnapshotNumOps
+rpc.rpc.CallQueueLength
+rpc.rpc.NumOpenConnections
+rpc.rpc.ReceivedBytes
+rpc.rpc.RpcAuthenticationFailures
+rpc.rpc.RpcAuthenticationSuccesses
+rpc.rpc.RpcAuthorizationFailures
+rpc.rpc.RpcAuthorizationSuccesses
+rpc.rpc.RpcClientBackoff
+rpc.rpc.RpcProcessingTimeAvgTime
+rpc.rpc.RpcProcessingTimeNumOps
+rpc.rpc.RpcQueueTimeAvgTime
+rpc.rpc.RpcQueueTimeNumOps
+rpc.rpc.RpcSlowCalls
+rpc.rpc.SentBytes
+rpcdetailed.rpcdetailed.InitReplicaRecoveryAvgTime
+rpcdetailed.rpcdetailed.InitReplicaRecoveryNumOps
+rpcdetailed.rpcdetailed.UpdateReplicaUnderRecoveryAvgTime
+rpcdetailed.rpcdetailed.UpdateReplicaUnderRecoveryNumOps
+ugi.UgiMetrics.GetGroupsAvgTime
+ugi.UgiMetrics.GetGroupsNumOps
+ugi.UgiMetrics.LoginFailureAvgTime
+ugi.UgiMetrics.LoginFailureNumOps
+ugi.UgiMetrics.LoginSuccessAvgTime
+ugi.UgiMetrics.LoginSuccessNumOps
+ugi.UgiMetrics.RenewalFailures
+ugi.UgiMetrics.RenewalFailuresTotal
diff --git a/ambari-metrics-timelineservice/src/main/resources/metrics_def/FLUME_HANDLER.dat b/ambari-metrics-timelineservice/src/main/resources/metrics_def/FLUME_HANDLER.dat
index bd5852f..376490a 100644
--- a/ambari-metrics-timelineservice/src/main/resources/metrics_def/FLUME_HANDLER.dat
+++ b/ambari-metrics-timelineservice/src/main/resources/metrics_def/FLUME_HANDLER.dat
@@ -1,40 +1,17 @@
-ChannelSize._rate._min._sum
-ChannelSize._rate._sum._max
-ChannelSize._rate._min._max
-ChannelSize._rate._avg._min
-ChannelSize._rate._avg._avg
-ChannelSize._rate._max
-ChannelSize._rate._max._min
-ChannelSize._rate._max._avg
-ChannelSize._rate._avg._sum
-ChannelSize._rate._max._sum
-ChannelSize._rate._sum
-ChannelSize._rate._sum._min
-ChannelSize._rate._sum._avg
-ChannelSize._rate._min._avg
-ChannelSize._rate._min._min
-ChannelSize._rate._avg._max
-ChannelSize._rate._max._max
-ChannelSize._rate._avg
-ChannelSize._rate._min
-ChannelSize._rate._sum._sum
-EventPutSuccessCount._rate._avg._sum
-EventPutSuccessCount._rate._max._sum
-EventPutSuccessCount._rate._sum._sum
-EventPutSuccessCount._rate._max._max
-EventPutSuccessCount._rate._min._avg
-EventPutSuccessCount._rate._min._min
-EventPutSuccessCount._rate._avg._max
-EventPutSuccessCount._rate._sum._min
-EventPutSuccessCount._rate._sum._avg
-EventPutSuccessCount._rate._min._sum
-EventPutSuccessCount._rate._max
-EventPutSuccessCount._rate._max._avg
-EventPutSuccessCount._rate._avg._avg
-EventPutSuccessCount._rate._max._min
-EventPutSuccessCount._rate._avg._min
-EventPutSuccessCount._rate._avg
-EventPutSuccessCount._rate._min
-EventPutSuccessCount._rate._sum._max
-EventPutSuccessCount._rate._min._max
-EventPutSuccessCount._rate._sum
+BatchCompleteCount
+BatchEmptyCount
+BatchUnderflowCount
+ChannelCapacity
+ChannelFillPercentage
+ChannelSize
+ConnectionClosedCount
+ConnectionCreatedCount
+ConnectionFailedCount
+EventDrainAttemptCount
+EventDrainSuccessCount
+EventPutAttemptCount
+EventPutSuccessCount
+EventTakeSuccessCount
+EventTakeAttemptCount
+StartTime
+StopTime
\ No newline at end of file
diff --git a/ambari-metrics-timelineservice/src/main/resources/metrics_def/HIVEMETASTORE.dat b/ambari-metrics-timelineservice/src/main/resources/metrics_def/HIVEMETASTORE.dat
new file mode 100644
index 0000000..8b7a893
--- /dev/null
+++ b/ambari-metrics-timelineservice/src/main/resources/metrics_def/HIVEMETASTORE.dat
@@ -0,0 +1,181 @@
+default.General.active_calls_api_create_table
+default.General.active_calls_api_drop_table
+default.General.active_calls_api_get_all_databases
+default.General.active_calls_api_get_database
+default.General.active_calls_api_get_functions
+default.General.active_calls_api_get_table
+default.General.active_calls_api_get_tables
+default.General.api_create_table_15min_rate
+default.General.api_create_table_1min_rate
+default.General.api_create_table_5min_rate
+default.General.api_create_table_75thpercentile
+default.General.api_create_table_95thpercentile
+default.General.api_create_table_98thpercentile
+default.General.api_create_table_999thpercentile
+default.General.api_create_table_99thpercentile
+default.General.api_create_table_count
+default.General.api_create_table_max
+default.General.api_create_table_mean
+default.General.api_create_table_mean_rate
+default.General.api_create_table_median
+default.General.api_create_table_min
+default.General.api_create_table_stddev
+default.General.api_drop_table_15min_rate
+default.General.api_drop_table_1min_rate
+default.General.api_drop_table_5min_rate
+default.General.api_drop_table_75thpercentile
+default.General.api_drop_table_95thpercentile
+default.General.api_drop_table_98thpercentile
+default.General.api_drop_table_999thpercentile
+default.General.api_drop_table_99thpercentile
+default.General.api_drop_table_count
+default.General.api_drop_table_max
+default.General.api_drop_table_mean
+default.General.api_drop_table_mean_rate
+default.General.api_drop_table_median
+default.General.api_drop_table_min
+default.General.api_drop_table_stddev
+default.General.api_get_all_databases_15min_rate
+default.General.api_get_all_databases_1min_rate
+default.General.api_get_all_databases_5min_rate
+default.General.api_get_all_databases_75thpercentile
+default.General.api_get_all_databases_95thpercentile
+default.General.api_get_all_databases_98thpercentile
+default.General.api_get_all_databases_999thpercentile
+default.General.api_get_all_databases_99thpercentile
+default.General.api_get_all_databases_count
+default.General.api_get_all_databases_max
+default.General.api_get_all_databases_mean
+default.General.api_get_all_databases_mean_rate
+default.General.api_get_all_databases_median
+default.General.api_get_all_databases_min
+default.General.api_get_all_databases_stddev
+default.General.api_get_database_15min_rate
+default.General.api_get_database_1min_rate
+default.General.api_get_database_5min_rate
+default.General.api_get_database_75thpercentile
+default.General.api_get_database_95thpercentile
+default.General.api_get_database_98thpercentile
+default.General.api_get_database_999thpercentile
+default.General.api_get_database_99thpercentile
+default.General.api_get_database_count
+default.General.api_get_database_max
+default.General.api_get_database_mean
+default.General.api_get_database_mean_rate
+default.General.api_get_database_median
+default.General.api_get_database_min
+default.General.api_get_database_stddev
+default.General.api_get_functions_15min_rate
+default.General.api_get_functions_1min_rate
+default.General.api_get_functions_5min_rate
+default.General.api_get_functions_75thpercentile
+default.General.api_get_functions_95thpercentile
+default.General.api_get_functions_98thpercentile
+default.General.api_get_functions_999thpercentile
+default.General.api_get_functions_99thpercentile
+default.General.api_get_functions_count
+default.General.api_get_functions_max
+default.General.api_get_functions_mean
+default.General.api_get_functions_mean_rate
+default.General.api_get_functions_median
+default.General.api_get_functions_min
+default.General.api_get_functions_stddev
+default.General.api_get_table_15min_rate
+default.General.api_get_table_1min_rate
+default.General.api_get_table_5min_rate
+default.General.api_get_table_75thpercentile
+default.General.api_get_table_95thpercentile
+default.General.api_get_table_98thpercentile
+default.General.api_get_table_999thpercentile
+default.General.api_get_table_99thpercentile
+default.General.api_get_table_count
+default.General.api_get_table_max
+default.General.api_get_table_mean
+default.General.api_get_table_mean_rate
+default.General.api_get_table_median
+default.General.api_get_table_min
+default.General.api_get_table_stddev
+default.General.api_get_tables_15min_rate
+default.General.api_get_tables_1min_rate
+default.General.api_get_tables_5min_rate
+default.General.api_get_tables_75thpercentile
+default.General.api_get_tables_95thpercentile
+default.General.api_get_tables_98thpercentile
+default.General.api_get_tables_999thpercentile
+default.General.api_get_tables_99thpercentile
+default.General.api_get_tables_count
+default.General.api_get_tables_max
+default.General.api_get_tables_mean
+default.General.api_get_tables_mean_rate
+default.General.api_get_tables_median
+default.General.api_get_tables_min
+default.General.api_get_tables_stddev
+default.General.buffers.direct.capacity
+default.General.buffers.direct.count
+default.General.buffers.direct.used
+default.General.buffers.mapped.capacity
+default.General.buffers.mapped.count
+default.General.buffers.mapped.used
+default.General.classLoading.loaded
+default.General.classLoading.unloaded
+default.General.create_total_count_tables
+default.General.delete_total_count_tables
+default.General.gc.PS-MarkSweep.count
+default.General.gc.PS-MarkSweep.time
+default.General.gc.PS-Scavenge.count
+default.General.gc.PS-Scavenge.time
+default.General.init_total_count_dbs
+default.General.init_total_count_partitions
+default.General.init_total_count_tables
+default.General.jvm.pause.extraSleepTime
+default.General.memory.heap.committed
+default.General.memory.heap.init
+default.General.memory.heap.max
+default.General.memory.heap.usage
+default.General.memory.heap.used
+default.General.memory.non-heap.committed
+default.General.memory.non-heap.init
+default.General.memory.non-heap.max
+default.General.memory.non-heap.usage
+default.General.memory.non-heap.used
+default.General.memory.pools.Code-Cache.usage
+default.General.memory.pools.Compressed-Class-Space.usage
+default.General.memory.pools.Metaspace.usage
+default.General.memory.pools.PS-Eden-Space.usage
+default.General.memory.pools.PS-Old-Gen.usage
+default.General.memory.pools.PS-Survivor-Space.usage
+default.General.memory.total.committed
+default.General.memory.total.init
+default.General.memory.total.max
+default.General.memory.total.used
+default.General.open_connections
+default.General.threads.blocked.count
+default.General.threads.count
+default.General.threads.daemon.count
+default.General.threads.deadlock.count
+default.General.threads.new.count
+default.General.threads.runnable.count
+default.General.threads.terminated.count
+default.General.threads.timed_waiting.count
+default.General.threads.waiting.count
+metricssystem.MetricsSystem.DroppedPubAll
+metricssystem.MetricsSystem.NumActiveSinks
+metricssystem.MetricsSystem.NumActiveSources
+metricssystem.MetricsSystem.NumAllSinks
+metricssystem.MetricsSystem.NumAllSources
+metricssystem.MetricsSystem.PublishAvgTime
+metricssystem.MetricsSystem.PublishNumOps
+metricssystem.MetricsSystem.Sink_timelineAvgTime
+metricssystem.MetricsSystem.Sink_timelineDropped
+metricssystem.MetricsSystem.Sink_timelineNumOps
+metricssystem.MetricsSystem.Sink_timelineQsize
+metricssystem.MetricsSystem.SnapshotAvgTime
+metricssystem.MetricsSystem.SnapshotNumOps
+ugi.UgiMetrics.GetGroupsAvgTime
+ugi.UgiMetrics.GetGroupsNumOps
+ugi.UgiMetrics.LoginFailureAvgTime
+ugi.UgiMetrics.LoginFailureNumOps
+ugi.UgiMetrics.LoginSuccessAvgTime
+ugi.UgiMetrics.LoginSuccessNumOps
+ugi.UgiMetrics.RenewalFailures
+ugi.UgiMetrics.RenewalFailuresTotal
\ No newline at end of file
diff --git a/ambari-metrics-timelineservice/src/main/resources/metrics_def/HIVESERVER2.dat b/ambari-metrics-timelineservice/src/main/resources/metrics_def/HIVESERVER2.dat
new file mode 100644
index 0000000..c48b512
--- /dev/null
+++ b/ambari-metrics-timelineservice/src/main/resources/metrics_def/HIVESERVER2.dat
@@ -0,0 +1,117 @@
+default.General.active_calls_api_get_all_databases
+default.General.active_calls_api_get_databases
+default.General.active_calls_api_get_functions
+default.General.api_get_all_databases_15min_rate
+default.General.api_get_all_databases_1min_rate
+default.General.api_get_all_databases_5min_rate
+default.General.api_get_all_databases_75thpercentile
+default.General.api_get_all_databases_95thpercentile
+default.General.api_get_all_databases_98thpercentile
+default.General.api_get_all_databases_999thpercentile
+default.General.api_get_all_databases_99thpercentile
+default.General.api_get_all_databases_count
+default.General.api_get_all_databases_max
+default.General.api_get_all_databases_mean
+default.General.api_get_all_databases_mean_rate
+default.General.api_get_all_databases_median
+default.General.api_get_all_databases_min
+default.General.api_get_all_databases_stddev
+default.General.api_get_databases_15min_rate
+default.General.api_get_databases_1min_rate
+default.General.api_get_databases_5min_rate
+default.General.api_get_databases_75thpercentile
+default.General.api_get_databases_95thpercentile
+default.General.api_get_databases_98thpercentile
+default.General.api_get_databases_999thpercentile
+default.General.api_get_databases_99thpercentile
+default.General.api_get_databases_count
+default.General.api_get_databases_max
+default.General.api_get_databases_mean
+default.General.api_get_databases_mean_rate
+default.General.api_get_databases_median
+default.General.api_get_databases_min
+default.General.api_get_databases_stddev
+default.General.api_get_functions_15min_rate
+default.General.api_get_functions_1min_rate
+default.General.api_get_functions_5min_rate
+default.General.api_get_functions_75thpercentile
+default.General.api_get_functions_95thpercentile
+default.General.api_get_functions_98thpercentile
+default.General.api_get_functions_999thpercentile
+default.General.api_get_functions_99thpercentile
+default.General.api_get_functions_count
+default.General.api_get_functions_max
+default.General.api_get_functions_mean
+default.General.api_get_functions_mean_rate
+default.General.api_get_functions_median
+default.General.api_get_functions_min
+default.General.api_get_functions_stddev
+default.General.buffers.direct.capacity
+default.General.buffers.direct.count
+default.General.buffers.direct.used
+default.General.buffers.mapped.capacity
+default.General.buffers.mapped.count
+default.General.buffers.mapped.used
+default.General.classLoading.loaded
+default.General.classLoading.unloaded
+default.General.exec_async_pool_size
+default.General.exec_async_queue_size
+default.General.gc.PS-MarkSweep.count
+default.General.gc.PS-MarkSweep.time
+default.General.gc.PS-Scavenge.count
+default.General.gc.PS-Scavenge.time
+default.General.init_total_count_dbs
+default.General.init_total_count_partitions
+default.General.init_total_count_tables
+default.General.jvm.pause.extraSleepTime
+default.General.memory.heap.committed
+default.General.memory.heap.init
+default.General.memory.heap.max
+default.General.memory.heap.usage
+default.General.memory.heap.used
+default.General.memory.non-heap.committed
+default.General.memory.non-heap.init
+default.General.memory.non-heap.max
+default.General.memory.non-heap.usage
+default.General.memory.non-heap.used
+default.General.memory.pools.Code-Cache.usage
+default.General.memory.pools.Compressed-Class-Space.usage
+default.General.memory.pools.Metaspace.usage
+default.General.memory.pools.PS-Eden-Space.usage
+default.General.memory.pools.PS-Old-Gen.usage
+default.General.memory.pools.PS-Survivor-Space.usage
+default.General.memory.total.committed
+default.General.memory.total.init
+default.General.memory.total.max
+default.General.memory.total.used
+default.General.open_connections
+default.General.threads.blocked.count
+default.General.threads.count
+default.General.threads.daemon.count
+default.General.threads.deadlock.count
+default.General.threads.new.count
+default.General.threads.runnable.count
+default.General.threads.terminated.count
+default.General.threads.timed_waiting.count
+default.General.threads.waiting.count
+metricssystem.MetricsSystem.DroppedPubAll
+metricssystem.MetricsSystem.NumActiveSinks
+metricssystem.MetricsSystem.NumActiveSources
+metricssystem.MetricsSystem.NumAllSinks
+metricssystem.MetricsSystem.NumAllSources
+metricssystem.MetricsSystem.PublishAvgTime
+metricssystem.MetricsSystem.PublishNumOps
+metricssystem.MetricsSystem.Sink_timelineAvgTime
+metricssystem.MetricsSystem.Sink_timelineDropped
+metricssystem.MetricsSystem.Sink_timelineNumOps
+metricssystem.MetricsSystem.Sink_timelineQsize
+metricssystem.MetricsSystem.SnapshotAvgTime
+metricssystem.MetricsSystem.SnapshotNumOps
+ugi.UgiMetrics.GetGroupsAvgTime
+ugi.UgiMetrics.GetGroupsNumOps
+ugi.UgiMetrics.LoginFailureAvgTime
+ugi.UgiMetrics.LoginFailureNumOps
+ugi.UgiMetrics.LoginSuccessAvgTime
+ugi.UgiMetrics.LoginSuccessNumOps
+ugi.UgiMetrics.RenewalFailures
+ugi.UgiMetrics.RenewalFailuresTotal
\ No newline at end of file
diff --git a/ambari-metrics-timelineservice/src/main/resources/metrics_def/HOST.dat b/ambari-metrics-timelineservice/src/main/resources/metrics_def/HOST.dat
index 9295692..3758140 100644
--- a/ambari-metrics-timelineservice/src/main/resources/metrics_def/HOST.dat
+++ b/ambari-metrics-timelineservice/src/main/resources/metrics_def/HOST.dat
@@ -1,13 +1,17 @@
+boottime
 bytes_in
 bytes_out
 cpu_idle
 cpu_intr
 cpu_nice
+cpu_num
 cpu_sintr
+cpu_steal
 cpu_system
 cpu_user
 cpu_wio
 disk_free
+disk_num
 disk_percent
 disk_total
 disk_used
@@ -18,7 +22,34 @@
 mem_cached
 mem_free
 mem_shared
+mem_total
+mem_used
 pkts_in
 pkts_out
+proc_run
+proc_total
+read_bps
+read_bytes
+read_count
+read_time
+sdisk_vda1_read_bytes
+sdisk_vda1_read_count
+sdisk_vda1_read_time
+sdisk_vda1_write_bytes
+sdisk_vda1_write_count
+sdisk_vda1_write_time
+sdisk_vdb_read_bytes
+sdisk_vdb_read_count
+sdisk_vdb_read_time
+sdisk_vdb_write_bytes
+sdisk_vdb_write_count
+sdisk_vdb_write_time
 swap_free
+swap_in
+swap_out
 swap_total
+swap_used
+write_bps
+write_bytes
+write_count
+write_time
diff --git a/ambari-metrics-timelineservice/src/main/resources/metrics_def/NAMENODE.dat b/ambari-metrics-timelineservice/src/main/resources/metrics_def/NAMENODE.dat
index 6e98a9c..ad35c45 100644
--- a/ambari-metrics-timelineservice/src/main/resources/metrics_def/NAMENODE.dat
+++ b/ambari-metrics-timelineservice/src/main/resources/metrics_def/NAMENODE.dat
@@ -31,8 +31,13 @@
 dfs.FSNamesystem.FilesTotal
 dfs.FSNamesystem.LastCheckpointTime
 dfs.FSNamesystem.LastWrittenTransactionId
+dfs.FSNamesystem.LockQueueLength
 dfs.FSNamesystem.MillisSinceLastLoadedEdits
 dfs.FSNamesystem.MissingBlocks
+dfs.FSNamesystem.MissingReplOneBlocks
+dfs.FSNamesystem.NumActiveClients
+dfs.FSNamesystem.NumFilesUnderConstruction
+dfs.FSNamesystem.NumTimedOutPendingReplications
 dfs.FSNamesystem.PendingDataNodeMessageCount
 dfs.FSNamesystem.PendingDeletionBlocks
 dfs.FSNamesystem.PendingReplicationBlocks
@@ -43,11 +48,182 @@
 dfs.FSNamesystem.StaleDataNodes
 dfs.FSNamesystem.TotalFiles
 dfs.FSNamesystem.TotalLoad
+dfs.FSNamesystem.TotalSyncCount
 dfs.FSNamesystem.TransactionsSinceLastCheckpoint
 dfs.FSNamesystem.TransactionsSinceLastLogRoll
 dfs.FSNamesystem.UnderReplicatedBlocks
+dfs.NNTopUserOpCounts.windowMs=1500000.op=*.TotalCount
+dfs.NNTopUserOpCounts.windowMs=1500000.op=*.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=*.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=*.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=*.user=hive.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=*.user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=*.user=yarn.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=contentSummary.TotalCount
+dfs.NNTopUserOpCounts.windowMs=1500000.op=contentSummary.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=create.TotalCount
+dfs.NNTopUserOpCounts.windowMs=1500000.op=create.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=create.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=create.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=delete.TotalCount
+dfs.NNTopUserOpCounts.windowMs=1500000.op=delete.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=delete.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=delete.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=delete.user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=getfileinfo.TotalCount
+dfs.NNTopUserOpCounts.windowMs=1500000.op=getfileinfo.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=getfileinfo.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=getfileinfo.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=getfileinfo.user=hive.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=getfileinfo.user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=getfileinfo.user=yarn.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=listEncryptionZones.TotalCount
+dfs.NNTopUserOpCounts.windowMs=1500000.op=listEncryptionZones.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=listStatus.TotalCount
+dfs.NNTopUserOpCounts.windowMs=1500000.op=listStatus.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=listStatus.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=listStatus.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=listStatus.user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=listStatus.user=yarn.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=mkdirs.TotalCount
+dfs.NNTopUserOpCounts.windowMs=1500000.op=mkdirs.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=mkdirs.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=mkdirs.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=mkdirs.user=hive.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=mkdirs.user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=mkdirs.user=yarn.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=open.TotalCount
+dfs.NNTopUserOpCounts.windowMs=1500000.op=open.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=open.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=open.user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=open.user=yarn.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=rename(options=[NONE]).TotalCount
+dfs.NNTopUserOpCounts.windowMs=1500000.op=rename(options=[NONE]).user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=rename.TotalCount
+dfs.NNTopUserOpCounts.windowMs=1500000.op=rename.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=rename.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=rename.user=yarn.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=setOwner.TotalCount
+dfs.NNTopUserOpCounts.windowMs=1500000.op=setOwner.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=setPermission.TotalCount
+dfs.NNTopUserOpCounts.windowMs=1500000.op=setPermission.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=setPermission.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=setPermission.user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=setReplication.TotalCount
+dfs.NNTopUserOpCounts.windowMs=1500000.op=setReplication.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=1500000.op=setTimes.TotalCount
+dfs.NNTopUserOpCounts.windowMs=1500000.op=setTimes.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=*.TotalCount
+dfs.NNTopUserOpCounts.windowMs=300000.op=*.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=*.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=*.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=*.user=hive.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=*.user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=*.user=yarn.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=contentSummary.TotalCount
+dfs.NNTopUserOpCounts.windowMs=300000.op=contentSummary.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=create.TotalCount
+dfs.NNTopUserOpCounts.windowMs=300000.op=create.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=create.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=create.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=delete.TotalCount
+dfs.NNTopUserOpCounts.windowMs=300000.op=delete.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=delete.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=delete.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=delete.user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=getfileinfo.TotalCount
+dfs.NNTopUserOpCounts.windowMs=300000.op=getfileinfo.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=getfileinfo.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=getfileinfo.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=getfileinfo.user=hive.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=getfileinfo.user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=getfileinfo.user=yarn.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=listEncryptionZones.TotalCount
+dfs.NNTopUserOpCounts.windowMs=300000.op=listEncryptionZones.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=listStatus.TotalCount
+dfs.NNTopUserOpCounts.windowMs=300000.op=listStatus.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=listStatus.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=listStatus.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=listStatus.user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=listStatus.user=yarn.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=mkdirs.TotalCount
+dfs.NNTopUserOpCounts.windowMs=300000.op=mkdirs.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=mkdirs.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=mkdirs.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=mkdirs.user=hive.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=mkdirs.user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=mkdirs.user=yarn.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=open.TotalCount
+dfs.NNTopUserOpCounts.windowMs=300000.op=open.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=open.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=open.user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=open.user=yarn.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=rename(options=[NONE]).TotalCount
+dfs.NNTopUserOpCounts.windowMs=300000.op=rename(options=[NONE]).user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=rename.TotalCount
+dfs.NNTopUserOpCounts.windowMs=300000.op=rename.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=rename.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=rename.user=yarn.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=setOwner.TotalCount
+dfs.NNTopUserOpCounts.windowMs=300000.op=setOwner.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=setPermission.TotalCount
+dfs.NNTopUserOpCounts.windowMs=300000.op=setPermission.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=setPermission.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=setPermission.user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=setReplication.TotalCount
+dfs.NNTopUserOpCounts.windowMs=300000.op=setReplication.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=300000.op=setTimes.TotalCount
+dfs.NNTopUserOpCounts.windowMs=300000.op=setTimes.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=*.TotalCount
+dfs.NNTopUserOpCounts.windowMs=60000.op=*.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=*.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=*.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=*.user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=*.user=yarn.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=create.TotalCount
+dfs.NNTopUserOpCounts.windowMs=60000.op=create.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=create.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=create.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=delete.TotalCount
+dfs.NNTopUserOpCounts.windowMs=60000.op=delete.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=delete.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=getfileinfo.TotalCount
+dfs.NNTopUserOpCounts.windowMs=60000.op=getfileinfo.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=getfileinfo.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=getfileinfo.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=getfileinfo.user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=getfileinfo.user=yarn.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=listStatus.TotalCount
+dfs.NNTopUserOpCounts.windowMs=60000.op=listStatus.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=listStatus.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=listStatus.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=listStatus.user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=listStatus.user=yarn.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=mkdirs.TotalCount
+dfs.NNTopUserOpCounts.windowMs=60000.op=mkdirs.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=mkdirs.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=mkdirs.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=mkdirs.user=mapred.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=open.TotalCount
+dfs.NNTopUserOpCounts.windowMs=60000.op=open.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=open.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=open.user=yarn.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=rename.TotalCount
+dfs.NNTopUserOpCounts.windowMs=60000.op=rename.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=rename.user=ams.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=setOwner.TotalCount
+dfs.NNTopUserOpCounts.windowMs=60000.op=setOwner.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=setPermission.TotalCount
+dfs.NNTopUserOpCounts.windowMs=60000.op=setPermission.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=setPermission.user=hdfs.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=setReplication.TotalCount
+dfs.NNTopUserOpCounts.windowMs=60000.op=setReplication.user=ambari-qa.count
+dfs.NNTopUserOpCounts.windowMs=60000.op=setTimes.TotalCount
+dfs.NNTopUserOpCounts.windowMs=60000.op=setTimes.user=ams.count
 dfs.namenode.AddBlockOps
 dfs.namenode.AllowSnapshotOps
+dfs.namenode.BlockOpsBatched
+dfs.namenode.BlockOpsQueued
 dfs.namenode.BlockReceivedAndDeletedOps
 dfs.namenode.BlockReportAvgTime
 dfs.namenode.BlockReportNumOps
@@ -65,6 +241,7 @@
 dfs.namenode.FilesDeleted
 dfs.namenode.FilesInGetListingOps
 dfs.namenode.FilesRenamed
+dfs.namenode.FilesTruncated
 dfs.namenode.FsImageLoadTime
 dfs.namenode.GetAdditionalDatanodeOps
 dfs.namenode.GetBlockLocations
@@ -83,15 +260,19 @@
 dfs.namenode.StorageBlockReportOps
 dfs.namenode.SyncsAvgTime
 dfs.namenode.SyncsNumOps
+dfs.namenode.TotalFileOps
 dfs.namenode.TransactionsAvgTime
 dfs.namenode.TransactionsBatchedInSync
 dfs.namenode.TransactionsNumOps
 jvm.JvmMetrics.GcCount
 jvm.JvmMetrics.GcCountConcurrentMarkSweep
 jvm.JvmMetrics.GcCountParNew
+jvm.JvmMetrics.GcNumInfoThresholdExceeded
+jvm.JvmMetrics.GcNumWarnThresholdExceeded
 jvm.JvmMetrics.GcTimeMillis
 jvm.JvmMetrics.GcTimeMillisConcurrentMarkSweep
 jvm.JvmMetrics.GcTimeMillisParNew
+jvm.JvmMetrics.GcTotalExtraSleepTime
 jvm.JvmMetrics.LogError
 jvm.JvmMetrics.LogFatal
 jvm.JvmMetrics.LogInfo
@@ -125,81 +306,91 @@
 rpc.RetryCache.NameNodeRetryCache.CacheCleared
 rpc.RetryCache.NameNodeRetryCache.CacheHit
 rpc.RetryCache.NameNodeRetryCache.CacheUpdated
-rpc.rpc.CallQueueLength
-rpc.rpc.NumOpenConnections
-rpc.rpc.ReceivedBytes
-rpc.rpc.RpcAuthenticationFailures
-rpc.rpc.RpcAuthenticationSuccesses
-rpc.rpc.RpcAuthorizationFailures
-rpc.rpc.RpcAuthorizationSuccesses
-rpc.rpc.RpcProcessingTimeAvgTime
-rpc.rpc.RpcProcessingTimeNumOps
-rpc.rpc.RpcQueueTimeAvgTime
-rpc.rpc.RpcQueueTimeNumOps
-rpc.rpc.SentBytes
-rpcdetailed.rpcdetailed.AbandonBlockAvgTime
-rpcdetailed.rpcdetailed.AbandonBlockNumOps
-rpcdetailed.rpcdetailed.AddBlockAvgTime
-rpcdetailed.rpcdetailed.AddBlockNumOps
-rpcdetailed.rpcdetailed.BlockReceivedAndDeletedAvgTime
-rpcdetailed.rpcdetailed.BlockReceivedAndDeletedNumOps
-rpcdetailed.rpcdetailed.BlockReportAvgTime
-rpcdetailed.rpcdetailed.BlockReportNumOps
-rpcdetailed.rpcdetailed.CommitBlockSynchronizationAvgTime
-rpcdetailed.rpcdetailed.CommitBlockSynchronizationNumOps
-rpcdetailed.rpcdetailed.CompleteAvgTime
-rpcdetailed.rpcdetailed.CompleteNumOps
-rpcdetailed.rpcdetailed.CreateAvgTime
-rpcdetailed.rpcdetailed.CreateNumOps
-rpcdetailed.rpcdetailed.DeleteAvgTime
-rpcdetailed.rpcdetailed.DeleteNumOps
-rpcdetailed.rpcdetailed.FsyncAvgTime
-rpcdetailed.rpcdetailed.FsyncNumOps
-rpcdetailed.rpcdetailed.GetAdditionalDatanodeAvgTime
-rpcdetailed.rpcdetailed.GetAdditionalDatanodeNumOps
-rpcdetailed.rpcdetailed.GetBlockLocationsAvgTime
-rpcdetailed.rpcdetailed.GetBlockLocationsNumOps
-rpcdetailed.rpcdetailed.GetEditLogManifestAvgTime
-rpcdetailed.rpcdetailed.GetEditLogManifestNumOps
-rpcdetailed.rpcdetailed.GetFileInfoAvgTime
-rpcdetailed.rpcdetailed.GetFileInfoNumOps
-rpcdetailed.rpcdetailed.GetListingAvgTime
-rpcdetailed.rpcdetailed.GetListingNumOps
-rpcdetailed.rpcdetailed.GetServerDefaultsAvgTime
-rpcdetailed.rpcdetailed.GetServerDefaultsNumOps
-rpcdetailed.rpcdetailed.GetTransactionIdAvgTime
-rpcdetailed.rpcdetailed.GetTransactionIdNumOps
-rpcdetailed.rpcdetailed.IsFileClosedAvgTime
-rpcdetailed.rpcdetailed.IsFileClosedNumOps
-rpcdetailed.rpcdetailed.MkdirsAvgTime
-rpcdetailed.rpcdetailed.MkdirsNumOps
-rpcdetailed.rpcdetailed.RecoverLeaseAvgTime
-rpcdetailed.rpcdetailed.RecoverLeaseNumOps
-rpcdetailed.rpcdetailed.RegisterDatanodeAvgTime
-rpcdetailed.rpcdetailed.RegisterDatanodeNumOps
-rpcdetailed.rpcdetailed.RenameAvgTime
-rpcdetailed.rpcdetailed.RenameNumOps
-rpcdetailed.rpcdetailed.RenewLeaseAvgTime
-rpcdetailed.rpcdetailed.RenewLeaseNumOps
-rpcdetailed.rpcdetailed.ReportBadBlocksAvgTime
-rpcdetailed.rpcdetailed.ReportBadBlocksNumOps
-rpcdetailed.rpcdetailed.RollEditLogAvgTime
-rpcdetailed.rpcdetailed.RollEditLogNumOps
-rpcdetailed.rpcdetailed.SendHeartbeatAvgTime
-rpcdetailed.rpcdetailed.SendHeartbeatNumOps
-rpcdetailed.rpcdetailed.SetSafeModeAvgTime
-rpcdetailed.rpcdetailed.SetSafeModeNumOps
-rpcdetailed.rpcdetailed.SetTimesAvgTime
-rpcdetailed.rpcdetailed.SetTimesNumOps
-rpcdetailed.rpcdetailed.UpdateBlockForPipelineAvgTime
-rpcdetailed.rpcdetailed.UpdateBlockForPipelineNumOps
-rpcdetailed.rpcdetailed.UpdatePipelineAvgTime
-rpcdetailed.rpcdetailed.UpdatePipelineNumOps
-rpcdetailed.rpcdetailed.VersionRequestAvgTime
-rpcdetailed.rpcdetailed.VersionRequestNumOps
+rpc.rpc.client.CallQueueLength
+rpc.rpc.client.NumOpenConnections
+rpc.rpc.client.ReceivedBytes
+rpc.rpc.client.RpcAuthenticationFailures
+rpc.rpc.client.RpcAuthenticationSuccesses
+rpc.rpc.client.RpcAuthorizationFailures
+rpc.rpc.client.RpcAuthorizationSuccesses
+rpc.rpc.client.RpcClientBackoff
+rpc.rpc.client.RpcProcessingTimeAvgTime
+rpc.rpc.client.RpcProcessingTimeNumOps
+rpc.rpc.client.RpcQueueTimeAvgTime
+rpc.rpc.client.RpcQueueTimeNumOps
+rpc.rpc.client.RpcSlowCalls
+rpc.rpc.client.SentBytes
+rpcdetailed.rpcdetailed.client.AddBlockAvgTime
+rpcdetailed.rpcdetailed.client.AddBlockNumOps
+rpcdetailed.rpcdetailed.client.BlockReceivedAndDeletedAvgTime
+rpcdetailed.rpcdetailed.client.BlockReceivedAndDeletedNumOps
+rpcdetailed.rpcdetailed.client.BlockReportAvgTime
+rpcdetailed.rpcdetailed.client.BlockReportNumOps
+rpcdetailed.rpcdetailed.client.CheckAccessAvgTime
+rpcdetailed.rpcdetailed.client.CheckAccessNumOps
+rpcdetailed.rpcdetailed.client.CommitBlockSynchronizationAvgTime
+rpcdetailed.rpcdetailed.client.CommitBlockSynchronizationNumOps
+rpcdetailed.rpcdetailed.client.CompleteAvgTime
+rpcdetailed.rpcdetailed.client.CompleteNumOps
+rpcdetailed.rpcdetailed.client.CreateAvgTime
+rpcdetailed.rpcdetailed.client.CreateNumOps
+rpcdetailed.rpcdetailed.client.DeleteAvgTime
+rpcdetailed.rpcdetailed.client.DeleteNumOps
+rpcdetailed.rpcdetailed.client.FsyncAvgTime
+rpcdetailed.rpcdetailed.client.FsyncNumOps
+rpcdetailed.rpcdetailed.client.GetBlockLocationsAvgTime
+rpcdetailed.rpcdetailed.client.GetBlockLocationsNumOps
+rpcdetailed.rpcdetailed.client.GetEditLogManifestAvgTime
+rpcdetailed.rpcdetailed.client.GetEditLogManifestNumOps
+rpcdetailed.rpcdetailed.client.GetFileInfoAvgTime
+rpcdetailed.rpcdetailed.client.GetFileInfoNumOps
+rpcdetailed.rpcdetailed.client.GetListingAvgTime
+rpcdetailed.rpcdetailed.client.GetListingNumOps
+rpcdetailed.rpcdetailed.client.GetServerDefaultsAvgTime
+rpcdetailed.rpcdetailed.client.GetServerDefaultsNumOps
+rpcdetailed.rpcdetailed.client.GetTransactionIdAvgTime
+rpcdetailed.rpcdetailed.client.GetTransactionIdNumOps
+rpcdetailed.rpcdetailed.client.IsRollingUpgradeAvgTime
+rpcdetailed.rpcdetailed.client.IsRollingUpgradeNumOps
+rpcdetailed.rpcdetailed.client.ListEncryptionZonesAvgTime
+rpcdetailed.rpcdetailed.client.ListEncryptionZonesNumOps
+rpcdetailed.rpcdetailed.client.MkdirsAvgTime
+rpcdetailed.rpcdetailed.client.MkdirsNumOps
+rpcdetailed.rpcdetailed.client.PathIsNotEmptyDirectoryExceptionAvgTime
+rpcdetailed.rpcdetailed.client.PathIsNotEmptyDirectoryExceptionNumOps
+rpcdetailed.rpcdetailed.client.RecoverLeaseAvgTime
+rpcdetailed.rpcdetailed.client.RecoverLeaseNumOps
+rpcdetailed.rpcdetailed.client.RegisterDatanodeAvgTime
+rpcdetailed.rpcdetailed.client.RegisterDatanodeNumOps
+rpcdetailed.rpcdetailed.client.Rename2AvgTime
+rpcdetailed.rpcdetailed.client.Rename2NumOps
+rpcdetailed.rpcdetailed.client.RenameAvgTime
+rpcdetailed.rpcdetailed.client.RenameNumOps
+rpcdetailed.rpcdetailed.client.RenewLeaseAvgTime
+rpcdetailed.rpcdetailed.client.RenewLeaseNumOps
+rpcdetailed.rpcdetailed.client.RetriableExceptionAvgTime
+rpcdetailed.rpcdetailed.client.RetriableExceptionNumOps
+rpcdetailed.rpcdetailed.client.RollEditLogAvgTime
+rpcdetailed.rpcdetailed.client.RollEditLogNumOps
+rpcdetailed.rpcdetailed.client.SafeModeExceptionAvgTime
+rpcdetailed.rpcdetailed.client.SafeModeExceptionNumOps
+rpcdetailed.rpcdetailed.client.SendHeartbeatAvgTime
+rpcdetailed.rpcdetailed.client.SendHeartbeatNumOps
+rpcdetailed.rpcdetailed.client.SetPermissionAvgTime
+rpcdetailed.rpcdetailed.client.SetPermissionNumOps
+rpcdetailed.rpcdetailed.client.SetReplicationAvgTime
+rpcdetailed.rpcdetailed.client.SetReplicationNumOps
+rpcdetailed.rpcdetailed.client.SetSafeModeAvgTime
+rpcdetailed.rpcdetailed.client.SetSafeModeNumOps
+rpcdetailed.rpcdetailed.client.SetTimesAvgTime
+rpcdetailed.rpcdetailed.client.SetTimesNumOps
+rpcdetailed.rpcdetailed.client.VersionRequestAvgTime
+rpcdetailed.rpcdetailed.client.VersionRequestNumOps
 ugi.UgiMetrics.GetGroupsAvgTime
 ugi.UgiMetrics.GetGroupsNumOps
 ugi.UgiMetrics.LoginFailureAvgTime
 ugi.UgiMetrics.LoginFailureNumOps
 ugi.UgiMetrics.LoginSuccessAvgTime
 ugi.UgiMetrics.LoginSuccessNumOps
+ugi.UgiMetrics.RenewalFailures
+ugi.UgiMetrics.RenewalFailuresTotal
\ No newline at end of file
diff --git a/ambari-metrics-timelineservice/src/main/resources/metrics_def/NODEMANAGER.dat b/ambari-metrics-timelineservice/src/main/resources/metrics_def/NODEMANAGER.dat
index 239b3d4..e6c699e 100644
--- a/ambari-metrics-timelineservice/src/main/resources/metrics_def/NODEMANAGER.dat
+++ b/ambari-metrics-timelineservice/src/main/resources/metrics_def/NODEMANAGER.dat
@@ -50,6 +50,14 @@
 rpc.rpc.RpcQueueTimeAvgTime
 rpc.rpc.RpcQueueTimeNumOps
 rpc.rpc.SentBytes
+rpcdetailed.rpcdetailed.GetContainerStatusesAvgTime
+rpcdetailed.rpcdetailed.GetContainerStatusesNumOps
+rpcdetailed.rpcdetailed.HeartbeatAvgTime
+rpcdetailed.rpcdetailed.HeartbeatNumOps
+rpcdetailed.rpcdetailed.StartContainersAvgTime
+rpcdetailed.rpcdetailed.StartContainersNumOps
+rpcdetailed.rpcdetailed.StopContainersAvgTime
+rpcdetailed.rpcdetailed.StopContainersNumOps
 ugi.UgiMetrics.GetGroupsAvgTime
 ugi.UgiMetrics.GetGroupsNumOps
 ugi.UgiMetrics.LoginFailureAvgTime
@@ -58,10 +66,18 @@
 ugi.UgiMetrics.LoginSuccessNumOps
 yarn.NodeManagerMetrics.AllocatedContainers
 yarn.NodeManagerMetrics.AllocatedGB
+yarn.NodeManagerMetrics.AllocatedVCores
 yarn.NodeManagerMetrics.AvailableGB
+yarn.NodeManagerMetrics.AvailableVCores
+yarn.NodeManagerMetrics.BadLocalDirs
+yarn.NodeManagerMetrics.BadLogDirs
+yarn.NodeManagerMetrics.ContainerLaunchDurationAvgTime
+yarn.NodeManagerMetrics.ContainerLaunchDurationNumOps
 yarn.NodeManagerMetrics.ContainersCompleted
 yarn.NodeManagerMetrics.ContainersFailed
 yarn.NodeManagerMetrics.ContainersIniting
 yarn.NodeManagerMetrics.ContainersKilled
 yarn.NodeManagerMetrics.ContainersLaunched
 yarn.NodeManagerMetrics.ContainersRunning
+yarn.NodeManagerMetrics.GoodLocalDirsDiskUtilizationPerc
+yarn.NodeManagerMetrics.GoodLogDirsDiskUtilizationPerc
diff --git a/ambari-metrics-timelineservice/src/main/resources/metrics_def/RESOURCEMANAGER.dat b/ambari-metrics-timelineservice/src/main/resources/metrics_def/RESOURCEMANAGER.dat
index ec698db..2e45c22 100644
--- a/ambari-metrics-timelineservice/src/main/resources/metrics_def/RESOURCEMANAGER.dat
+++ b/ambari-metrics-timelineservice/src/main/resources/metrics_def/RESOURCEMANAGER.dat
@@ -1,88 +1,159 @@
-jvm.JvmMetrics.GcCount 
-jvm.JvmMetrics.GcCountPS MarkSweep 
-jvm.JvmMetrics.GcCountPS Scavenge 
-jvm.JvmMetrics.GcTimeMillis 
-jvm.JvmMetrics.GcTimeMillisPS MarkSweep 
-jvm.JvmMetrics.GcTimeMillisPS Scavenge 
-jvm.JvmMetrics.LogError 
-jvm.JvmMetrics.LogFatal 
-jvm.JvmMetrics.LogInfo 
-jvm.JvmMetrics.LogWarn 
-jvm.JvmMetrics.MemHeapCommittedM 
-jvm.JvmMetrics.MemHeapMaxM 
-jvm.JvmMetrics.MemHeapUsedM 
-jvm.JvmMetrics.MemMaxM 
-jvm.JvmMetrics.MemNonHeapCommittedM 
-jvm.JvmMetrics.MemNonHeapMaxM 
-jvm.JvmMetrics.MemNonHeapUsedM 
-jvm.JvmMetrics.ThreadsBlocked 
-jvm.JvmMetrics.ThreadsNew 
-jvm.JvmMetrics.ThreadsRunnable 
-jvm.JvmMetrics.ThreadsTerminated 
-jvm.JvmMetrics.ThreadsTimedWaiting 
-jvm.JvmMetrics.ThreadsWaiting 
-metricssystem.MetricsSystem.DroppedPubAll 
-metricssystem.MetricsSystem.NumActiveSinks 
-metricssystem.MetricsSystem.NumActiveSources 
-metricssystem.MetricsSystem.NumAllSinks 
-metricssystem.MetricsSystem.NumAllSources 
-metricssystem.MetricsSystem.PublishAvgTime 
-metricssystem.MetricsSystem.PublishNumOps 
-metricssystem.MetricsSystem.Sink_timelineAvgTime 
-metricssystem.MetricsSystem.Sink_timelineDropped 
-metricssystem.MetricsSystem.Sink_timelineNumOps 
-metricssystem.MetricsSystem.Sink_timelineQsize 
-metricssystem.MetricsSystem.SnapshotAvgTime 
-metricssystem.MetricsSystem.SnapshotNumOps 
-rpc.rpc.CallQueueLength 
-rpc.rpc.NumOpenConnections 
-rpc.rpc.ReceivedBytes 
-rpc.rpc.RpcAuthenticationFailures 
-rpc.rpc.RpcAuthenticationSuccesses 
-rpc.rpc.RpcAuthorizationFailures 
-rpc.rpc.RpcAuthorizationSuccesses 
-rpc.rpc.RpcProcessingTimeAvgTime 
-rpc.rpc.RpcProcessingTimeNumOps 
-rpc.rpc.RpcQueueTimeAvgTime 
-rpc.rpc.RpcQueueTimeNumOps 
-rpc.rpc.SentBytes 
-rpcdetailed.rpcdetailed.NodeHeartbeatAvgTime 
-rpcdetailed.rpcdetailed.NodeHeartbeatNumOps 
-rpcdetailed.rpcdetailed.RegisterNodeManagerAvgTime 
-rpcdetailed.rpcdetailed.RegisterNodeManagerNumOps 
-ugi.UgiMetrics.GetGroupsAvgTime 
-ugi.UgiMetrics.GetGroupsNumOps 
-ugi.UgiMetrics.LoginFailureAvgTime 
-ugi.UgiMetrics.LoginFailureNumOps 
-ugi.UgiMetrics.LoginSuccessAvgTime 
-ugi.UgiMetrics.LoginSuccessNumOps 
-yarn.ClusterMetrics.NumActiveNMs 
-yarn.ClusterMetrics.NumDecommissionedNMs 
-yarn.ClusterMetrics.NumLostNMs 
-yarn.ClusterMetrics.NumRebootedNMs 
-yarn.ClusterMetrics.NumUnhealthyNMs 
-yarn.QueueMetrics.ActiveApplications 
-yarn.QueueMetrics.ActiveUsers 
-yarn.QueueMetrics.AggregateContainersAllocated 
-yarn.QueueMetrics.AggregateContainersReleased 
-yarn.QueueMetrics.AllocatedContainers 
-yarn.QueueMetrics.AllocatedMB 
-yarn.QueueMetrics.AllocatedVCores 
-yarn.QueueMetrics.AppsCompleted 
-yarn.QueueMetrics.AppsFailed 
-yarn.QueueMetrics.AppsKilled 
-yarn.QueueMetrics.AppsPending 
-yarn.QueueMetrics.AppsRunning 
-yarn.QueueMetrics.AppsSubmitted 
-yarn.QueueMetrics.AvailableMB 
-yarn.QueueMetrics.AvailableVCores 
-yarn.QueueMetrics.PendingContainers 
-yarn.QueueMetrics.PendingMB 
-yarn.QueueMetrics.PendingVCores 
-yarn.QueueMetrics.ReservedContainers 
-yarn.QueueMetrics.ReservedMB 
-yarn.QueueMetrics.ReservedVCores 
-yarn.QueueMetrics.running_0 
-yarn.QueueMetrics.running_1440 
-yarn.QueueMetrics.running_300 
-yarn.QueueMetrics.running_60
+vm.JvmMetrics.GcCount
+jvm.JvmMetrics.GcCountPS MarkSweep
+jvm.JvmMetrics.GcCountPS Scavenge
+jvm.JvmMetrics.GcTimeMillis
+jvm.JvmMetrics.GcTimeMillisPS MarkSweep
+jvm.JvmMetrics.GcTimeMillisPS Scavenge
+jvm.JvmMetrics.LogError
+jvm.JvmMetrics.LogFatal
+jvm.JvmMetrics.LogInfo
+jvm.JvmMetrics.LogWarn
+jvm.JvmMetrics.MemHeapCommittedM
+jvm.JvmMetrics.MemHeapMaxM
+jvm.JvmMetrics.MemHeapUsedM
+jvm.JvmMetrics.MemMaxM
+jvm.JvmMetrics.MemNonHeapCommittedM
+jvm.JvmMetrics.MemNonHeapMaxM
+jvm.JvmMetrics.MemNonHeapUsedM
+jvm.JvmMetrics.ThreadsBlocked
+jvm.JvmMetrics.ThreadsNew
+jvm.JvmMetrics.ThreadsRunnable
+jvm.JvmMetrics.ThreadsTerminated
+jvm.JvmMetrics.ThreadsTimedWaiting
+jvm.JvmMetrics.ThreadsWaiting
+metricssystem.MetricsSystem.DroppedPubAll
+metricssystem.MetricsSystem.NumActiveSinks
+metricssystem.MetricsSystem.NumActiveSources
+metricssystem.MetricsSystem.NumAllSinks
+metricssystem.MetricsSystem.NumAllSources
+metricssystem.MetricsSystem.PublishAvgTime
+metricssystem.MetricsSystem.PublishNumOps
+metricssystem.MetricsSystem.Sink_timelineAvgTime
+metricssystem.MetricsSystem.Sink_timelineDropped
+metricssystem.MetricsSystem.Sink_timelineNumOps
+metricssystem.MetricsSystem.Sink_timelineQsize
+metricssystem.MetricsSystem.SnapshotAvgTime
+metricssystem.MetricsSystem.SnapshotNumOps
+rpc.rpc.CallQueueLength
+rpc.rpc.NumOpenConnections
+rpc.rpc.ReceivedBytes
+rpc.rpc.RpcAuthenticationFailures
+rpc.rpc.RpcAuthenticationSuccesses
+rpc.rpc.RpcAuthorizationFailures
+rpc.rpc.RpcAuthorizationSuccesses
+rpc.rpc.RpcClientBackoff
+rpc.rpc.RpcProcessingTimeAvgTime
+rpc.rpc.RpcProcessingTimeNumOps
+rpc.rpc.RpcQueueTimeAvgTime
+rpc.rpc.RpcQueueTimeNumOps
+rpc.rpc.RpcSlowCalls
+rpc.rpc.SentBytes
+rpcdetailed.rpcdetailed.AllocateAvgTime
+rpcdetailed.rpcdetailed.AllocateNumOps
+rpcdetailed.rpcdetailed.FinishApplicationMasterAvgTime
+rpcdetailed.rpcdetailed.FinishApplicationMasterNumOps
+rpcdetailed.rpcdetailed.GetApplicationReportAvgTime
+rpcdetailed.rpcdetailed.GetApplicationReportNumOps
+rpcdetailed.rpcdetailed.GetClusterMetricsAvgTime
+rpcdetailed.rpcdetailed.GetClusterMetricsNumOps
+rpcdetailed.rpcdetailed.GetClusterNodesAvgTime
+rpcdetailed.rpcdetailed.GetClusterNodesNumOps
+rpcdetailed.rpcdetailed.GetNewApplicationAvgTime
+rpcdetailed.rpcdetailed.GetNewApplicationNumOps
+rpcdetailed.rpcdetailed.GetQueueInfoAvgTime
+rpcdetailed.rpcdetailed.GetQueueInfoNumOps
+rpcdetailed.rpcdetailed.GetQueueUserAclsAvgTime
+rpcdetailed.rpcdetailed.GetQueueUserAclsNumOps
+rpcdetailed.rpcdetailed.NodeHeartbeatAvgTime
+rpcdetailed.rpcdetailed.NodeHeartbeatNumOps
+rpcdetailed.rpcdetailed.RegisterApplicationMasterAvgTime
+rpcdetailed.rpcdetailed.RegisterApplicationMasterNumOps
+rpcdetailed.rpcdetailed.RegisterNodeManagerAvgTime
+rpcdetailed.rpcdetailed.RegisterNodeManagerNumOps
+rpcdetailed.rpcdetailed.SubmitApplicationAvgTime
+rpcdetailed.rpcdetailed.SubmitApplicationNumOps
+ugi.UgiMetrics.GetGroupsAvgTime
+ugi.UgiMetrics.GetGroupsNumOps
+ugi.UgiMetrics.LoginFailureAvgTime
+ugi.UgiMetrics.LoginFailureNumOps
+ugi.UgiMetrics.LoginSuccessAvgTime
+ugi.UgiMetrics.LoginSuccessNumOps
+ugi.UgiMetrics.RenewalFailures
+ugi.UgiMetrics.RenewalFailuresTotal
+yarn.ClusterMetrics.AMLaunchDelayAvgTime
+yarn.ClusterMetrics.AMLaunchDelayNumOps
+yarn.ClusterMetrics.AMRegisterDelayAvgTime
+yarn.ClusterMetrics.AMRegisterDelayNumOps
+yarn.ClusterMetrics.NumActiveNMs
+yarn.ClusterMetrics.NumDecommissionedNMs
+yarn.ClusterMetrics.NumLostNMs
+yarn.ClusterMetrics.NumRebootedNMs
+yarn.ClusterMetrics.NumUnhealthyNMs
+yarn.QueueMetrics.Queue=root.AMResourceLimitMB
+yarn.QueueMetrics.Queue=root.AMResourceLimitVCores
+yarn.QueueMetrics.Queue=root.ActiveApplications
+yarn.QueueMetrics.Queue=root.ActiveUsers
+yarn.QueueMetrics.Queue=root.AggregateContainersAllocated
+yarn.QueueMetrics.Queue=root.AggregateContainersReleased
+yarn.QueueMetrics.Queue=root.AggregateNodeLocalContainersAllocated
+yarn.QueueMetrics.Queue=root.AggregateOffSwitchContainersAllocated
+yarn.QueueMetrics.Queue=root.AggregateRackLocalContainersAllocated
+yarn.QueueMetrics.Queue=root.AllocatedContainers
+yarn.QueueMetrics.Queue=root.AllocatedMB
+yarn.QueueMetrics.Queue=root.AllocatedVCores
+yarn.QueueMetrics.Queue=root.AppAttemptFirstContainerAllocationDelayAvgTime
+yarn.QueueMetrics.Queue=root.AppAttemptFirstContainerAllocationDelayNumOps
+yarn.QueueMetrics.Queue=root.AppsCompleted
+yarn.QueueMetrics.Queue=root.AppsFailed
+yarn.QueueMetrics.Queue=root.AppsKilled
+yarn.QueueMetrics.Queue=root.AppsPending
+yarn.QueueMetrics.Queue=root.AppsRunning
+yarn.QueueMetrics.Queue=root.AppsSubmitted
+yarn.QueueMetrics.Queue=root.AvailableMB
+yarn.QueueMetrics.Queue=root.AvailableVCores
+yarn.QueueMetrics.Queue=root.PendingContainers
+yarn.QueueMetrics.Queue=root.PendingMB
+yarn.QueueMetrics.Queue=root.PendingVCores
+yarn.QueueMetrics.Queue=root.ReservedContainers
+yarn.QueueMetrics.Queue=root.ReservedMB
+yarn.QueueMetrics.Queue=root.ReservedVCores
+yarn.QueueMetrics.Queue=root.UsedAMResourceMB
+yarn.QueueMetrics.Queue=root.UsedAMResourceVCores
+yarn.QueueMetrics.Queue=root.default.AMResourceLimitMB
+yarn.QueueMetrics.Queue=root.default.AMResourceLimitVCores
+yarn.QueueMetrics.Queue=root.default.ActiveApplications
+yarn.QueueMetrics.Queue=root.default.ActiveUsers
+yarn.QueueMetrics.Queue=root.default.AggregateContainersAllocated
+yarn.QueueMetrics.Queue=root.default.AggregateContainersReleased
+yarn.QueueMetrics.Queue=root.default.AggregateNodeLocalContainersAllocated
+yarn.QueueMetrics.Queue=root.default.AggregateOffSwitchContainersAllocated
+yarn.QueueMetrics.Queue=root.default.AggregateRackLocalContainersAllocated
+yarn.QueueMetrics.Queue=root.default.AllocatedContainers
+yarn.QueueMetrics.Queue=root.default.AllocatedMB
+yarn.QueueMetrics.Queue=root.default.AllocatedVCores
+yarn.QueueMetrics.Queue=root.default.AppAttemptFirstContainerAllocationDelayAvgTime
+yarn.QueueMetrics.Queue=root.default.AppAttemptFirstContainerAllocationDelayNumOps
+yarn.QueueMetrics.Queue=root.default.AppsCompleted
+yarn.QueueMetrics.Queue=root.default.AppsFailed
+yarn.QueueMetrics.Queue=root.default.AppsKilled
+yarn.QueueMetrics.Queue=root.default.AppsPending
+yarn.QueueMetrics.Queue=root.default.AppsRunning
+yarn.QueueMetrics.Queue=root.default.AppsSubmitted
+yarn.QueueMetrics.Queue=root.default.AvailableMB
+yarn.QueueMetrics.Queue=root.default.AvailableVCores
+yarn.QueueMetrics.Queue=root.default.PendingContainers
+yarn.QueueMetrics.Queue=root.default.PendingMB
+yarn.QueueMetrics.Queue=root.default.PendingVCores
+yarn.QueueMetrics.Queue=root.default.ReservedContainers
+yarn.QueueMetrics.Queue=root.default.ReservedMB
+yarn.QueueMetrics.Queue=root.default.ReservedVCores
+yarn.QueueMetrics.Queue=root.default.UsedAMResourceMB
+yarn.QueueMetrics.Queue=root.default.UsedAMResourceVCores
+yarn.QueueMetrics.Queue=root.default.running_0
+yarn.QueueMetrics.Queue=root.default.running_1440
+yarn.QueueMetrics.Queue=root.default.running_300
+yarn.QueueMetrics.Queue=root.default.running_60
+yarn.QueueMetrics.Queue=root.running_0
+yarn.QueueMetrics.Queue=root.running_1440
+yarn.QueueMetrics.Queue=root.running_300
+yarn.QueueMetrics.Queue=root.running_60
\ No newline at end of file
diff --git a/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/loadsimulator/jmetertest/jmetertest/AMSJMeterLoadTest.java b/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/loadsimulator/jmetertest/jmetertest/AMSJMeterLoadTest.java
index c34ac20..7f168f2 100644
--- a/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/loadsimulator/jmetertest/jmetertest/AMSJMeterLoadTest.java
+++ b/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/loadsimulator/jmetertest/jmetertest/AMSJMeterLoadTest.java
@@ -45,8 +45,10 @@
   private List<AppGetMetric> appGetMetrics;
   private Properties amsJmeterProperties = null;
 
-  public AMSJMeterLoadTest(String testType, String userDefinedPropertiesFile) {
+  public AMSJMeterLoadTest(Map<String, String> args) {
 
+    String testType = args.get("type");
+    String userDefinedPropertiesFile = args.get("amsJmeterPropertiesFile");
     if (null == userDefinedPropertiesFile || userDefinedPropertiesFile.isEmpty()) {
       this.amsJmeterProperties = readProperties(PROPERTIES_FILE);
     } else {
@@ -60,12 +62,14 @@
       this.runTest(numInstances);
     } else {                    //PUT Metrics simulator
       Map<String, String> mapArgs = new HashMap<String, String>();
-      mapArgs.put("hostName", amsJmeterProperties.getProperty("host-prefix"));
-      mapArgs.put("numberOfHosts", amsJmeterProperties.getProperty("num-hosts"));
-      mapArgs.put("metricsHostName", amsJmeterProperties.getProperty("ams-host-port"));
-      mapArgs.put("collectInterval", amsJmeterProperties.getProperty("collection-interval"));
-      mapArgs.put("sendInterval", amsJmeterProperties.getProperty("send-interval"));
-      mapArgs.put("master", amsJmeterProperties.getProperty("create-master"));
+      mapArgs.put("hostName", (args.get("host-prefix") != null) ? args.get("host-prefix") : amsJmeterProperties.getProperty("host-prefix"));
+      mapArgs.put("minHostIndex", (args.get("min-host-index") != null) ? args.get("min-host-index") : amsJmeterProperties.getProperty("min-host-index"));
+      mapArgs.put("numberOfHosts", (args.get("num-hosts") != null) ? args.get("num-hosts") : amsJmeterProperties.getProperty("num-hosts"));
+      mapArgs.put("metricsHostName", (args.get("ams-host-port") != null) ? args.get("ams-host-port") : amsJmeterProperties.getProperty("ams-host-port"));
+      mapArgs.put("collectInterval", (args.get("collection-interval") != null) ? args.get("collection-interval") : amsJmeterProperties.getProperty("collection-interval"));
+      mapArgs.put("sendInterval", (args.get("send-interval") != null) ? args.get("send-interval") : amsJmeterProperties.getProperty("send-interval"));
+      mapArgs.put("master", (args.get("create-master") != null) ? args.get("create-master") : amsJmeterProperties.getProperty("create-master"));
+      System.out.println("AMS Load Simulation Parameters : " + mapArgs);
       MetricsLoadSimulator.startTest(mapArgs);
     }
   }
@@ -165,9 +169,7 @@
    */
   public static void main(String[] args) {
     Map<String, String> mapArgs = parseArgs(args);
-    String testType = mapArgs.get("type");
-    String amsJmeterPropertiesFile = mapArgs.get("amsJmeterPropertiesFile");
-    new AMSJMeterLoadTest(testType, amsJmeterPropertiesFile);
+    new AMSJMeterLoadTest(mapArgs);
   }
 
   private static Map<String, String> parseArgs(String[] args) {
@@ -178,14 +180,7 @@
     } else {
       for (int i = 0; i < args.length; i += 2) {
         String arg = args[i];
-        if (arg.equals("-t")) {
-          mapProps.put("type", args[i + 1]);
-        } else if (arg.equals("-p")) {
-          mapProps.put("amsJmeterPropertiesFile", args[i + 1]);
-        } else {
-          printUsage();
-          throw new IllegalArgumentException("Unexpected argument, See usage message.");
-        }
+        mapProps.put(arg.substring(1), args[i+1]);
       }
     }
     return mapProps;
@@ -194,7 +189,8 @@
   public static void printUsage() {
     System.err.println("Usage: java AMSJmeterLoadTest [OPTIONS]");
     System.err.println("Options: ");
-    System.err.println("[-t type (S=>Sink/U=>UI)] [-p amsJmeterPropertiesFile (Optional)]");
+    System.err.println("[--t type (S=>Sink/U=>UI)] [-ams-host-port localhost:6188] [-min-host-index 2] [-host-prefix TestHost.] [-num-hosts 2] " +
+      "[-create-master true] [-collection-interval 10000 ] [-send-interval 60000 ] [-p amsJmeterPropertiesFile (Optional)]");
   }
 
 }
diff --git a/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricsFilterTest.java b/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricsFilterTest.java
index 73c66fe..81da5c8 100644
--- a/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricsFilterTest.java
+++ b/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricsFilterTest.java
@@ -147,4 +147,74 @@
     Assert.assertTrue(TimelineMetricsFilter.acceptMetric(timelineMetric));
   }
 
+  @Test
+  public void testHybridFilter() throws Exception {
+
+    // Whitelist Apps - namenode, nimbus
+    // Blacklist Apps - datanode, kafka_broker
+    // Accept ams-hbase whitelisting.
+    // Reject non whitelisted metrics from non whitelisted Apps (Say hbase)
+
+    TimelineMetricConfiguration configuration = EasyMock.createNiceMock(TimelineMetricConfiguration.class);
+
+    Configuration metricsConf = new Configuration();
+    metricsConf.set("timeline.metrics.apps.whitelist", "namenode,nimbus");
+    metricsConf.set("timeline.metrics.apps.blacklist", "datanode,kafka_broker");
+    URL fileUrl = ClassLoader.getSystemResource("test_data/metric_whitelist.dat");
+    metricsConf.set("timeline.metrics.whitelist.file", fileUrl.getPath());
+    expect(configuration.getMetricsConf()).andReturn(metricsConf).once();
+
+    Set<String> whitelist = new HashSet();
+    whitelist.add("regionserver.Server.Delete_99th_percentile");
+    whitelist.add("regionserver.Server.Delete_max");
+    whitelist.add("regionserver.Server.Delete_mean");
+    expect(configuration.getAmshbaseWhitelist()).andReturn(whitelist).once();
+
+    replay(configuration);
+
+    TimelineMetricsFilter.initializeMetricFilter(configuration);
+
+    TimelineMetric timelineMetric = new TimelineMetric();
+
+    //Test App Whitelisting
+    timelineMetric.setMetricName("metric.a.b.c");
+    timelineMetric.setAppId("namenode");
+    Assert.assertTrue(TimelineMetricsFilter.acceptMetric(timelineMetric));
+
+    timelineMetric.setMetricName("metric.d.e.f");
+    timelineMetric.setAppId("nimbus");
+    Assert.assertTrue(TimelineMetricsFilter.acceptMetric(timelineMetric));
+
+    //Test App Blacklisting
+    timelineMetric.setMetricName("metric.d.e.f");
+    timelineMetric.setAppId("datanode");
+    Assert.assertFalse(TimelineMetricsFilter.acceptMetric(timelineMetric));
+
+    timelineMetric.setMetricName("metric.d.e.f");
+    timelineMetric.setAppId("kafka_broker");
+    Assert.assertFalse(TimelineMetricsFilter.acceptMetric(timelineMetric));
+
+
+    //Test ams-hbase Whitelisting
+    timelineMetric.setMetricName("regionserver.Server.Delete_max");
+    timelineMetric.setAppId("ams-hbase");
+    Assert.assertTrue(TimelineMetricsFilter.acceptMetric(timelineMetric));
+
+    timelineMetric.setMetricName("regionserver.Server.Delete_min3333");
+    timelineMetric.setAppId("ams-hbase");
+    Assert.assertFalse(TimelineMetricsFilter.acceptMetric(timelineMetric));
+
+    timelineMetric.setMetricName("regionserver.Server.Delete_mean");
+    timelineMetric.setAppId("ams-hbase");
+    Assert.assertTrue(TimelineMetricsFilter.acceptMetric(timelineMetric));
+
+    //Test Metric Whitelisting
+    timelineMetric.setMetricName("regionserver.WAL.SyncTime_max");
+    timelineMetric.setAppId("hbase");
+    Assert.assertTrue(TimelineMetricsFilter.acceptMetric(timelineMetric));
+
+    timelineMetric.setMetricName("regionserver.WAL.metric.not.needed");
+    timelineMetric.setAppId("hbase");
+    Assert.assertFalse(TimelineMetricsFilter.acceptMetric(timelineMetric));
+  }
 }
diff --git a/ambari-metrics-timelineservice/src/test/resources/loadsimulator/README b/ambari-metrics-timelineservice/src/test/resources/loadsimulator/README
index 39e5365..eec3e5d 100644
--- a/ambari-metrics-timelineservice/src/test/resources/loadsimulator/README
+++ b/ambari-metrics-timelineservice/src/test/resources/loadsimulator/README
@@ -41,7 +41,7 @@
  2. Build the ambari-metrics-timelineservice jar.
  3. Invoke the test using the command as follows.
 
-   java -cp lib/*:ambari-metrics-timelineservice-<version>.jar org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.loadsimulator.jmeter.AMSJMeterLoadTest -t <S/U>
+   java -cp lib/*:ambari-metrics-timelineservice-<version>.jar org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.loadsimulator.jmetertest.jmetertest.AMSJMeterLoadTest -t <S/U>
 
    lib/* -> All the dependency JARs generated for the ambari-metrics-timelineservice JAR.
    -t option => S-Sink simulator or U-UI simulator
diff --git a/ambari-metrics-timelineservice/src/test/resources/loadsimulator/ams-jmeter.properties b/ambari-metrics-timelineservice/src/test/resources/loadsimulator/ams-jmeter.properties
index 2c44d89..04293df 100644
--- a/ambari-metrics-timelineservice/src/test/resources/loadsimulator/ams-jmeter.properties
+++ b/ambari-metrics-timelineservice/src/test/resources/loadsimulator/ams-jmeter.properties
@@ -17,13 +17,13 @@
 # limitations under the License.
 
 #AMS information
-ams-host-port=c6402.ambari.apache.org:6188
+ams-host-port=localhost:6188
 ams-path=/ws/v1/timeline/metrics
 
 # Host Information, using the host-prefix, num-hosts and <MASTER>-host
 # Hosts in this case will be TestHost0, TestHost1
 # For example NAMENODE, NIMBUS,HBASE MASTER,RESOURCEMANAGER host will be TestHost0
-host-prefix=TestHost
+host-prefix=TestHost.
 host-suffix=
 min-host-index=0
 num-hosts=2
@@ -33,8 +33,8 @@
 RESOURCEMANAGER-host=0
 
 # PUT Metric / Sinks config
-collection-interval=1000
-send-interval=3000
+collection-interval=10000
+send-interval=60000
 create-master=true
 
 # GET Metric / Client Apps config
diff --git a/ambari-metrics-timelineservice/src/test/resources/test_data/metric_whitelist.dat b/ambari-metrics-timelineservice/src/test/resources/test_data/metric_whitelist.dat
index 9f5e25c..2c36031 100644
--- a/ambari-metrics-timelineservice/src/test/resources/test_data/metric_whitelist.dat
+++ b/ambari-metrics-timelineservice/src/test/resources/test_data/metric_whitelist.dat
@@ -2,5 +2,7 @@
 cpu_user
 mem_cached
 mem_free
+regionserver.WAL.SyncTime_max
+regionserver.WAL.SyncTime_mean
 ._p_dfs.FSNamesystem.*
 ._p_jvm.JvmMetrics*
\ No newline at end of file