You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by yu...@apache.org on 2012/10/26 01:14:06 UTC

svn commit: r1402353 - in /incubator/ambari/branches/AMBARI-666: ./ ambari-web/app/ ambari-web/app/assets/data/services/metrics/ ambari-web/app/assets/data/services/metrics/hdfs/ ambari-web/app/styles/ ambari-web/app/templates/main/ ambari-web/app/temp...

Author: yusaku
Date: Thu Oct 25 23:14:05 2012
New Revision: 1402353

URL: http://svn.apache.org/viewvc?rev=1402353&view=rev
Log:
AMBARI-916. Provide HDFS metrics graphs in HDFS services page. (Srimanth Gunturi via yusaku)

Added:
    incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/
    incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/
    incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/file_operations.json
    incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/gc.json
    incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/io.json
    incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/jvm_heap.json
    incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/jvm_threads.json
    incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/rpc.json
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/file_operations.js
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/gc.js
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/io.js
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/jvm_heap.js
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/jvm_threads.js
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/rpc.js
Modified:
    incubator/ambari/branches/AMBARI-666/AMBARI-666-CHANGES.txt
    incubator/ambari/branches/AMBARI-666/ambari-web/app/styles/application.less
    incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/charts/linear_time.hbs
    incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/dashboard.hbs
    incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/service/info/summary.hbs
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views.js
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views/common/chart/linear_time.js
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/cpu.js
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/load.js
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/memory.js
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/network.js
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/summary.js

Modified: incubator/ambari/branches/AMBARI-666/AMBARI-666-CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/AMBARI-666-CHANGES.txt?rev=1402353&r1=1402352&r2=1402353&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/AMBARI-666-CHANGES.txt (original)
+++ incubator/ambari/branches/AMBARI-666/AMBARI-666-CHANGES.txt Thu Oct 25 23:14:05 2012
@@ -12,6 +12,9 @@ AMBARI-666 branch (unreleased changes)
 
   NEW FEATURES
 
+  AMBARI-916. Provide metrics graphs in HDFS services page. (Srimanth
+  Gunturi via yusaku)
+
   AMBARI-908. Add ui option to either create a Postgres database for Hive
   and Oozie or choose existing database. (Jaimin Jetly via yusaku)
 

Added: incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/file_operations.json
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/file_operations.json?rev=1402353&view=auto
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/file_operations.json (added)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/file_operations.json Thu Oct 25 23:14:05 2012
@@ -0,0 +1,17 @@
+{
+  "href" : "http://ec2-23-22-183-40.compute-1.amazonaws.com:9998/clusters/SrimanthAmbari/services/HDFS/components/NAMENODE?fields=metrics/dfs/namenode/FileInfoOps[1351117114,1351120714,60],metrics/dfs/namenode/CreateFileOps[1351117114,1351120714,60],metrics/dfs/namenode/DeleteFileOps[1351117114,1351120714,60]",
+  "metrics" : {
+    "dfs" : {
+      "namenode" : {
+        "FileInfoOps" : "[[0.0,1351117440],[0.0,1351117800],[0.0,1351118160],[0.0,1351118520],[0.0,1351118880],[0.0,1351119240],[0.0,1351119600],[0.0,1351119960],[0.0,1351120320],[0.0,1351120680],[0.0,1351121040]]",
+        "DeleteFileOps" : "[[0.0,1351117440],[0.0,1351117800],[0.0,1351118160],[0.0,1351118520],[0.0,1351118880],[0.0,1351119240],[0.0,1351119600],[0.0,1351119960],[0.0,1351120320],[0.0,1351120680],[0.0,1351121040]]",
+        "CreateFileOps" : "[[0.0,1351117440],[0.0,1351117800],[0.0,1351118160],[0.0,1351118520],[0.0,1351118880],[0.0,1351119240],[0.0,1351119600],[0.0,1351119960],[0.0,1351120320],[0.0,1351120680],[0.0,1351121040]]"
+      }
+    }
+  },
+  "ServiceComponentInfo" : {
+    "cluster_name" : "SrimanthAmbari",
+    "component_name" : "NAMENODE",
+    "service_name" : "HDFS"
+  }
+}
\ No newline at end of file

Added: incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/gc.json
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/gc.json?rev=1402353&view=auto
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/gc.json (added)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/gc.json Thu Oct 25 23:14:05 2012
@@ -0,0 +1,16 @@
+{
+  "href" : "http://ec2-23-22-183-40.compute-1.amazonaws.com:9998/clusters/SrimanthAmbari/hosts/ip-10-224-3-23.ec2.internal/host_components/NAMENODE?fields=metrics/jvm/gcTimeMillis[1351117114,1351120714,60]",
+  "HostRoles" : {
+    "cluster_name" : "SrimanthAmbari",
+    "component_name" : "NAMENODE",
+    "host_name" : "ip-10-224-3-23.ec2.internal"
+  },
+  "host" : {
+    "href" : "http://ec2-23-22-183-40.compute-1.amazonaws.com:9998/clusters/SrimanthAmbari/hosts/ip-10-224-3-23.ec2.internal"
+  },
+  "metrics" : {
+    "jvm" : {
+      "gcTimeMillis" : "[[0.0,1351117440],[0.0,1351117800],[0.0,1351118160],[0.0,1351118520],[0.0,1351118880],[0.0,1351119240],[0.0,1351119600],[0.0,1351119960],[0.0,1351120320],[0.0,1351120680],[0.027777777778,1351121040]]"
+    }
+  }
+}
\ No newline at end of file

Added: incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/io.json
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/io.json?rev=1402353&view=auto
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/io.json (added)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/io.json Thu Oct 25 23:14:05 2012
@@ -0,0 +1,16 @@
+{
+  "href" : "http://ec2-23-22-183-40.compute-1.amazonaws.com:9998/clusters/SrimanthAmbari/services/HDFS/components/DATANODE?fields=metrics/dfs/datanode/bytes_written[1351117114,1351120714,60],metrics/dfs/datanode/bytes_read[1351117114,1351120714,60]",
+  "metrics" : {
+    "dfs" : {
+      "datanode" : {
+        "bytes_written" : "[[0.0,1351117440],[0.0,1351117800],[0.0,1351118160],[0.0,1351118520],[0.0,1351118880],[0.0,1351119240],[0.0,1351119600],[0.0,1351119960],[0.0,1351120320],[0.0,1351120680],[0.0,1351121040]]",
+        "bytes_read" : "[[0.0,1351117440],[0.0,1351117800],[0.0,1351118160],[0.0,1351118520],[0.0,1351118880],[0.0,1351119240],[0.0,1351119600],[0.0,1351119960],[0.0,1351120320],[0.0,1351120680],[0.0,1351121040]]"
+      }
+    }
+  },
+  "ServiceComponentInfo" : {
+    "cluster_name" : "SrimanthAmbari",
+    "component_name" : "DATANODE",
+    "service_name" : "HDFS"
+  }
+}
\ No newline at end of file

Added: incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/jvm_heap.json
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/jvm_heap.json?rev=1402353&view=auto
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/jvm_heap.json (added)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/jvm_heap.json Thu Oct 25 23:14:05 2012
@@ -0,0 +1,19 @@
+{
+  "href" : "http://ec2-23-22-183-40.compute-1.amazonaws.com:9998/clusters/SrimanthAmbari/hosts/ip-10-224-3-23.ec2.internal/host_components/NAMENODE?fields=metrics/jvm/memNonHeapUsedM[1351117114,1351120714,60],metrics/jvm/memNonHeapCommittedM[1351117114,1351120714,60],metrics/jvm/memHeapUsedM[1351117114,1351120714,60],metrics/jvm/memHeapCommittedM[1351117114,1351120714,60]",
+  "HostRoles" : {
+    "cluster_name" : "SrimanthAmbari",
+    "component_name" : "NAMENODE",
+    "host_name" : "ip-10-224-3-23.ec2.internal"
+  },
+  "host" : {
+    "href" : "http://ec2-23-22-183-40.compute-1.amazonaws.com:9998/clusters/SrimanthAmbari/hosts/ip-10-224-3-23.ec2.internal"
+  },
+  "metrics" : {
+    "jvm" : {
+      "memHeapCommittedM" : "[[680.0,1351117440],[680.0,1351117800],[680.0,1351118160],[680.0,1351118520],[680.0,1351118880],[680.0,1351119240],[680.0,1351119600],[680.0,1351119960],[680.0,1351120320],[680.0,1351120680],[680.0,1351121040]]",
+      "memNonHeapUsedM" : "[[22.650757,1351117440],[22.650757,1351117800],[22.650757,1351118160],[22.650757,1351118520],[22.650757,1351118880],[22.650757,1351119240],[22.650757,1351119600],[22.650757,1351119960],[22.651528758,1351120320],[22.65326,1351120680],[22.65326,1351121040]]",
+      "memHeapUsedM" : "[[395.12300758,1351117440],[408.34930122,1351117800],[420.87871456,1351118160],[433.10785828,1351118520],[445.34583947,1351118880],[458.20661247,1351119240],[471.33682175,1351119600],[483.45747058,1351119960],[495.75202453,1351120320],[508.74344031,1351120680],[452.11703887,1351121040]]",
+      "memNonHeapCommittedM" : "[[23.375,1351117440],[23.375,1351117800],[23.375,1351118160],[23.375,1351118520],[23.375,1351118880],[23.375,1351119240],[23.375,1351119600],[23.375,1351119960],[23.375,1351120320],[23.375,1351120680],[23.375,1351121040]]"
+    }
+  }
+}
\ No newline at end of file

Added: incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/jvm_threads.json
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/jvm_threads.json?rev=1402353&view=auto
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/jvm_threads.json (added)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/jvm_threads.json Thu Oct 25 23:14:05 2012
@@ -0,0 +1,19 @@
+{
+  "href" : "http://ec2-23-22-183-40.compute-1.amazonaws.com:9998/clusters/SrimanthAmbari/hosts/ip-10-224-3-23.ec2.internal/host_components/NAMENODE?fields=metrics/jvm/threadsRunnable[1351117114,1351120714,60],metrics/jvm/threadsBlocked[1351117114,1351120714,60],metrics/jvm/threadsWaiting[1351117114,1351120714,60],metrics/jvm/threadsTimedWaiting[1351117114,1351120714,60]",
+  "HostRoles" : {
+    "cluster_name" : "SrimanthAmbari",
+    "component_name" : "NAMENODE",
+    "host_name" : "ip-10-224-3-23.ec2.internal"
+  },
+  "host" : {
+    "href" : "http://ec2-23-22-183-40.compute-1.amazonaws.com:9998/clusters/SrimanthAmbari/hosts/ip-10-224-3-23.ec2.internal"
+  },
+  "metrics" : {
+    "jvm" : {
+      "threadsBlocked" : "[[0.0,1351117440],[0.0,1351117800],[0.0,1351118160],[0.0,1351118520],[0.0,1351118880],[0.0,1351119240],[0.0,1351119600],[0.0,1351119960],[0.0,1351120320],[0.0,1351120680],[0.0,1351121040]]",
+      "threadsWaiting" : "[[104.0,1351117440],[104.0,1351117800],[104.0,1351118160],[104.0,1351118520],[104.0,1351118880],[104.0,1351119240],[104.0,1351119600],[104.0,1351119960],[104.0,1351120320],[104.0,1351120680],[104.0,1351121040]]",
+      "threadsTimedWaiting" : "[[8.0,1351117440],[8.0,1351117800],[8.0,1351118160],[8.0,1351118520],[8.0,1351118880],[8.0,1351119240],[8.0,1351119600],[8.0,1351119960],[8.1638888889,1351120320],[8.0,1351120680],[8.0,1351121040]]",
+      "threadsRunnable" : "[[10.0,1351117440],[10.0,1351117800],[10.0,1351118160],[10.0,1351118520],[10.0,1351118880],[10.0,1351119240],[10.0,1351119600],[10.0,1351119960],[10.0,1351120320],[10.0,1351120680],[10.0,1351121040]]"
+    }
+  }
+}
\ No newline at end of file

Added: incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/rpc.json
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/rpc.json?rev=1402353&view=auto
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/rpc.json (added)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/assets/data/services/metrics/hdfs/rpc.json Thu Oct 25 23:14:05 2012
@@ -0,0 +1,16 @@
+{
+  "href" : "http://ec2-23-22-183-40.compute-1.amazonaws.com:9998/clusters/SrimanthAmbari/hosts/ip-10-224-3-23.ec2.internal/host_components/NAMENODE?fields=metrics/rpc/RpcQueueTime_avg_time[1351117114,1351120714,60]",
+  "HostRoles" : {
+    "cluster_name" : "SrimanthAmbari",
+    "component_name" : "NAMENODE",
+    "host_name" : "ip-10-224-3-23.ec2.internal"
+  },
+  "host" : {
+    "href" : "http://ec2-23-22-183-40.compute-1.amazonaws.com:9998/clusters/SrimanthAmbari/hosts/ip-10-224-3-23.ec2.internal"
+  },
+  "metrics" : {
+    "rpc" : {
+      "RpcQueueTime_avg_time" : "[[0.055987654321,1351117440],[0.013271604938,1351117800],[0.0046296296296,1351118160],[0.018518518519,1351118520],[0.01712962963,1351118880],[0.0,1351119240],[0.0,1351119600],[0.0,1351119960],[0.0,1351120320],[0.0095679012346,1351120680],[0.018672839506,1351121040]]"
+    }
+  }
+}
\ No newline at end of file

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/styles/application.less
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/styles/application.less?rev=1402353&r1=1402352&r2=1402353&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/styles/application.less (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/styles/application.less Thu Oct 25 23:14:05 2012
@@ -575,13 +575,12 @@ a:focus {
 
 /*end alerts summary*/
 
-/*start cluster metrics*/
-.cluster-metrics {
-  .chart-container {
-    position: relative;
-    margin: 20px 15px 0px 15px;
-  }
-  .chart {
+/*start chart/style graphs*/
+.chart-container{
+  position: relative;
+  margin: 20px 15px 0px 15px;
+  
+  .chart{
     padding-bottom: 0px !important;
     position: relative;
     height: 160px;
@@ -617,8 +616,7 @@ a:focus {
     font-size: small;
   }
 }
-
-/*end cluster metrics*/
+/*end chart/graph styles*/
 
 /*****end styles for dashboard page*****/
 
@@ -719,7 +717,19 @@ a:focus {
       text-align: left;
     }
   }
+}
 
+.summary-metric-graphs{
+  [class*="span"] {
+    float: left;
+    margin-left: 10px;
+  }
+  .chart-container{
+    .chart-x-axis{
+      left: 0%;
+      width: 100%;
+    }
+  }
 }
 
 /*End Services*/
@@ -1546,4 +1556,4 @@ ul.inline li {
 
 #step8-content{
   max-height: 570px;
-}
\ No newline at end of file
+}

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/charts/linear_time.hbs
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/charts/linear_time.hbs?rev=1402353&r1=1402352&r2=1402353&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/charts/linear_time.hbs (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/charts/linear_time.hbs Thu Oct 25 23:14:05 2012
@@ -20,4 +20,5 @@
   <div id="{{unbound view.id}}-xaxis" class="chart-x-axis"></div>
   <div id="{{unbound view.id}}-overlay" class="chart-overlay"></div>
   <div id="{{unbound view.id}}-chart" class="chart"></div>
+  <div id="{{unbound view.id}}-title" class="chart-title">{{view.title}}</div>
 </div>
\ No newline at end of file

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/dashboard.hbs
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/dashboard.hbs?rev=1402353&r1=1402352&r2=1402353&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/dashboard.hbs (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/dashboard.hbs Thu Oct 25 23:14:05 2012
@@ -44,20 +44,20 @@
           <a class="btn" href="http://gangliaserver/ganglia/?t=yes" target="_blank" rel="tooltip" title="Go to Ganglia"><i class="icon-link"></i></a>
         </div>
 			</div>
-			<div class="cluster-metrics">
+			<div class="graphs-container">
 				<div class="row">
 					<div class="span6">
 						<div class="row">
-							<div class="span3">{{view App.ChartClusterMetricsNetwork}}<div class="chart-title">Network Usage</div></div>
-							<div class="span3">{{view App.ChartClusterMetricsLoad}}<div class="chart-title">Cluster Load</div></div>
+							<div class="span3">{{view App.ChartClusterMetricsNetwork}}</div>
+							<div class="span3">{{view App.ChartClusterMetricsLoad}}</div>
 						</div>
 					</div>
 				</div>
 				<div class="row">
 					<div class="span6">
 						<div class="row">
-							<div class="span3">{{view App.ChartClusterMetricsMemory}}<div class="chart-title">Memory Usage</div></div>
-							<div class="span3">{{view App.ChartClusterMetricsCPU}}<div class="chart-title">CPU Usage</div></div>
+							<div class="span3">{{view App.ChartClusterMetricsMemory}}</div>
+							<div class="span3">{{view App.ChartClusterMetricsCPU}}</div>
 						</div>
 					</div>
 				</div>

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/service/info/summary.hbs
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/service/info/summary.hbs?rev=1402353&r1=1402352&r2=1402353&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/service/info/summary.hbs (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/service/info/summary.hbs Thu Oct 25 23:14:05 2012
@@ -228,29 +228,36 @@
 </div>
 </div>
 <div class="span6">
-  <div class="box">
-    <div class="box-header">
-      <h4>Alerts</h4>
-    </div>
-    <ul class="alerts">
-      {{#each controller.content.alerts}}
-      <li class="status-{{unbound status}}">
-        <p><span class="title">{{title}}</span> <a href="javascript:void(null)">{{service.label}}</a><span
-            class="date-time">{{date}}</span></p>
-
-        <p><span>{{status}}:</span> <span>{{message}}</span></p>
-      </li>
-      {{/each}}
-
-      {{#each view.service.alerts}}
-      <div>
-        Message:{{ message }}<br/>
+	<div class="box">
+		<div class="box-header">
+			<h4>Alerts</h4>
+			<a class="btn" href="http://nagiosserver/nagios" target="_blank" rel="tooltip" title="Go to Nagios"><i class="icon-link"></i></a>
+		</div>
+		<ul class="alerts">
+			{{#each controller.content.alerts}}
+			<li class="status-{{unbound status}}">
+				<p><span class="title">{{title}}</span> <a href="javascript:void(null)">{{service.label}}</a><span class="date-time">{{date}}</span></p>
+				<p><span>{{status}}:</span> <span>{{message}}</span></p>
+			</li>
+			{{/each}}
+		</ul>
+	</div>
+</div>
+<div class="row-fluid">
+  <div class="span12">
+    <div class="box">
+      <div class="box-header">
+        <h4>{{controller.content.label}} Metrics</h4>
+      </div>
+      
+      <div class="summary-metric-graphs row-fluid">
+        {{#each graph in view.attributes.metricGraphViews}}
+          <div class="span3">
+            {{view graph}}
+          </div> 
+        {{/each}}
       </div>
-      {{/each}}
-    </ul>
-    <div class="box-footer">
-      <hr/>
-      <a class="go-to" href="javascript:void(null)">Go to Nagios</a>
+      
     </div>
   </div>
 </div>

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/views.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/views.js?rev=1402353&r1=1402352&r2=1402353&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/views.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/views.js Thu Oct 25 23:14:05 2012
@@ -70,6 +70,12 @@ require('views/main/service/info/summary
 require('views/main/service/info/metrics');
 require('views/main/service/info/configs');
 require('views/main/service/info/audit');
+require('views/main/service/info/metrics/hdfs/jvm_threads');
+require('views/main/service/info/metrics/hdfs/jvm_heap');
+require('views/main/service/info/metrics/hdfs/io');
+require('views/main/service/info/metrics/hdfs/rpc');
+require('views/main/service/info/metrics/hdfs/file_operations');
+require('views/main/service/info/metrics/hdfs/gc');
 require('views/main/charts/menu');
 require('views/main/charts/heatmap');
 require('views/main/charts/horizon');

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/views/common/chart/linear_time.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/views/common/chart/linear_time.js?rev=1402353&r1=1402352&r2=1402353&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/views/common/chart/linear_time.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/views/common/chart/linear_time.js Thu Oct 25 23:14:05 2012
@@ -30,6 +30,7 @@ var App = require('app');
  * Extending classes should override the following:
  * <ul>
  * <li>url - from where the data can be retrieved
+ * <li>title - Title to be displayed when showing the chart
  * <li>id - which uniquely identifies this chart in any page
  * <li>#transformToSeries(jsonData) - function to map server data into graph
  * series
@@ -66,6 +67,14 @@ App.ChartLinearTimeView = Ember.View
       id: null,
 
       /**
+       * Title to be shown under the chart.
+       * 
+       * @type String
+       * @default null
+       */
+      title: null,
+
+      /**
        * @private
        * 
        * @type Rickshaw.Graph
@@ -130,7 +139,7 @@ App.ChartLinearTimeView = Ember.View
           }, {
             x: 1,
             y: 1
-          } ],
+          } ]
         } ]
       },
 
@@ -194,12 +203,12 @@ App.ChartLinearTimeView = Ember.View
             interpolation: 'step-after',
             stroke: true,
             renderer: 'area',
-            strokeWidth: 1,
+            strokeWidth: 1
           });
           this._graph.renderer.unstack = true;
 
           xAxis = new Rickshaw.Graph.Axis.Time({
-            graph: this._graph,
+            graph: this._graph
           });
           yAxis = new Rickshaw.Graph.Axis.Y({
             tickFormat: this.yAxisFormatter,
@@ -207,12 +216,12 @@ App.ChartLinearTimeView = Ember.View
             graph: this._graph
           });
 
-          overlayElement.addEventListener('mousemove', function (e) {
+          overlayElement.addEventListener('mousemove', function () {
             $(xaxisElement).removeClass('hide');
             $(yaxisElement).removeClass('hide');
             $(chartElement).children("div").removeClass('hide');
           });
-          overlayElement.addEventListener('mouseout', function (e) {
+          overlayElement.addEventListener('mouseout', function () {
             $(xaxisElement).addClass('hide');
             $(yaxisElement).addClass('hide');
             $(chartElement).children("div").addClass('hide');
@@ -224,7 +233,7 @@ App.ChartLinearTimeView = Ember.View
             $(chartElement).children('div').addClass('hide');
           });
 
-          var legend = new Rickshaw.Graph.Legend({
+          new Rickshaw.Graph.Legend({
             graph: this._graph,
             element: xaxisElement
           });
@@ -271,12 +280,66 @@ App.ChartLinearTimeView = Ember.View
 App.ChartLinearTimeView.BytesFormatter = function (y) {
   var value = Rickshaw.Fixtures.Number.formatBase1024KMGTP(y);
   if (!y || y.length < 1) {
-    value = "0";
+    value = '';
   } else {
+    if ("number" == typeof value) {
+      value = String(value);
+    }
     if ("string" == typeof value) {
-      value = value.replace(/\.\d+/, " ")
-      value = value + "B";
+      value = value.replace(/\.\d+/, ''); // Remove decimal part
+      // Either it ends with digit or ends with character
+      value = value.replace(/(\d$)/, '$1 '); // Ends with digit like '120'
+      value = value.replace(/([a-zA-Z]$)/, ' $1'); // Ends with character like
+      // '120M'
+      value = value + 'B'; // Append B to make B, MB, GB etc.
+    }
+  }
+  return value;
+};
+
+/**
+ * A formatter which will turn a number into percentage display like '42%'
+ * 
+ * @type Function
+ */
+App.ChartLinearTimeView.PercentageFormatter = function (percentage) {
+  var value = percentage;
+  if (!value || value.length < 1) {
+    value = '';
+  } else {
+    value = value + '%';
+  }
+  return value;
+};
+
+/**
+ * A formatter which will turn elapsed time into display time like '50 ms',
+ * '5s', '10 m', '3 hr' etc. Time is expected to be provided in milliseconds.
+ * 
+ * @type Function
+ */
+App.ChartLinearTimeView.TimeElapsedFormatter = function (millis) {
+  var value = millis;
+  if (!value || value.length < 1) {
+    value = '';
+  } else if ("number" == typeof millis) {
+    var seconds = millis > 1000 ? Math.round(millis / 1000) : 0;
+    var minutes = seconds > 60 ? Math.round(seconds / 60) : 0;
+    var hours = minutes > 60 ? Math.round(minutes / 60) : 0;
+    var days = hours > 24 ? Math.round(hours / 24) : 0;
+    if (days > 0) {
+      value = days + ' d';
+    } else if (hours > 0) {
+      value = hours + ' hr';
+    } else if (minutes > 0) {
+      value = minutes + ' m';
+    } else if (seconds > 0) {
+      value = seconds + ' s';
+    } else if (millis > 0) {
+      value = millis + ' ms';
+    } else {
+      value = millis + ' ms';
     }
   }
   return value;
-}
+};

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/cpu.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/cpu.js?rev=1402353&r1=1402352&r2=1402353&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/cpu.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/cpu.js Thu Oct 25 23:14:05 2012
@@ -29,14 +29,8 @@ var App = require('app');
 App.ChartClusterMetricsCPU = App.ChartLinearTimeView.extend({
   id: "cluster-metrics-cpu",
   url: "/data/cluster_metrics/cpu_1hr.json",
-  
-  yAxisFormatter: function (y) {
-    var value = this._super(y);
-    if (!value || value.length < 1) {
-      value = "0";
-    }
-    return value + "%";
-  },
+  title: "CPU Usage",
+  yAxisFormatter: App.ChartLinearTimeView.PercentageFormatter,
   
   transformToSeries: function (jsonData) {
     var seriesArray = [];

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/load.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/load.js?rev=1402353&r1=1402352&r2=1402353&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/load.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/load.js Thu Oct 25 23:14:05 2012
@@ -30,6 +30,7 @@ var App = require('app');
 App.ChartClusterMetricsLoad = App.ChartLinearTimeView.extend({
   id: "cluster-metrics-load",
   url: "/data/cluster_metrics/load_1hr.json",
+  title: "Cluster Load",
   
   transformToSeries: function(jsonData){
     var seriesArray = [];

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/memory.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/memory.js?rev=1402353&r1=1402352&r2=1402353&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/memory.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/memory.js Thu Oct 25 23:14:05 2012
@@ -29,8 +29,9 @@ var App = require('app');
 App.ChartClusterMetricsMemory = App.ChartLinearTimeView.extend({
   id: "cluster-metrics-memory",
   url: "/data/cluster_metrics/memory_1hr.json",
-  
+  title: "Memory Usage",
   yAxisFormatter: App.ChartLinearTimeView.BytesFormatter,
+  
   transformToSeries: function (jsonData) {
     var seriesArray = [];
     if (jsonData instanceof Array) {

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/network.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/network.js?rev=1402353&r1=1402352&r2=1402353&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/network.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/dashboard/cluster_metrics/network.js Thu Oct 25 23:14:05 2012
@@ -30,6 +30,7 @@ var App = require('app');
 App.ChartClusterMetricsNetwork = App.ChartLinearTimeView.extend({
   id: "cluster-metrics-network",
   url : "/data/cluster_metrics/network_1hr.json",
+  title: "Network Usage",
   yAxisFormatter: App.ChartLinearTimeView.BytesFormatter,
   
   transformToSeries : function (jsonData) {

Added: incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/file_operations.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/file_operations.js?rev=1402353&view=auto
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/file_operations.js (added)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/file_operations.js Thu Oct 25 23:14:05 2012
@@ -0,0 +1,74 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+var App = require('app');
+
+/**
+ * @class
+ * 
+ * This is a view for showing cluster CPU metrics
+ * 
+ * @extends App.ChartLinearTimeView
+ * @extends Ember.Object
+ * @extends Ember.View
+ */
+App.ChartServiceMetricsHDFS_FileOperations = App.ChartLinearTimeView.extend({
+  id: "service-metrics-hdfs-file-operations",
+  url: "/data/services/metrics/hdfs/file_operations.json",
+  title: "File Operations",
+  
+  transformToSeries: function (jsonData) {
+    var seriesArray = [];
+    if (jsonData && jsonData.metrics && jsonData.metrics.dfs && jsonData.metrics.dfs.namenode) {
+      for (var name in jsonData.metrics.dfs.namenode){
+        var displayName;
+        var seriesData = jsonData.metrics.dfs.namenode[name];
+        switch (name) {
+          case "FileInfoOps":
+            displayName = "File Information Operations";
+            break;
+          case "DeleteFileOps":
+            displayName = "Delete File Operations";
+            break;
+          case "CreateFileOps":
+            displayName = "Create File Operations";
+            break;
+          default:
+            break;
+        }
+        if(seriesData){
+          // Is it a string?
+          if("string" == typeof seriesData){
+            seriesData = JSON.parse(seriesData);
+          }
+          // We have valid data
+          var series = {};
+          series.name = displayName;
+          series.data = [];
+          for ( var index = 0; index < seriesData.length; index++) {
+            series.data.push({
+              x: seriesData[index][1],
+              y: seriesData[index][0]
+            });
+          }
+          seriesArray.push(series);
+        }
+      }
+    }
+    return seriesArray;
+  }
+});
\ No newline at end of file

Added: incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/gc.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/gc.js?rev=1402353&view=auto
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/gc.js (added)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/gc.js Thu Oct 25 23:14:05 2012
@@ -0,0 +1,69 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+var App = require('app');
+
+/**
+ * @class
+ * 
+ * This is a view for showing cluster CPU metrics
+ * 
+ * @extends App.ChartLinearTimeView
+ * @extends Ember.Object
+ * @extends Ember.View
+ */
+App.ChartServiceMetricsHDFS_GC = App.ChartLinearTimeView.extend({
+  id: "service-metrics-hdfs-gc",
+  url: "/data/services/metrics/hdfs/gc.json",
+  title: "Garbage Collection",
+  yAxisFormatter: App.ChartLinearTimeView.TimeElapsedFormatter,
+  
+  transformToSeries: function (jsonData) {
+    var seriesArray = [];
+    if (jsonData && jsonData.metrics && jsonData.metrics.jvm) {
+      for (var name in jsonData.metrics.jvm){
+        var displayName;
+        var seriesData = jsonData.metrics.jvm[name];
+        switch (name) {
+          case "gcTimeMillis":
+            displayName = "Time";
+            break;
+          default:
+            break;
+        }
+        if(seriesData){
+          // Is it a string?
+          if("string" == typeof seriesData){
+            seriesData = JSON.parse(seriesData);
+          }
+          // We have valid data
+          var series = {};
+          series.name = displayName;
+          series.data = [];
+          for ( var index = 0; index < seriesData.length; index++) {
+            series.data.push({
+              x: seriesData[index][1],
+              y: seriesData[index][0]
+            });
+          }
+          seriesArray.push(series);
+        }
+      }
+    }
+    return seriesArray;
+  }
+});
\ No newline at end of file

Added: incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/io.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/io.js?rev=1402353&view=auto
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/io.js (added)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/io.js Thu Oct 25 23:14:05 2012
@@ -0,0 +1,72 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+var App = require('app');
+
+/**
+ * @class
+ * 
+ * This is a view for showing cluster CPU metrics
+ * 
+ * @extends App.ChartLinearTimeView
+ * @extends Ember.Object
+ * @extends Ember.View
+ */
+App.ChartServiceMetricsHDFS_IO = App.ChartLinearTimeView.extend({
+  id: "service-metrics-hdfs-io",
+  url: "/data/services/metrics/hdfs/io.json",
+  title: "HDFS I/O",
+  yAxisFormatter: App.ChartLinearTimeView.BytesFormatter,
+  
+  transformToSeries: function (jsonData) {
+    var seriesArray = [];
+    if (jsonData && jsonData.metrics && jsonData.metrics.dfs && jsonData.metrics.dfs.datanode) {
+      for (var name in jsonData.metrics.dfs.datanode){
+        var displayName;
+        var seriesData = jsonData.metrics.dfs.datanode[name];
+        switch (name) {
+          case "bytes_written":
+            displayName = "Bytes Written";
+            break;
+          case "bytes_read":
+            displayName = "Bytes Read";
+            break;
+          default:
+            break;
+        }
+        if(seriesData){
+          // Is it a string?
+          if("string" == typeof seriesData){
+            seriesData = JSON.parse(seriesData);
+          }
+          // We have valid data
+          var series = {};
+          series.name = displayName;
+          series.data = [];
+          for ( var index = 0; index < seriesData.length; index++) {
+            series.data.push({
+              x: seriesData[index][1],
+              y: seriesData[index][0]
+            });
+          }
+          seriesArray.push(series);
+        }
+      }
+    }
+    return seriesArray;
+  }
+});
\ No newline at end of file

Added: incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/jvm_heap.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/jvm_heap.js?rev=1402353&view=auto
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/jvm_heap.js (added)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/jvm_heap.js Thu Oct 25 23:14:05 2012
@@ -0,0 +1,78 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+var App = require('app');
+
+/**
+ * @class
+ * 
+ * This is a view for showing cluster CPU metrics
+ * 
+ * @extends App.ChartLinearTimeView
+ * @extends Ember.Object
+ * @extends Ember.View
+ */
+App.ChartServiceMetricsHDFS_JVMHeap = App.ChartLinearTimeView.extend({
+  id: "service-metrics-hdfs-jvm-heap",
+  url: "/data/services/metrics/hdfs/jvm_heap.json",
+  title: "JVM Memory Status",
+  yAxisFormatter: App.ChartLinearTimeView.BytesFormatter,
+  
+  transformToSeries: function (jsonData) {
+    var seriesArray = [];
+    if (jsonData && jsonData.metrics && jsonData.metrics.jvm) {
+      for (var name in jsonData.metrics.jvm){
+        var displayName;
+        var seriesData = jsonData.metrics.jvm[name];
+        switch (name) {
+          case "memHeapCommittedM":
+            displayName = "Heap Memory Committed";
+            break;
+          case "memNonHeapUsedM":
+            displayName = "Non Heap Memory Used";
+            break;
+          case "memHeapUsedM":
+            displayName = "Heap Memory Used";
+            break;
+          case "memNonHeapCommittedM":
+            displayName = "Non Heap Memory Committed";
+            break;
+          default:
+            break;
+        }
+        if(seriesData){
+          // Is it a string?
+          if("string" == typeof seriesData){
+            seriesData = JSON.parse(seriesData);
+          }
+          // We have valid data
+          var series = {};
+          series.name = displayName;
+          series.data = [];
+          for ( var index = 0; index < seriesData.length; index++) {
+            series.data.push({
+              x: seriesData[index][1],
+              y: seriesData[index][0]
+            });
+          }
+          seriesArray.push(series);
+        }
+      }
+    }
+    return seriesArray;
+  }
+});
\ No newline at end of file

Added: incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/jvm_threads.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/jvm_threads.js?rev=1402353&view=auto
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/jvm_threads.js (added)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/jvm_threads.js Thu Oct 25 23:14:05 2012
@@ -0,0 +1,77 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+var App = require('app');
+
+/**
+ * @class
+ * 
+ * This is a view for showing cluster CPU metrics
+ * 
+ * @extends App.ChartLinearTimeView
+ * @extends Ember.Object
+ * @extends Ember.View
+ */
+App.ChartServiceMetricsHDFS_JVMThreads = App.ChartLinearTimeView.extend({
+  id: "service-metrics-hdfs-jvm-threads",
+  url: "/data/services/metrics/hdfs/jvm_threads.json",
+  title: "JVM Thread Status",
+  
+  transformToSeries: function (jsonData) {
+    var seriesArray = [];
+    if (jsonData && jsonData.metrics && jsonData.metrics.jvm) {
+      for (var name in jsonData.metrics.jvm){
+        var displayName;
+        var seriesData = jsonData.metrics.jvm[name];
+        switch (name) {
+          case "threadsBlocked":
+            displayName = "Threads Blocked";
+            break;
+          case "threadsWaiting":
+            displayName = "Threads Waiting";
+            break;
+          case "threadsTimedWaiting":
+            displayName = "Threads Timed Waiting";
+            break;
+          case "threadsRunnable":
+            displayName = "Threads Runnable";
+            break;
+          default:
+            break;
+        }
+        if(seriesData){
+          // Is it a string?
+          if("string" == typeof seriesData){
+            seriesData = JSON.parse(seriesData);
+          }
+          // We have valid data
+          var series = {};
+          series.name = displayName;
+          series.data = [];
+          for ( var index = 0; index < seriesData.length; index++) {
+            series.data.push({
+              x: seriesData[index][1],
+              y: seriesData[index][0]
+            });
+          }
+          seriesArray.push(series);
+        }
+      }
+    }
+    return seriesArray;
+  }
+});
\ No newline at end of file

Added: incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/rpc.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/rpc.js?rev=1402353&view=auto
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/rpc.js (added)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/metrics/hdfs/rpc.js Thu Oct 25 23:14:05 2012
@@ -0,0 +1,69 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+var App = require('app');
+
+/**
+ * @class
+ * 
+ * This is a view for showing cluster CPU metrics
+ * 
+ * @extends App.ChartLinearTimeView
+ * @extends Ember.Object
+ * @extends Ember.View
+ */
+App.ChartServiceMetricsHDFS_RPC = App.ChartLinearTimeView.extend({
+  id: "service-metrics-hdfs-rpc",
+  url: "/data/services/metrics/hdfs/rpc.json",
+  title: "RPC",
+  yAxisFormatter: App.ChartLinearTimeView.TimeElapsedFormatter,
+  
+  transformToSeries: function (jsonData) {
+    var seriesArray = [];
+    if (jsonData && jsonData.metrics && jsonData.metrics.rpc) {
+      for (var name in jsonData.metrics.rpc){
+        var displayName;
+        var seriesData = jsonData.metrics.rpc[name];
+        switch (name) {
+          case "RpcQueueTime_avg_time":
+            displayName = "Queue Average Wait Time";
+            break;
+          default:
+            break;
+        }
+        if(seriesData){
+          // Is it a string?
+          if("string" == typeof seriesData){
+            seriesData = JSON.parse(seriesData);
+          }
+          // We have valid data
+          var series = {};
+          series.name = displayName;
+          series.data = [];
+          for ( var index = 0; index < seriesData.length; index++) {
+            series.data.push({
+              x: seriesData[index][1],
+              y: seriesData[index][0]
+            });
+          }
+          seriesArray.push(series);
+        }
+      }
+    }
+    return seriesArray;
+  }
+});
\ No newline at end of file

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/summary.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/summary.js?rev=1402353&r1=1402352&r2=1402353&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/summary.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/service/info/summary.js Thu Oct 25 23:14:05 2012
@@ -87,12 +87,17 @@ App.MainServiceInfoSummaryView = Em.View
             summary['dfs_percent_disk_used'] = parseFloat((100 - summary['dfs_percent_remaining']).toFixed(2)) + "%";
             summary['used_bytes'] = (summary['dfs_used_bytes'] + summary['nondfs_used_bytes']).bytesToSize(2, 'parseFloat');
             summary['dfs_total_bytes'] = summary['dfs_total_bytes'].bytesToSize(2, 'parseFloat');
+            summary['metricGraphViews'] = [App.ChartServiceMetricsHDFS_JVMThreads.extend(), 
+                                           App.ChartServiceMetricsHDFS_JVMHeap.extend(), 
+                                           App.ChartServiceMetricsHDFS_IO.extend(), 
+                                           App.ChartServiceMetricsHDFS_RPC.extend(), 
+                                           App.ChartServiceMetricsHDFS_FileOperations.extend(), 
+                                           App.ChartServiceMetricsHDFS_GC.extend()];
           } else if (serviceName == 'mapreduce') {
             summary['start_time'] = summary['start_time'].toDaysHoursMinutes();
             summary['memory_heap_percent_used'] = summary['memory_heap_used'].countPercentageRatio(summary['memory_heap_max']);
             summary['memory_heap_used'] = summary['memory_heap_used'].bytesToSize(2, 'parseFloat');
             summary['memory_heap_max'] = summary['memory_heap_max'].bytesToSize(2, 'parseFloat');
-
           } else if (serviceName == 'hbase') {
             summary['memory_heap_percent_used'] = summary['memory_heap_used'].countPercentageRatio(summary['memory_heap_max']);
             summary['memory_heap_used'] = summary['memory_heap_used'].bytesToSize(2, 'parseFloat');