ambari-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aonis...@apache.org
Subject [2/3] AMBARI-4881. Clean up JMXPropertyProvider hacks for STORM metrics (aonishuk)
Date Thu, 02 Oct 2014 12:03:22 GMT
http://git-wip-us.apache.org/repos/asf/ambari/blob/cc4dfe35/ambari-server/src/main/resources/stacks/HDP/2.2/services/STORM/metrics.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/STORM/metrics.json b/ambari-server/src/main/resources/stacks/HDP/2.2/services/STORM/metrics.json
new file mode 100644
index 0000000..f1127d4
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/STORM/metrics.json
@@ -0,0 +1,1079 @@
+{
+  "STORM_UI_SERVER": {
+    "Component": [
+      {
+        "type": "org.apache.ambari.server.controller.metrics.RestMetricsPropertyProvider",
+        "properties" : {
+          "default_port": "8744",
+          "port_config_type": "storm-site",
+          "port_property_name": "storm.port",
+          "protocol": "http"
+        },
+        "metrics": {
+          "metrics/api/v1/cluster/summary/tasksTotal":
+          {
+            "metric": "/api/v1/cluster/summary##tasksTotal",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/api/v1/topology/summary":
+          {
+            "metric": "/api/v1/topology/summary?field=topologies##topologies",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/api/v1/cluster/summary/slotsTotal": {
+            "metric": "/api/v1/cluster/summary##slotsTotal",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/api/v1/cluster/summary/slotsFree": {
+            "metric": "/api/v1/cluster/summary##slotsFree",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/api/v1/cluster/summary/supervisors": {
+            "metric": "/api/v1/cluster/summary##supervisors",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/api/v1/cluster/summary/executorsTotal": {
+            "metric": "/api/v1/cluster/summary##executorsTotal",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/api/v1/cluster/summary/slotsUsed": {
+            "metric": "/api/v1/cluster/summary##slotsUsed",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/api/v1/cluster/summary/nimbusUptime": {
+            "metric": "/api/v1/cluster/summary##nimbusUptime",
+            "pointInTime": true,
+            "temporal": false
+          }
+        }
+      }
+    ],
+    "HostComponent": [
+      {
+        "type": "org.apache.ambari.server.controller.metrics.RestMetricsPropertyProvider",
+        "properties" : {
+          "default_port": "8744",
+          "port_config_type": "storm-site",
+          "port_property_name": "storm.port",
+          "protocol": "http"
+        },
+        "metrics": {
+          "metrics/api/v1/cluster/summary/tasksTotal":
+          {
+            "metric": "/api/v1/cluster/summary##tasksTotal",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/api/v1/topology/summary":
+          {
+            "metric": "/api/v1/topology/summary?field=topologies##topologies",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/api/v1/cluster/summary/slotsTotal": {
+            "metric": "/api/v1/cluster/summary##slotsTotal",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/api/v1/cluster/summary/slotsFree": {
+            "metric": "/api/v1/cluster/summary##slotsFree",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/api/v1/cluster/summary/supervisors": {
+            "metric": "/api/v1/cluster/summary##supervisors",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/api/v1/cluster/summary/executorsTotal": {
+            "metric": "/api/v1/cluster/summary##executorsTotal",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/api/v1/cluster/summary/slotsUsed": {
+            "metric": "/api/v1/cluster/summary##slotsUsed",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/api/v1/cluster/summary/nimbusUptime": {
+            "metric": "/api/v1/cluster/summary##nimbusUptime",
+            "pointInTime": true,
+            "temporal": false
+          }
+        }
+      }
+    ]
+  },
+  "NIMBUS": {
+    "Component": [
+      {
+        "type": "ganglia",
+        "metrics": {
+          "metrics/boottime": {
+            "metric": "boottime",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/bytes_in": {
+            "metric": "bytes_in",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/bytes_out": {
+            "metric": "bytes_out",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_aidle": {
+            "metric": "cpu_aidle",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_idle": {
+            "metric": "cpu_idle",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_nice": {
+            "metric": "cpu_nice",
+            "pointInTime": true,
+            "temporal": true
+          },
+
+          "metrics/cpu/cpu_num": {
+            "metric": "cpu_num",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_speed": {
+            "metric": "cpu_speed",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_system": {
+            "metric": "cpu_system",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_user": {
+            "metric": "cpu_user",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_wio": {
+            "metric": "cpu_wio",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/disk/disk_free": {
+            "metric": "disk_free",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/disk/disk_total": {
+            "metric": "disk_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/load_fifteen": {
+            "metric": "load_fifteen",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/load_five": {
+            "metric": "load_five",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/load_one": {
+            "metric": "load_one",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_buffers": {
+            "metric": "mem_buffers",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_cached": {
+            "metric": "mem_cached",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_free": {
+            "metric": "mem_free",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_shared": {
+            "metric": "mem_shared",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_total": {
+            "metric": "mem_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/disk/part_max_used": {
+            "metric": "part_max_used",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/pkts_in": {
+            "metric": "pkts_in",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/pkts_out": {
+            "metric": "pkts_out",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/process/proc_run": {
+            "metric": "proc_run",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/process/proc_total": {
+            "metric": "proc_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/swap_free": {
+            "metric": "swap_free",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/swap_total": {
+            "metric": "swap_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/memory/heap/committed": {
+            "metric": "Nimbus.JVM.Memory.Heap.committed",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/memory/heap/init": {
+            "metric": "Nimbus.JVM.Memory.Heap.init",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/memory/heap/max": {
+            "metric": "Nimbus.JVM.Memory.Heap.max",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/memory/heap/used": {
+            "metric": "Nimbus.JVM.Memory.Heap.used",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/memory/nonheap/committed": {
+            "metric": "Nimbus.JVM.Memory.NonHeap.committed",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/memory/nonheap/init": {
+            "metric": "Nimbus.JVM.Memory.NonHeap.init",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/memory/nonheap/max": {
+            "metric": "Nimbus.JVM.Memory.NonHeap.max",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/memory/nonheap/used": {
+            "metric": "Nimbus.JVM.Memory.NonHeap.used",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/os/processcputime": {
+            "metric": "Nimbus.JVM.OS.ProcessCpuTime",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/threading/daemonthreadcount": {
+            "metric": "Nimbus.JVM.Threading.DaemonThreadCount",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/threading/threadcount": {
+            "metric": "Nimbus.JVM.Threading.ThreadCount",
+            "pointInTime": true,
+            "temporal": true
+          },
+
+          "metrics/storm/nimbus/freeslots": {
+            "metric": "Free Slots",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/supervisors": {
+            "metric": "Supervisors",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/topologies": {
+            "metric": "Topologies",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/totalexecutors": {
+            "metric": "Total Executors",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/totalslots": {
+            "metric": "Total Slots",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/totaltasks": {
+            "metric": "Total Tasks",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/usedslots": {
+            "metric": "Used Slots",
+            "pointInTime": true,
+            "temporal": true
+          }
+        }
+      }
+    ],
+    "HostComponent": [
+      {
+        "type": "ganglia",
+        "metrics": {
+          "metrics/boottime": {
+            "metric": "boottime",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/bytes_in": {
+            "metric": "bytes_in",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/bytes_out": {
+            "metric": "bytes_out",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_aidle": {
+            "metric": "cpu_aidle",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_idle": {
+            "metric": "cpu_idle",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_nice": {
+            "metric": "cpu_nice",
+            "pointInTime": true,
+            "temporal": true
+          },
+
+          "metrics/cpu/cpu_num": {
+            "metric": "cpu_num",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_speed": {
+            "metric": "cpu_speed",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_system": {
+            "metric": "cpu_system",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_user": {
+            "metric": "cpu_user",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_wio": {
+            "metric": "cpu_wio",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/disk/disk_free": {
+            "metric": "disk_free",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/disk/disk_total": {
+            "metric": "disk_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/load_fifteen": {
+            "metric": "load_fifteen",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/load_five": {
+            "metric": "load_five",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/load_one": {
+            "metric": "load_one",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_buffers": {
+            "metric": "mem_buffers",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_cached": {
+            "metric": "mem_cached",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_free": {
+            "metric": "mem_free",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_shared": {
+            "metric": "mem_shared",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_total": {
+            "metric": "mem_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/disk/part_max_used": {
+            "metric": "part_max_used",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/pkts_in": {
+            "metric": "pkts_in",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/pkts_out": {
+            "metric": "pkts_out",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/process/proc_run": {
+            "metric": "proc_run",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/process/proc_total": {
+            "metric": "proc_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/swap_free": {
+            "metric": "swap_free",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/swap_total": {
+            "metric": "swap_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/memory/heap/committed": {
+            "metric": "Nimbus.JVM.Memory.Heap.committed",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/memory/heap/init": {
+            "metric": "Nimbus.JVM.Memory.Heap.init",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/memory/heap/max": {
+            "metric": "Nimbus.JVM.Memory.Heap.max",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/memory/heap/used": {
+            "metric": "Nimbus.JVM.Memory.Heap.used",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/memory/nonheap/committed": {
+            "metric": "Nimbus.JVM.Memory.NonHeap.committed",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/memory/nonheap/init": {
+            "metric": "Nimbus.JVM.Memory.NonHeap.init",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/memory/nonheap/max": {
+            "metric": "Nimbus.JVM.Memory.NonHeap.max",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/memory/nonheap/used": {
+            "metric": "Nimbus.JVM.Memory.NonHeap.used",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/os/processcputime": {
+            "metric": "Nimbus.JVM.OS.ProcessCpuTime",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/threading/daemonthreadcount": {
+            "metric": "Nimbus.JVM.Threading.DaemonThreadCount",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/nimbus/jvm/threading/threadcount": {
+            "metric": "Nimbus.JVM.Threading.ThreadCount",
+            "pointInTime": true,
+            "temporal": true
+          }
+
+        }
+      }
+    ]
+  },
+  "SUPERVISOR": {
+    "Component": [
+      {
+        "type": "ganglia",
+        "metrics": {
+          "metrics/boottime": {
+            "metric": "boottime",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/bytes_in": {
+            "metric": "bytes_in",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/bytes_out": {
+            "metric": "bytes_out",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_aidle": {
+            "metric": "cpu_aidle",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_idle": {
+            "metric": "cpu_idle",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_nice": {
+            "metric": "cpu_nice",
+            "pointInTime": true,
+            "temporal": true
+          },
+
+          "metrics/cpu/cpu_num": {
+            "metric": "cpu_num",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_speed": {
+            "metric": "cpu_speed",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_system": {
+            "metric": "cpu_system",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_user": {
+            "metric": "cpu_user",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_wio": {
+            "metric": "cpu_wio",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/disk/disk_free": {
+            "metric": "disk_free",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/disk/disk_total": {
+            "metric": "disk_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/load_fifteen": {
+            "metric": "load_fifteen",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/load_five": {
+            "metric": "load_five",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/load_one": {
+            "metric": "load_one",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_buffers": {
+            "metric": "mem_buffers",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_cached": {
+            "metric": "mem_cached",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_free": {
+            "metric": "mem_free",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_shared": {
+            "metric": "mem_shared",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_total": {
+            "metric": "mem_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/disk/part_max_used": {
+            "metric": "part_max_used",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/pkts_in": {
+            "metric": "pkts_in",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/pkts_out": {
+            "metric": "pkts_out",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/process/proc_run": {
+            "metric": "proc_run",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/process/proc_total": {
+            "metric": "proc_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/swap_free": {
+            "metric": "swap_free",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/swap_total": {
+            "metric": "swap_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/memory/heap/committed": {
+            "metric": "Supervisor.JVM.Memory.Heap.committed",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/memory/heap/init": {
+            "metric": "Supervisor.JVM.Memory.Heap.init",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/memory/heap/max": {
+            "metric": "Supervisor.JVM.Memory.Heap.max",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/memory/heap/used": {
+            "metric": "Supervisor.JVM.Memory.Heap.used",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/memory/nonheap/committed": {
+            "metric": "Supervisor.JVM.Memory.NonHeap.committed",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/memory/nonheap/init": {
+            "metric": "Supervisor.JVM.Memory.NonHeap.init",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/memory/nonheap/max": {
+            "metric": "Supervisor.JVM.Memory.NonHeap.max",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/memory/nonheap/used": {
+            "metric": "Supervisor.JVM.Memory.NonHeap.used",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/os/processcputime": {
+            "metric": "Supervisor.JVM.OS.ProcessCpuTime",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/threading/daemonthreadcount": {
+            "metric": "Supervisor.JVM.Threading.DaemonThreadCount",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/threading/threadcount": {
+            "metric": "Supervisor.JVM.Threading.ThreadCount",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/memory/heap/committed": {
+            "metric": "Worker.(.+).JVM.Memory.Heap.committed",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/memory/heap/init": {
+            "metric": "Worker.(.+).JVM.Memory.Heap.init",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/memory/heap/max": {
+            "metric": "Worker.(.+).JVM.Memory.Heap.max",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/memory/heap/used": {
+            "metric": "Worker.(.+).JVM.Memory.Heap.used",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/memory/nonheap/committed": {
+            "metric": "Worker.(.+).JVM.Memory.NonHeap.committed",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/memory/nonheap/init": {
+            "metric": "Worker.(.+).JVM.Memory.NonHeap.init",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/memory/nonheap/max": {
+            "metric": "Worker.(.+).JVM.Memory.NonHeap.max",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/memory/nonheap/used": {
+            "metric": "Worker.(.+).JVM.Memory.NonHeap.used",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/os/processcputime": {
+            "metric": "Worker.(.+).JVM.OS.ProcessCpuTime",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/threading/daemonthreadcount": {
+            "metric": "Worker.(.+).JVM.Threading.DaemonThreadCount",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/threading/threadcount": {
+            "metric": "Worker.(.+).JVM.Threading.ThreadCount",
+            "pointInTime": true,
+            "temporal": true
+          }
+
+
+        }
+      }
+    ],
+    "HostComponent": [
+      {
+        "type": "ganglia",
+        "metrics": {
+          "metrics/boottime": {
+            "metric": "boottime",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/bytes_in": {
+            "metric": "bytes_in",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/bytes_out": {
+            "metric": "bytes_out",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_aidle": {
+            "metric": "cpu_aidle",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_idle": {
+            "metric": "cpu_idle",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_nice": {
+            "metric": "cpu_nice",
+            "pointInTime": true,
+            "temporal": true
+          },
+
+          "metrics/cpu/cpu_num": {
+            "metric": "cpu_num",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_speed": {
+            "metric": "cpu_speed",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_system": {
+            "metric": "cpu_system",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_user": {
+            "metric": "cpu_user",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_wio": {
+            "metric": "cpu_wio",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/disk/disk_free": {
+            "metric": "disk_free",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/disk/disk_total": {
+            "metric": "disk_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/load_fifteen": {
+            "metric": "load_fifteen",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/load_five": {
+            "metric": "load_five",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/load_one": {
+            "metric": "load_one",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_buffers": {
+            "metric": "mem_buffers",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_cached": {
+            "metric": "mem_cached",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_free": {
+            "metric": "mem_free",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_shared": {
+            "metric": "mem_shared",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_total": {
+            "metric": "mem_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/disk/part_max_used": {
+            "metric": "part_max_used",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/pkts_in": {
+            "metric": "pkts_in",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/pkts_out": {
+            "metric": "pkts_out",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/process/proc_run": {
+            "metric": "proc_run",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/process/proc_total": {
+            "metric": "proc_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/swap_free": {
+            "metric": "swap_free",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/swap_total": {
+            "metric": "swap_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/memory/heap/committed": {
+            "metric": "Supervisor.JVM.Memory.Heap.committed",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/memory/heap/init": {
+            "metric": "Supervisor.JVM.Memory.Heap.init",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/memory/heap/max": {
+            "metric": "Supervisor.JVM.Memory.Heap.max",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/memory/heap/used": {
+            "metric": "Supervisor.JVM.Memory.Heap.used",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/memory/nonheap/committed": {
+            "metric": "Supervisor.JVM.Memory.NonHeap.committed",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/memory/nonheap/init": {
+            "metric": "Supervisor.JVM.Memory.NonHeap.init",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/memory/nonheap/max": {
+            "metric": "Supervisor.JVM.Memory.NonHeap.max",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/memory/nonheap/used": {
+            "metric": "Supervisor.JVM.Memory.NonHeap.used",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/os/processcputime": {
+            "metric": "Supervisor.JVM.OS.ProcessCpuTime",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/threading/daemonthreadcount": {
+            "metric": "Supervisor.JVM.Threading.DaemonThreadCount",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/supervisor/jvm/threading/threadcount": {
+            "metric": "Supervisor.JVM.Threading.ThreadCount",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/memory/heap/committed": {
+            "metric": "Worker.(.+).JVM.Memory.Heap.committed",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/memory/heap/init": {
+            "metric": "Worker.(.+).JVM.Memory.Heap.init",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/memory/heap/max": {
+            "metric": "Worker.(.+).JVM.Memory.Heap.max",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/memory/heap/used": {
+            "metric": "Worker.(.+).JVM.Memory.Heap.used",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/memory/nonheap/committed": {
+            "metric": "Worker.(.+).JVM.Memory.NonHeap.committed",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/memory/nonheap/init": {
+            "metric": "Worker.(.+).JVM.Memory.NonHeap.init",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/memory/nonheap/max": {
+            "metric": "Worker.(.+).JVM.Memory.NonHeap.max",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/memory/nonheap/used": {
+            "metric": "Worker.(.+).JVM.Memory.NonHeap.used",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/os/processcputime": {
+            "metric": "Worker.(.+).JVM.OS.ProcessCpuTime",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/threading/daemonthreadcount": {
+            "metric": "Worker.(.+).JVM.Threading.DaemonThreadCount",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/storm/worker/$1/jvm/threading/threadcount": {
+            "metric": "Worker.(.+).JVM.Threading.ThreadCount",
+            "pointInTime": true,
+            "temporal": true
+          }
+        }
+      }
+    ]
+  }
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/cc4dfe35/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackDefinedPropertyProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackDefinedPropertyProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackDefinedPropertyProviderTest.java
index 2a086ae..85a32a6 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackDefinedPropertyProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackDefinedPropertyProviderTest.java
@@ -33,7 +33,7 @@ import org.apache.ambari.server.controller.ganglia.GangliaPropertyProvider;
 import org.apache.ambari.server.controller.ganglia.GangliaPropertyProviderTest.TestGangliaHostProvider;
 import org.apache.ambari.server.controller.jmx.JMXPropertyProvider;
 import org.apache.ambari.server.controller.jmx.TestStreamProvider;
-import org.apache.ambari.server.controller.jmx.JMXPropertyProviderTest.TestJMXHostProvider;
+import org.apache.ambari.server.controller.metrics.JMXPropertyProviderTest;
 import org.apache.ambari.server.controller.spi.Predicate;
 import org.apache.ambari.server.controller.spi.PropertyProvider;
 import org.apache.ambari.server.controller.spi.Request;
@@ -65,9 +65,9 @@ import com.google.inject.persist.PersistService;
 public class StackDefinedPropertyProviderTest {
   private static final String HOST_COMPONENT_HOST_NAME_PROPERTY_ID = "HostRoles/host_name";
   private static final String HOST_COMPONENT_COMPONENT_NAME_PROPERTY_ID = "HostRoles/component_name";
-  private static final String HOST_COMPONENT_STATE_PROPERTY_ID = "HostRoles/state";    
+  private static final String HOST_COMPONENT_STATE_PROPERTY_ID = "HostRoles/state";
+
 
-  
   private Clusters clusters = null;
   private Injector injector = null;
 
@@ -78,13 +78,13 @@ public class StackDefinedPropertyProviderTest {
     injector = Guice.createInjector(module);
     injector.getInstance(GuiceJpaInitializer.class);
     StackDefinedPropertyProvider.init(injector);
-    
+
     clusters = injector.getInstance(Clusters.class);
     clusters.addCluster("c1");
-    
+
     Cluster cluster = clusters.getCluster("c1");
     cluster.setDesiredStackVersion(new StackId("HDP-2.0.5"));
-    
+
     clusters.addHost("h1");
     Host host = clusters.getHost("h1");
     Map<String, String> hostAttributes = new HashMap<String, String>();
@@ -92,88 +92,87 @@ public class StackDefinedPropertyProviderTest {
     hostAttributes.put("os_release_version", "6.3");
     host.setHostAttributes(hostAttributes);
     host.persist();
-    
+
     clusters.mapHostToCluster("h1", "c1");
   }
-  
+
   @After
   public void teardown() throws Exception {
-    injector.getInstance(PersistService.class).stop();    
+    injector.getInstance(PersistService.class).stop();
   }
-  
+
   @Test
   public void testPopulateHostComponentResources() throws Exception {
-    TestJMXHostProvider tj = new TestJMXHostProvider(true);
+    JMXPropertyProviderTest.TestJMXHostProvider tj = new JMXPropertyProviderTest.TestJMXHostProvider(true);
     TestGangliaHostProvider tg = new TestGangliaHostProvider();
-    
+    JMXPropertyProviderTest.TestMetricsHostProvider tm = new JMXPropertyProviderTest.TestMetricsHostProvider();
+
     StackDefinedPropertyProvider sdpp = new StackDefinedPropertyProvider(
-        Resource.Type.HostComponent, tj, tg, new CombinedStreamProvider(),
+        Resource.Type.HostComponent, tj, tg, tm, new CombinedStreamProvider(),
         "HostRoles/cluster_name", "HostRoles/host_name", "HostRoles/component_name", "HostRoles/state", null, null);
-    
+
     Resource resource = new ResourceImpl(Resource.Type.HostComponent);
 
     resource.setProperty("HostRoles/cluster_name", "c1");
     resource.setProperty("HostRoles/host_name", "h1");
     resource.setProperty("HostRoles/component_name", "NAMENODE");
     resource.setProperty("HostRoles/state", "STARTED");
-    
+
     // request with an empty set should get all supported properties
     Request request = PropertyHelper.getReadRequest(Collections.<String>emptySet(), new HashMap<String, TemporalInfo>());
 
     Set<Resource> set = sdpp.populateResources(Collections.singleton(resource), request, null);
     Assert.assertEquals(1, set.size());
-    
+
     Resource res = set.iterator().next();
-    
+
     Map<String, Map<String, Object>> values = res.getPropertiesMap();
-    
+
     Assert.assertTrue("Expected JMX metric 'metrics/dfs/FSNamesystem'", values.containsKey("metrics/dfs/FSNamesystem"));
     Assert.assertTrue("Expected JMX metric 'metrics/dfs/namenode'", values.containsKey("metrics/dfs/namenode"));
     Assert.assertTrue("Expected Ganglia metric 'metrics/rpcdetailed'", values.containsKey("metrics/rpcdetailed"));
   }
-  
-  
+
+
   @Test
   public void testCustomProviders() throws Exception {
-    
+
     StackDefinedPropertyProvider sdpp = new StackDefinedPropertyProvider(
-        Resource.Type.HostComponent, null, null, new CombinedStreamProvider(),
+        Resource.Type.HostComponent, null, null, null, new CombinedStreamProvider(),
         "HostRoles/cluster_name", "HostRoles/host_name", "HostRoles/component_name", "HostRoles/state",
         new EmptyPropertyProvider(), new EmptyPropertyProvider());
-    
+
     Resource resource = new ResourceImpl(Resource.Type.HostComponent);
 
     resource.setProperty("HostRoles/cluster_name", "c1");
     resource.setProperty("HostRoles/host_name", "h1");
     resource.setProperty("HostRoles/component_name", "DATANODE");
     resource.setProperty("HostRoles/state", "STARTED");
-    
+
     // request with an empty set should get all supported properties
     Request request = PropertyHelper.getReadRequest(Collections.<String>emptySet(), new HashMap<String, TemporalInfo>());
 
     Set<Resource> set = sdpp.populateResources(Collections.singleton(resource), request, null);
     Assert.assertEquals(1, set.size());
-    
+
     Resource res = set.iterator().next();
-    
+
     Map<String, Map<String, Object>> values = res.getPropertiesMap();
     Assert.assertTrue(values.containsKey("foo/type1"));
     Assert.assertTrue(values.containsKey("foo/type2"));
     Assert.assertTrue(values.containsKey("foo/type3"));
     Assert.assertFalse(values.containsKey("foo/type4"));
-    
+
     Assert.assertTrue(values.get("foo/type1").containsKey("name"));
     Assert.assertTrue(values.get("foo/type2").containsKey("name"));
     Assert.assertTrue(values.get("foo/type3").containsKey("name"));
 
     Assert.assertEquals("value1", values.get("foo/type1").get("name"));
-    Assert.assertEquals("value2", values.get("foo/type2").get("name"));
-    Assert.assertEquals("value3", values.get("foo/type3").get("name"));
-    
+
   }
-  
 
-  
+
+
   private static class CombinedStreamProvider implements StreamProvider {
 
     @Override
@@ -193,12 +192,12 @@ public class StackDefinedPropertyProviderTest {
       return readFrom(spec);
     }
   }
-  
+
   private static class EmptyPropertyProvider implements PropertyProvider {
 
     @Override
     public Set<Resource> populateResources(Set<Resource> resources,
-        Request request, Predicate predicate) throws SystemException {
+                                           Request request, Predicate predicate) throws SystemException {
       // TODO Auto-generated method stub
       return null;
     }
@@ -210,19 +209,19 @@ public class StackDefinedPropertyProviderTest {
     }
 
   }
-  
+
   /**
    * Test for empty constructor.  Public since instantiated via reflection.
    */
   public static class CustomMetricProvider1 implements PropertyProvider {
     @Override
     public Set<Resource> populateResources(Set<Resource> resources,
-        Request request, Predicate predicate) throws SystemException {
-      
+                                           Request request, Predicate predicate) throws SystemException {
+
       for (Resource r : resources) {
         r.setProperty("foo/type1/name", "value1");
       }
-      
+
       return resources;
     }
 
@@ -237,14 +236,14 @@ public class StackDefinedPropertyProviderTest {
    */
   public static class CustomMetricProvider2 implements PropertyProvider {
     private Map<String, String> providerProperties = null;
-    
+
     public CustomMetricProvider2(Map<String, String> properties, Map<String, Metric> metrics) {
       providerProperties = properties;
     }
 
     @Override
     public Set<Resource> populateResources(Set<Resource> resources,
-        Request request, Predicate predicate) throws SystemException {
+                                           Request request, Predicate predicate) throws SystemException {
       for (Resource r : resources) {
         r.setProperty("foo/type2/name", providerProperties.get("Type2.Metric.Name"));
       }
@@ -263,7 +262,7 @@ public class StackDefinedPropertyProviderTest {
   public static class CustomMetricProvider3 implements PropertyProvider {
     private static CustomMetricProvider3 instance = null;
     private Map<String, String> providerProperties = new HashMap<String, String>();
-    
+
     public static CustomMetricProvider3 getInstance(Map<String, String> properties, Map<String, Metric> metrics) {
       if (null == instance) {
         instance = new CustomMetricProvider3();
@@ -271,10 +270,10 @@ public class StackDefinedPropertyProviderTest {
       }
       return instance;
     }
-    
+
     @Override
     public Set<Resource> populateResources(Set<Resource> resources,
-        Request request, Predicate predicate) throws SystemException {
+                                           Request request, Predicate predicate) throws SystemException {
       for (Resource r : resources) {
         r.setProperty("foo/type3/name", providerProperties.get("Type3.Metric.Name"));
       }
@@ -286,18 +285,20 @@ public class StackDefinedPropertyProviderTest {
       return Collections.emptySet();
     }
   }
-  
+
   @Test
   public void testPopulateResources_HDP2() throws Exception {
-    
+
     StreamProvider  streamProvider = new TestStreamProvider();
-    TestJMXHostProvider hostProvider = new TestJMXHostProvider(true);
+    JMXPropertyProviderTest.TestJMXHostProvider hostProvider = new JMXPropertyProviderTest.TestJMXHostProvider(true);
     TestGangliaHostProvider gangliaHostProvider = new TestGangliaHostProvider();
+    JMXPropertyProviderTest.TestMetricsHostProvider metricsHostProvider = new JMXPropertyProviderTest.TestMetricsHostProvider();
 
     StackDefinedPropertyProvider propertyProvider = new StackDefinedPropertyProvider(
         Resource.Type.HostComponent,
         hostProvider,
         gangliaHostProvider,
+        metricsHostProvider,
         streamProvider,
         PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
         PropertyHelper.getPropertyId("HostRoles", "host_name"),
@@ -325,7 +326,7 @@ public class StackDefinedPropertyProviderTest {
     Assert.assertEquals(8192,  resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root", "AvailableMB")));
     Assert.assertEquals(1,  resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root", "AvailableVCores")));
     Assert.assertEquals(2,  resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root", "AppsSubmitted")));
-    
+
     Assert.assertEquals(1,  resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/ClusterMetrics", "NumActiveNMs")));
     Assert.assertEquals(0,  resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/ClusterMetrics", "NumDecommissionedNMs")));
     Assert.assertEquals(0,  resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/ClusterMetrics", "NumLostNMs")));
@@ -346,18 +347,20 @@ public class StackDefinedPropertyProviderTest {
     request = PropertyHelper.getReadRequest(Collections.<String>emptySet());
 
     Assert.assertEquals(1, propertyProvider.populateResources(Collections.singleton(resource), request, null).size());
-  }  
-  
+  }
+
   @Test
   public void testPopulateResources_HDP2_params() throws Exception {
     TestStreamProvider  streamProvider = new TestStreamProvider();
-    TestJMXHostProvider hostProvider = new TestJMXHostProvider(false);
+    JMXPropertyProviderTest.TestJMXHostProvider hostProvider = new JMXPropertyProviderTest.TestJMXHostProvider(false);
     TestGangliaHostProvider gangliaHostProvider = new TestGangliaHostProvider();
+    JMXPropertyProviderTest.TestMetricsHostProvider metricsHostProvider = new JMXPropertyProviderTest.TestMetricsHostProvider();
 
     StackDefinedPropertyProvider propertyProvider = new StackDefinedPropertyProvider(
         Resource.Type.HostComponent,
         hostProvider,
         gangliaHostProvider,
+        metricsHostProvider,
         streamProvider,
         PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
         PropertyHelper.getPropertyId("HostRoles", "host_name"),
@@ -384,31 +387,33 @@ public class StackDefinedPropertyProviderTest {
     Assert.assertEquals(8192, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root", "AvailableMB")));
     Assert.assertEquals(1,    resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root", "AvailableVCores")));
     Assert.assertEquals(2,    resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root", "AppsSubmitted")));
-    
+
     Assert.assertEquals(15,   resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root/default", "AggregateContainersAllocated")));
     Assert.assertEquals(12,   resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root/default", "AggregateContainersReleased")));
     Assert.assertEquals(8192, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root/default", "AvailableMB")));
     Assert.assertEquals(1,    resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root/default", "AvailableVCores")));
     Assert.assertEquals(47,   resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root/default", "AppsSubmitted")));
-    
+
     Assert.assertEquals(4,    resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root/second_queue", "AggregateContainersAllocated")));
     Assert.assertEquals(4,    resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root/second_queue", "AggregateContainersReleased")));
     Assert.assertEquals(6048, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root/second_queue", "AvailableMB")));
     Assert.assertEquals(1,    resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root/second_queue", "AvailableVCores")));
     Assert.assertEquals(1,    resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root/second_queue", "AppsSubmitted")));
-  }  
+  }
 
 
   @Test
   public void testPopulateResources_HDP2_params_singleProperty() throws Exception {
     TestStreamProvider  streamProvider = new TestStreamProvider();
-    TestJMXHostProvider hostProvider = new TestJMXHostProvider(false);
+    JMXPropertyProviderTest.TestJMXHostProvider hostProvider = new JMXPropertyProviderTest.TestJMXHostProvider(false);
     TestGangliaHostProvider gangliaHostProvider = new TestGangliaHostProvider();
+    JMXPropertyProviderTest.TestMetricsHostProvider metricsHostProvider = new JMXPropertyProviderTest.TestMetricsHostProvider();
 
     StackDefinedPropertyProvider propertyProvider = new StackDefinedPropertyProvider(
         Resource.Type.HostComponent,
         hostProvider,
         gangliaHostProvider,
+        metricsHostProvider,
         streamProvider,
         PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
         PropertyHelper.getPropertyId("HostRoles", "host_name"),
@@ -434,17 +439,19 @@ public class StackDefinedPropertyProviderTest {
     Assert.assertEquals(8192, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root", "AvailableMB")));
     Assert.assertNull(resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root", "AvailableVCores")));
   }
-  
+
   @Test
   public void testPopulateResources_HDP2_params_category() throws Exception {
     TestStreamProvider  streamProvider = new TestStreamProvider();
-    TestJMXHostProvider hostProvider = new TestJMXHostProvider(false);
+    JMXPropertyProviderTest.TestJMXHostProvider hostProvider = new JMXPropertyProviderTest.TestJMXHostProvider(false);
     TestGangliaHostProvider gangliaHostProvider = new TestGangliaHostProvider();
+    JMXPropertyProviderTest.TestMetricsHostProvider metricsHostProvider = new JMXPropertyProviderTest.TestMetricsHostProvider();
 
     StackDefinedPropertyProvider propertyProvider = new StackDefinedPropertyProvider(
         Resource.Type.HostComponent,
         hostProvider,
         gangliaHostProvider,
+        metricsHostProvider,
         streamProvider,
         PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
         PropertyHelper.getPropertyId("HostRoles", "host_name"),
@@ -489,13 +496,15 @@ public class StackDefinedPropertyProviderTest {
   @Test
   public void testPopulateResources_HDP2_params_category2() throws Exception {
     TestStreamProvider  streamProvider = new TestStreamProvider();
-    TestJMXHostProvider hostProvider = new TestJMXHostProvider(false);
+    JMXPropertyProviderTest.TestJMXHostProvider hostProvider = new JMXPropertyProviderTest.TestJMXHostProvider(false);
     TestGangliaHostProvider gangliaHostProvider = new TestGangliaHostProvider();
+    JMXPropertyProviderTest.TestMetricsHostProvider metricsHostProvider = new JMXPropertyProviderTest.TestMetricsHostProvider();
 
     StackDefinedPropertyProvider propertyProvider = new StackDefinedPropertyProvider(
         Resource.Type.HostComponent,
         hostProvider,
         gangliaHostProvider,
+        metricsHostProvider,
         streamProvider,
         PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
         PropertyHelper.getPropertyId("HostRoles", "host_name"),
@@ -541,18 +550,20 @@ public class StackDefinedPropertyProviderTest {
     Assert.assertNull(resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root/second_queue", "AvailableMB")));
     Assert.assertNull(resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root/second_queue", "AvailableVCores")));
     Assert.assertNull(resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/yarn/Queue/root/second_queue", "AppsSubmitted")));
-  }  
+  }
 
   @Test
   public void testPopulateResources_jmx_JournalNode() throws Exception {
     TestStreamProvider  streamProvider = new TestStreamProvider();
-    TestJMXHostProvider hostProvider = new TestJMXHostProvider(false);
+    JMXPropertyProviderTest.TestJMXHostProvider hostProvider = new JMXPropertyProviderTest.TestJMXHostProvider(false);
     TestGangliaHostProvider gangliaHostProvider = new TestGangliaHostProvider();
+    JMXPropertyProviderTest.TestMetricsHostProvider metricsHostProvider = new JMXPropertyProviderTest.TestMetricsHostProvider();
 
     StackDefinedPropertyProvider propertyProvider = new StackDefinedPropertyProvider(
         Resource.Type.HostComponent,
         hostProvider,
         gangliaHostProvider,
+        metricsHostProvider,
         streamProvider,
         PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
         PropertyHelper.getPropertyId("HostRoles", "host_name"),
@@ -670,20 +681,22 @@ public class StackDefinedPropertyProviderTest {
     cluster.setDesiredStackVersion(new StackId("HDP-2.1.1"));
 
     TestStreamProvider  streamProvider = new TestStreamProvider();
-    TestJMXHostProvider hostProvider = new TestJMXHostProvider(false);
+    JMXPropertyProviderTest.TestJMXHostProvider hostProvider = new JMXPropertyProviderTest.TestJMXHostProvider(false);
     TestGangliaHostProvider gangliaHostProvider = new TestGangliaHostProvider();
+    JMXPropertyProviderTest.TestMetricsHostProvider metricsHostProvider = new JMXPropertyProviderTest.TestMetricsHostProvider();
 
     StackDefinedPropertyProvider propertyProvider = new StackDefinedPropertyProvider(
-            Resource.Type.HostComponent,
-            hostProvider,
-            gangliaHostProvider,
-            streamProvider,
-            PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
-            PropertyHelper.getPropertyId("HostRoles", "host_name"),
-            PropertyHelper.getPropertyId("HostRoles", "component_name"),
-            PropertyHelper.getPropertyId("HostRoles", "state"),
-            new EmptyPropertyProvider(),
-            new EmptyPropertyProvider());
+        Resource.Type.HostComponent,
+        hostProvider,
+        gangliaHostProvider,
+        metricsHostProvider,
+        streamProvider,
+        PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
+        PropertyHelper.getPropertyId("HostRoles", "host_name"),
+        PropertyHelper.getPropertyId("HostRoles", "component_name"),
+        PropertyHelper.getPropertyId("HostRoles", "state"),
+        new EmptyPropertyProvider(),
+        new EmptyPropertyProvider());
 
     Resource resource = new ResourceImpl(Resource.Type.HostComponent);
 
@@ -698,26 +711,28 @@ public class StackDefinedPropertyProviderTest {
     Assert.assertEquals(1, propertyProvider.populateResources(Collections.singleton(resource), request, null).size());
 
     // see test/resources/storm_rest_api_jmx.json for values
-    Assert.assertEquals(28, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/api/cluster/summary/tasks.total", "tasks.total")));
-    Assert.assertEquals(8, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/api/cluster/summary/slots.total", "slots.total")));
-    Assert.assertEquals(5, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/api/cluster/summary/slots.free", "slots.free")));
-    Assert.assertEquals(2, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/api/cluster/summary/supervisors", "supervisors")));
-    Assert.assertEquals(28, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/api/cluster/summary/executors.total", "executors.total")));
-    Assert.assertEquals(3, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/api/cluster/summary/slots.used", "slots.used")));
-    Assert.assertEquals(1, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/api/cluster/summary/topologies", "topologies")));
-    Assert.assertEquals(4637, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/api/cluster/summary/nimbus.uptime", "nimbus.uptime")));
+    Assert.assertEquals(28.0, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/api/cluster/summary", "tasks.total")));
+    Assert.assertEquals(8.0, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/api/cluster/summary", "slots.total")));
+    Assert.assertEquals(5.0, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/api/cluster/summary", "slots.free")));
+    Assert.assertEquals(2.0, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/api/cluster/summary", "supervisors")));
+    Assert.assertEquals(28.0, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/api/cluster/summary", "executors.total")));
+    Assert.assertEquals(3.0, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/api/cluster/summary", "slots.used")));
+    Assert.assertEquals(1.0, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/api/cluster/summary", "topologies")));
+    Assert.assertEquals(4637.0, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/api/cluster/summary", "nimbus.uptime")));
   }
 
   @Test
   public void testPopulateResources_NoRegionServer() throws Exception {
     TestStreamProvider  streamProvider = new TestStreamProvider();
-    TestJMXHostProvider hostProvider = new TestJMXHostProvider(false);
+    JMXPropertyProviderTest.TestJMXHostProvider hostProvider = new JMXPropertyProviderTest.TestJMXHostProvider(false);
     TestGangliaHostProvider gangliaHostProvider = new TestGangliaHostProvider();
+    JMXPropertyProviderTest.TestMetricsHostProvider metricsHostProvider = new JMXPropertyProviderTest.TestMetricsHostProvider();
 
     StackDefinedPropertyProvider propertyProvider = new StackDefinedPropertyProvider(
         Resource.Type.HostComponent,
         hostProvider,
         gangliaHostProvider,
+        metricsHostProvider,
         streamProvider,
         PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
         null,
@@ -734,7 +749,7 @@ public class StackDefinedPropertyProviderTest {
     resource.setProperty(HOST_COMPONENT_STATE_PROPERTY_ID, "STARTED");
 
     int preSize = resource.getPropertiesMap().size();
-    
+
     // request with an empty set should get all supported properties
     Request request = PropertyHelper.getReadRequest(Collections.<String>emptySet());
 
@@ -746,13 +761,15 @@ public class StackDefinedPropertyProviderTest {
   @Test
   public void testPopulateResources_HBaseMaster2() throws Exception {
     TestStreamProvider  streamProvider = new TestStreamProvider();
-    TestJMXHostProvider hostProvider = new TestJMXHostProvider(false);
+    JMXPropertyProviderTest.TestJMXHostProvider hostProvider = new JMXPropertyProviderTest.TestJMXHostProvider(false);
     TestGangliaHostProvider gangliaHostProvider = new TestGangliaHostProvider();
+    JMXPropertyProviderTest.TestMetricsHostProvider metricsHostProvider = new JMXPropertyProviderTest.TestMetricsHostProvider();
 
     StackDefinedPropertyProvider propertyProvider = new StackDefinedPropertyProvider(
         Resource.Type.HostComponent,
         hostProvider,
         gangliaHostProvider,
+        metricsHostProvider,
         streamProvider,
         PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
         PropertyHelper.getPropertyId("HostRoles", "host_name"),
@@ -762,39 +779,41 @@ public class StackDefinedPropertyProviderTest {
         new EmptyPropertyProvider());
 
     Resource resource = new ResourceImpl(Resource.Type.HostComponent);
-    
+
     resource.setProperty("HostRoles/cluster_name", "c1");
     resource.setProperty(HOST_COMPONENT_HOST_NAME_PROPERTY_ID, "domu-12-31-39-0e-34-e1.compute-1.internal");
     resource.setProperty(HOST_COMPONENT_COMPONENT_NAME_PROPERTY_ID, "HBASE_MASTER");
     resource.setProperty(HOST_COMPONENT_STATE_PROPERTY_ID, "STARTED");
 
-    
+
     // request with an empty set should get all supported properties
     Request request = PropertyHelper.getReadRequest(Collections.<String>emptySet());
 
     Set<Resource> res = propertyProvider.populateResources(Collections.singleton(resource), request, null);
     Assert.assertEquals(1, res.size());
-    
+
     Map<String, Map<String, Object>> map = res.iterator().next().getPropertiesMap();
 
     Assert.assertTrue(map.containsKey("metrics/hbase/master"));
     // uses 'tag.isActiveMaster' (name with a dot)
     Assert.assertTrue(map.get("metrics/hbase/master").containsKey("IsActiveMaster"));
-  }    
+  }
+
 
-  
   @Test
   public void testPopulateResources_params_category5() throws Exception {
     org.apache.ambari.server.controller.ganglia.TestStreamProvider streamProvider =
         new org.apache.ambari.server.controller.ganglia.TestStreamProvider("temporal_ganglia_data_yarn_queues.txt");
 
-    TestJMXHostProvider jmxHostProvider = new TestJMXHostProvider(true);
+    JMXPropertyProviderTest.TestJMXHostProvider jmxHostProvider = new JMXPropertyProviderTest.TestJMXHostProvider(true);
     TestGangliaHostProvider hostProvider = new TestGangliaHostProvider();
-    
+    JMXPropertyProviderTest.TestMetricsHostProvider metricsHostProvider = new JMXPropertyProviderTest.TestMetricsHostProvider();
+
     StackDefinedPropertyProvider propertyProvider = new StackDefinedPropertyProvider(
         Resource.Type.HostComponent,
         jmxHostProvider,
         hostProvider,
+        metricsHostProvider,
         streamProvider,
         PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
         PropertyHelper.getPropertyId("HostRoles", "host_name"),
@@ -802,8 +821,8 @@ public class StackDefinedPropertyProviderTest {
         PropertyHelper.getPropertyId("HostRoles", "state"),
         new EmptyPropertyProvider(),
         new EmptyPropertyProvider());
-    
-    
+
+
     Resource resource = new ResourceImpl(Resource.Type.HostComponent);
 
     resource.setProperty("HostRoles/cluster_name", "c1");
@@ -812,35 +831,37 @@ public class StackDefinedPropertyProviderTest {
 
     String RM_CATEGORY_1 = "metrics/yarn/Queue/root/default";
     String RM_AVAILABLE_MEMORY_PROPERTY = PropertyHelper.getPropertyId(RM_CATEGORY_1, "AvailableMB");
-    
+
     // only ask for one property
     Map<String, TemporalInfo> temporalInfoMap = new HashMap<String, TemporalInfo>();
     temporalInfoMap.put(RM_CATEGORY_1, new TemporalInfoImpl(10L, 20L, 1L));
-    
+
     Request  request = PropertyHelper.getReadRequest(Collections.singleton(RM_CATEGORY_1), temporalInfoMap);
 
     Assert.assertEquals(1, propertyProvider.populateResources(Collections.singleton(resource), request, null).size());
-    
+
     List<String> metricsRegexes = new ArrayList<String>();
-    
+
     metricsRegexes.add("metrics/yarn/Queue/$1.replaceAll(\"([.])\",\"/\")/");
 
     Assert.assertTrue(PropertyHelper.getProperties(resource).size() > 2);
     Assert.assertNotNull(resource.getPropertyValue(RM_AVAILABLE_MEMORY_PROPERTY));
-  }  
+  }
 
   @Test
   public void testPopulateResources_ganglia_JournalNode() throws Exception {
     org.apache.ambari.server.controller.ganglia.TestStreamProvider streamProvider =
         new org.apache.ambari.server.controller.ganglia.TestStreamProvider("journalnode_ganglia_data.txt");
 
-    TestJMXHostProvider jmxHostProvider = new TestJMXHostProvider(true);
+    JMXPropertyProviderTest.TestJMXHostProvider jmxHostProvider = new JMXPropertyProviderTest.TestJMXHostProvider(true);
     TestGangliaHostProvider hostProvider = new TestGangliaHostProvider();
-    
+    JMXPropertyProviderTest.TestMetricsHostProvider metricsHostProvider = new JMXPropertyProviderTest.TestMetricsHostProvider();
+
     StackDefinedPropertyProvider propertyProvider = new StackDefinedPropertyProvider(
         Resource.Type.HostComponent,
         jmxHostProvider,
         hostProvider,
+        metricsHostProvider,
         streamProvider,
         PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
         PropertyHelper.getPropertyId("HostRoles", "host_name"),
@@ -858,60 +879,60 @@ public class StackDefinedPropertyProviderTest {
 
 
     Object[][] testData = {
-      {"metrics", "boottime", 1378290058.0},
-      {"metrics/cpu", "cpu_aidle", 0.0},
-      {"metrics/cpu", "cpu_idle", 88.2},
-      {"metrics/cpu", "cpu_nice", 0.0},
-      {"metrics/cpu", "cpu_num", 2.0},
-      {"metrics/cpu", "cpu_speed", 3583.0},
-      {"metrics/cpu", "cpu_system", 8.4},
-      {"metrics/cpu", "cpu_user", 3.3},
-      {"metrics/cpu", "cpu_wio", 0.1},
-      {"metrics/disk", "disk_free", 92.428},
-      {"metrics/disk", "disk_total", 101.515},
-      {"metrics/disk", "part_max_used", 12.8},
-      {"metrics/load", "load_fifteen", 0.026},
-      {"metrics/load", "load_five", 0.114},
-      {"metrics/load", "load_one", 0.226},
-      {"metrics/memory", "mem_buffers", 129384.0},
-      {"metrics/memory", "mem_cached", 589576.0},
-      {"metrics/memory", "mem_free", 1365496.0},
-      {"metrics/memory", "mem_shared", 0.0},
-      {"metrics/memory", "mem_total", 4055144.0},
-      {"metrics/memory", "swap_free", 4128760.0},
-      {"metrics/memory", "swap_total", 4128760.0},
-      {"metrics/network", "bytes_in", 22547.48},
-      {"metrics/network", "bytes_out", 5772.33},
-      {"metrics/network", "pkts_in", 24.0},
-      {"metrics/network", "pkts_out", 35.4},
-      {"metrics/process", "proc_run", 4.0},
-      {"metrics/process", "proc_total", 657.0},
-      {"metrics/dfs/journalNode", "batchesWritten", 0.0},
-      {"metrics/dfs/journalNode", "batchesWrittenWhileLagging", 0.0},
-      {"metrics/dfs/journalNode", "bytesWritten", 0.0},
-      {"metrics/dfs/journalNode", "currentLagTxns", 0.0},
-      {"metrics/dfs/journalNode", "lastPromisedEpoch", 5.0},
-      {"metrics/dfs/journalNode", "lastWriterEpoch", 5.0},
-      {"metrics/dfs/journalNode", "lastWrittenTxId", 613.0},
-      {"metrics/dfs/journalNode", "syncs60s50thPercentileLatencyMicros", 0.0},
-      {"metrics/dfs/journalNode", "syncs60s75thPercentileLatencyMicros", 0.0},
-      {"metrics/dfs/journalNode", "syncs60s90thPercentileLatencyMicros", 0.0},
-      {"metrics/dfs/journalNode", "syncs60s95thPercentileLatencyMicros", 0.0},
-      {"metrics/dfs/journalNode", "syncs60s99thPercentileLatencyMicros", 0.0},
-      {"metrics/dfs/journalNode", "syncs60s_num_ops", 0.0},
-      {"metrics/dfs/journalNode", "syncs300s50thPercentileLatencyMicros", 0.0},
-      {"metrics/dfs/journalNode", "syncs300s75thPercentileLatencyMicros", 0.0},
-      {"metrics/dfs/journalNode", "syncs300s90thPercentileLatencyMicros", 0.0},
-      {"metrics/dfs/journalNode", "syncs300s95thPercentileLatencyMicros", 0.0},
-      {"metrics/dfs/journalNode", "syncs300s99thPercentileLatencyMicros", 0.0},
-      {"metrics/dfs/journalNode", "syncs300s_num_ops", 0.0},
-      {"metrics/dfs/journalNode", "syncs3600s50thPercentileLatencyMicros", 0.0},
-      {"metrics/dfs/journalNode", "syncs3600s75thPercentileLatencyMicros", 0.0},
-      {"metrics/dfs/journalNode", "syncs3600s90thPercentileLatencyMicros", 0.0},
-      {"metrics/dfs/journalNode", "syncs3600s95thPercentileLatencyMicros", 0.0},
-      {"metrics/dfs/journalNode", "syncs3600s99thPercentileLatencyMicros", 0.0},
-      {"metrics/dfs/journalNode", "syncs3600s_num_ops", 0.0},
-      {"metrics/dfs/journalNode", "txnsWritten", 0.0}
+        {"metrics", "boottime", 1378290058.0},
+        {"metrics/cpu", "cpu_aidle", 0.0},
+        {"metrics/cpu", "cpu_idle", 88.2},
+        {"metrics/cpu", "cpu_nice", 0.0},
+        {"metrics/cpu", "cpu_num", 2.0},
+        {"metrics/cpu", "cpu_speed", 3583.0},
+        {"metrics/cpu", "cpu_system", 8.4},
+        {"metrics/cpu", "cpu_user", 3.3},
+        {"metrics/cpu", "cpu_wio", 0.1},
+        {"metrics/disk", "disk_free", 92.428},
+        {"metrics/disk", "disk_total", 101.515},
+        {"metrics/disk", "part_max_used", 12.8},
+        {"metrics/load", "load_fifteen", 0.026},
+        {"metrics/load", "load_five", 0.114},
+        {"metrics/load", "load_one", 0.226},
+        {"metrics/memory", "mem_buffers", 129384.0},
+        {"metrics/memory", "mem_cached", 589576.0},
+        {"metrics/memory", "mem_free", 1365496.0},
+        {"metrics/memory", "mem_shared", 0.0},
+        {"metrics/memory", "mem_total", 4055144.0},
+        {"metrics/memory", "swap_free", 4128760.0},
+        {"metrics/memory", "swap_total", 4128760.0},
+        {"metrics/network", "bytes_in", 22547.48},
+        {"metrics/network", "bytes_out", 5772.33},
+        {"metrics/network", "pkts_in", 24.0},
+        {"metrics/network", "pkts_out", 35.4},
+        {"metrics/process", "proc_run", 4.0},
+        {"metrics/process", "proc_total", 657.0},
+        {"metrics/dfs/journalNode", "batchesWritten", 0.0},
+        {"metrics/dfs/journalNode", "batchesWrittenWhileLagging", 0.0},
+        {"metrics/dfs/journalNode", "bytesWritten", 0.0},
+        {"metrics/dfs/journalNode", "currentLagTxns", 0.0},
+        {"metrics/dfs/journalNode", "lastPromisedEpoch", 5.0},
+        {"metrics/dfs/journalNode", "lastWriterEpoch", 5.0},
+        {"metrics/dfs/journalNode", "lastWrittenTxId", 613.0},
+        {"metrics/dfs/journalNode", "syncs60s50thPercentileLatencyMicros", 0.0},
+        {"metrics/dfs/journalNode", "syncs60s75thPercentileLatencyMicros", 0.0},
+        {"metrics/dfs/journalNode", "syncs60s90thPercentileLatencyMicros", 0.0},
+        {"metrics/dfs/journalNode", "syncs60s95thPercentileLatencyMicros", 0.0},
+        {"metrics/dfs/journalNode", "syncs60s99thPercentileLatencyMicros", 0.0},
+        {"metrics/dfs/journalNode", "syncs60s_num_ops", 0.0},
+        {"metrics/dfs/journalNode", "syncs300s50thPercentileLatencyMicros", 0.0},
+        {"metrics/dfs/journalNode", "syncs300s75thPercentileLatencyMicros", 0.0},
+        {"metrics/dfs/journalNode", "syncs300s90thPercentileLatencyMicros", 0.0},
+        {"metrics/dfs/journalNode", "syncs300s95thPercentileLatencyMicros", 0.0},
+        {"metrics/dfs/journalNode", "syncs300s99thPercentileLatencyMicros", 0.0},
+        {"metrics/dfs/journalNode", "syncs300s_num_ops", 0.0},
+        {"metrics/dfs/journalNode", "syncs3600s50thPercentileLatencyMicros", 0.0},
+        {"metrics/dfs/journalNode", "syncs3600s75thPercentileLatencyMicros", 0.0},
+        {"metrics/dfs/journalNode", "syncs3600s90thPercentileLatencyMicros", 0.0},
+        {"metrics/dfs/journalNode", "syncs3600s95thPercentileLatencyMicros", 0.0},
+        {"metrics/dfs/journalNode", "syncs3600s99thPercentileLatencyMicros", 0.0},
+        {"metrics/dfs/journalNode", "syncs3600s_num_ops", 0.0},
+        {"metrics/dfs/journalNode", "txnsWritten", 0.0}
     };
 
     Map<String, TemporalInfo> temporalInfoMap = new HashMap<String, TemporalInfo>();
@@ -940,29 +961,31 @@ public class StackDefinedPropertyProviderTest {
     for (String property : properties) {
       Assert.assertEquals(testData[i++][2], resource.getPropertyValue(property));
     }
-  }  
+  }
 
   @Test
   public void testPopulateResources_resourcemanager_clustermetrics() throws Exception {
-    
+
     String[] metrics = new String[] {
-      "metrics/yarn/ClusterMetrics/NumActiveNMs",
-      "metrics/yarn/ClusterMetrics/NumDecommissionedNMs",
-      "metrics/yarn/ClusterMetrics/NumLostNMs",
-      "metrics/yarn/ClusterMetrics/NumUnhealthyNMs",
-      "metrics/yarn/ClusterMetrics/NumRebootedNMs"
+        "metrics/yarn/ClusterMetrics/NumActiveNMs",
+        "metrics/yarn/ClusterMetrics/NumDecommissionedNMs",
+        "metrics/yarn/ClusterMetrics/NumLostNMs",
+        "metrics/yarn/ClusterMetrics/NumUnhealthyNMs",
+        "metrics/yarn/ClusterMetrics/NumRebootedNMs"
     };
-    
+
     org.apache.ambari.server.controller.ganglia.TestStreamProvider streamProvider =
         new org.apache.ambari.server.controller.ganglia.TestStreamProvider("yarn_ganglia_data.txt");
 
-    TestJMXHostProvider jmxHostProvider = new TestJMXHostProvider(true);
+    JMXPropertyProviderTest.TestJMXHostProvider jmxHostProvider = new JMXPropertyProviderTest.TestJMXHostProvider(true);
+    JMXPropertyProviderTest.TestMetricsHostProvider metricsHostProvider = new JMXPropertyProviderTest.TestMetricsHostProvider();
     TestGangliaHostProvider hostProvider = new TestGangliaHostProvider();
-    
+
     StackDefinedPropertyProvider propertyProvider = new StackDefinedPropertyProvider(
         Resource.Type.HostComponent,
         jmxHostProvider,
         hostProvider,
+        metricsHostProvider,
         streamProvider,
         PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
         PropertyHelper.getPropertyId("HostRoles", "host_name"),
@@ -977,19 +1000,19 @@ public class StackDefinedPropertyProviderTest {
       resource.setProperty("HostRoles/cluster_name", "c1");
       resource.setProperty(HOST_COMPONENT_HOST_NAME_PROPERTY_ID, "ip-10-39-113-33.ec2.internal");
       resource.setProperty(HOST_COMPONENT_COMPONENT_NAME_PROPERTY_ID, "RESOURCEMANAGER");
-      
+
       // only ask for one property
       Map<String, TemporalInfo> temporalInfoMap = new HashMap<String, TemporalInfo>();
       temporalInfoMap.put(metric, new TemporalInfoImpl(10L, 20L, 1L));
       Request  request = PropertyHelper.getReadRequest(Collections.singleton(metric), temporalInfoMap);
 
       Assert.assertEquals(1, propertyProvider.populateResources(Collections.singleton(resource), request, null).size());
-      
+
       Assert.assertEquals(4, PropertyHelper.getProperties(resource).size());
       Assert.assertNotNull(resource.getPropertyValue(metric));
-      
+
     }
-    
-  }  
-  
+
+  }
+
 }


Mime
View raw message