You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ja...@apache.org on 2015/04/25 18:38:06 UTC

[1/2] ambari git commit: AMBARI-10746. Integrate service summary page and heatmap page with the active layout API. (jaimin)

Repository: ambari
Updated Branches:
  refs/heads/trunk 682d82eef -> 36ab07ca6


http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-web/app/assets/data/widget_layouts/YARN_SUMMARY.json
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/data/widget_layouts/YARN_SUMMARY.json b/ambari-web/app/assets/data/widget_layouts/YARN_SUMMARY.json
new file mode 100644
index 0000000..6b4317e
--- /dev/null
+++ b/ambari-web/app/assets/data/widget_layouts/YARN_SUMMARY.json
@@ -0,0 +1,84 @@
+
+{
+  "href" : "http://c6401.ambari.apache.org:8080/api/v1/users/admin/activeWidgetLayouts?WidgetLayoutInfo/section_name=YARN_SUMMARY",
+  "items" : [
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widget_layouts/10",
+      "WidgetLayoutInfo" : {
+        "cluster_name" : "c1",
+        "display_name" : "Standard YARN Dashboard",
+        "id" : 10,
+        "layout_name" : "admin_yarn_dashboard",
+        "scope" : "USER",
+        "section_name" : "YARN_SUMMARY",
+        "user_name" : "admin",
+        "widgets" : [
+          {
+            "WidgetInfo" : {
+              "id" : 34,
+              "metrics" : "[{\"name\":\"yarn.NodeManagerMetrics.AllocatedGB\",\"metric_path\":\"metrics/yarn/AllocatedGB\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"},{\"name\":\"proc_total\",\"metric_path\":\"metrics/process/proc_total\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"}]",
+              "author" : "ambari",
+              "description" : "",
+              "scope" : "CLUSTER",
+              "properties" : "{\"display_unit\":\"\",\"graph_type\":\"LINE\",\"time_range\":\"1\"}",
+              "widget_name" : "NodeManager RAM Utilization",
+              "widget_type" : "GRAPH",
+              "time_created" : 1429906622523,
+              "display_name" : "NodeManager RAM Utilization",
+              "values" : "[{\"name\":\"Total Allocatable RAM Utilized across NodeManager\",\"value\":\"${yarn.NodeManagerMetrics.AllocatedGB}\"},{\"name\":\"NodeManager total processes\",\"value\":\"${proc_total}\"}]",
+              "cluster_name" : "c1"
+            }
+          },
+          {
+            "WidgetInfo" : {
+              "id" : 35,
+              "metrics" : "[{\"name\":\"yarn.NodeManagerMetrics.AllocatedVCores\",\"metric_path\":\"metrics/yarn/AllocatedVCores\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"},{\"name\":\"cpu_idle\",\"metric_path\":\"metrics/cpu/cpu_idle\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"}]",
+              "author" : "ambari",
+              "description" : "",
+              "scope" : "CLUSTER",
+              "properties" : "{\"display_unit\":\"\",\"graph_type\":\"LINE\",\"time_range\":\"1\"}",
+              "widget_name" : "NodeManager CPU Utilization",
+              "widget_type" : "GRAPH",
+              "time_created" : 1429906622523,
+              "display_name" : "NodeManager CPU Utilization",
+              "values" : "[{\"name\":\"Total Allocatable CPU Utilized across NodeManager\",\"value\":\"${yarn.NodeManagerMetrics.AllocatedVCores}\"},{\"name\":\"NodeManager CPU Idle\",\"value\":\"${cpu_idle}\"}]",
+              "cluster_name" : "c1"
+            }
+          },
+          {
+            "WidgetInfo" : {
+              "id" : 36,
+              "metrics" : "[{\"name\":\"read_bytes\",\"metric_path\":\"metrics/disk/read_bytes\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"},{\"name\":\"write_bytes\",\"metric_path\":\"metrics/disk/write_bytes\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"},{\"name\":\"bytes_in\",\"metric_path\":\"metrics/network/bytes_in\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"},{\"name\":\"bytes_out\",\"metric_path\":\"metrics/network/bytes_out\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"}]",
+              "author" : "ambari",
+              "description" : "",
+              "scope" : "CLUSTER",
+              "properties" : "{\"display_unit\":\"\",\"graph_type\":\"LINE\",\"time_range\":\"1\"}",
+              "widget_name" : "NodeManager Disk and Network Utilization",
+              "widget_type" : "GRAPH",
+              "time_created" : 1429906622523,
+              "display_name" : "NodeManager Disk and Network Utilization",
+              "values" : "[{\"name\":\"DISK IO\",\"value\":\"${read_bytes + write_bytes}\"},{\"name\":\"Network IO\",\"value\":\"${bytes_in + bytes_out}\"}]",
+              "cluster_name" : "c1"
+            }
+          },
+          {
+            "WidgetInfo" : {
+              "id" : 37,
+              "metrics" : "[{\"name\":\"yarn.NodeManagerMetrics.ContainersFailed\",\"metric_path\":\"metrics/yarn/ContainersFailed\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"}]",
+              "author" : "ambari",
+              "description" : "",
+              "scope" : "CLUSTER",
+              "properties" : "{\"display_unit\":\"\",\"graph_type\":\"LINE\",\"time_range\":\"1\"}",
+              "widget_name" : "NodeManager Container Failures",
+              "widget_type" : "GRAPH",
+              "time_created" : 1429906622523,
+              "display_name" : "NodeManager Container Failures",
+              "values" : "[{\"name\":\"NodeManager Container Failures\",\"value\":\"${yarn.NodeManagerMetrics.ContainersFailed}\"}]",
+              "cluster_name" : "c1"
+            }
+          }
+        ]
+      }
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-web/app/controllers/main/charts/heatmap.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/charts/heatmap.js b/ambari-web/app/controllers/main/charts/heatmap.js
index 8404c2a..f5741f0 100644
--- a/ambari-web/app/controllers/main/charts/heatmap.js
+++ b/ambari-web/app/controllers/main/charts/heatmap.js
@@ -74,7 +74,7 @@ App.MainChartsHeatmapController = Em.Controller.extend(App.WidgetSectionMixin, {
       });
       var categories = self.categorizeByServiceName(self.get('allHeatmaps'));
       self.set('heatmapCategories', categories);
-      self.loadActiveWidgetLayout();
+      self.getActiveWidgetLayout();
     });
   },
 
@@ -112,20 +112,6 @@ App.MainChartsHeatmapController = Em.Controller.extend(App.WidgetSectionMixin, {
   },
 
   /**
-   * success callback of <code>loadActiveWidgetLayout()</code>
-   * @overrriden
-   * @param {object|null} data
-   */
-  loadActiveWidgetLayoutSuccessCallback: function (data) {
-    if (data.items[0]) {
-      App.widgetMapper.map(data.items[0].WidgetLayoutInfo);
-      App.widgetLayoutMapper.map(data);
-      this.set('activeWidgetLayout', App.WidgetLayout.find().findProperty('layoutName', this.get('defaultLayoutName')));
-      this.set('isWidgetsLoaded', true);
-    }
-  },
-
-  /**
    *  Gets all heatmap widgets that should be available in select metrics dropdown on heatmap page
    * @return {$.ajax}
    */
@@ -136,7 +122,8 @@ App.MainChartsHeatmapController = Em.Controller.extend(App.WidgetSectionMixin, {
       name: 'widgets.get',
       sender: this,
       data: {
-        urlParams: urlParams
+        urlParams: urlParams,
+        sectionName: this.get('sectionName')
       }
     });
   },
@@ -250,7 +237,7 @@ App.MainChartsHeatmapController = Em.Controller.extend(App.WidgetSectionMixin, {
     var self = this;
     var metricItem = Em.Object.create(event.context);
     this.saveWidgetLayout([metricItem]).done(function(){
-      self.loadActiveWidgetLayout();
+      self.getActiveWidgetLayout();
     });
   },
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-web/app/controllers/main/service/info/summary.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/info/summary.js b/ambari-web/app/controllers/main/service/info/summary.js
index e65b9dc..9223cc0 100644
--- a/ambari-web/app/controllers/main/service/info/summary.js
+++ b/ambari-web/app/controllers/main/service/info/summary.js
@@ -315,13 +315,6 @@ App.MainServiceInfoSummaryController = Em.Controller.extend(App.WidgetSectionMix
 
 
   /**
-   * @type {Em.A}
-   */
-  widgetLayouts: function () {
-    return App.WidgetLayout.find();
-  }.property('isWidgetLayoutsLoaded'),
-
-  /**
    * load widget layouts across all users in CLUSTER scope
    * @returns {$.ajax}
    */
@@ -513,7 +506,7 @@ App.MainServiceInfoSummaryController = Em.Controller.extend(App.WidgetSectionMix
    * update current active widget layout
    */
   updateActiveLayout: function () {
-    this.loadActiveWidgetLayout();
+    this.getActiveWidgetLayout();
   },
 
   /**

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-web/app/mixins/common/widgets/widget_section.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/widgets/widget_section.js b/ambari-web/app/mixins/common/widgets/widget_section.js
index c8b76e9..8ba6fd5 100644
--- a/ambari-web/app/mixins/common/widgets/widget_section.js
+++ b/ambari-web/app/mixins/common/widgets/widget_section.js
@@ -33,17 +33,38 @@ App.WidgetSectionMixin = Ember.Mixin.create({
   }.property('content.serviceName'),
 
   /**
+   * UI user default layout name
+   */
+  userLayoutName: function () {
+    var heatmapType;
+    var loginName = App.router.get('loginName');
+    if (this.get('content.serviceName')) {
+      heatmapType = this.get('content.serviceName').toLowerCase();
+    } else {
+      heatmapType = "system";
+    }
+    return loginName + "_" + heatmapType + this.layoutNameSuffix;
+  }.property('content.serviceName'),
+
+  /**
    * UI section name
    */
   sectionName: function () {
     if (this.get('content.serviceName')) {
       return this.get('content.serviceName') + this.sectionNameSuffix;
     } else {
-      return "SYSTEM"  + this.sectionNameSuffix
+      return "SYSTEM" + this.sectionNameSuffix
     }
   }.property('content.serviceName'),
 
 
+  /**
+   * @type {Em.A}
+   */
+  widgetLayouts: function () {
+    return App.WidgetLayout.find();
+  }.property('isWidgetLayoutsLoaded'),
+
 
   /**
    * Does Service has widget descriptor defined in the stack
@@ -57,7 +78,7 @@ App.WidgetSectionMixin = Ember.Mixin.create({
     } else if (this.get('sectionName') === 'SYSTEM_HEATMAPS') {
       isServiceWithWidgetdescriptor = true;
     }
-    return isServiceWithWidgetdescriptor && App.supports.customizedWidgets;
+    return isServiceWithWidgetdescriptor && (App.supports.customizedWidgets || this.sectionNameSuffix === "_HEATMAPS");
   }.property('content.serviceName'),
 
   /**
@@ -73,27 +94,31 @@ App.WidgetSectionMixin = Ember.Mixin.create({
       if (this.get('activeWidgetLayout.widgets')) {
         return this.get('activeWidgetLayout.widgets').toArray();
       } else {
-        return  [];
+        return [];
       }
     }
   }.property('isWidgetsLoaded'),
 
+
   /**
    * load widgets defined by user
    * @returns {$.ajax}
    */
-  loadActiveWidgetLayout: function () {
+  getActiveWidgetLayout: function () {
+    var sectionName = this.get('sectionName');
+    var urlParams = 'WidgetLayoutInfo/section_name=' + sectionName;
     this.set('activeWidgetLayout', {});
     this.set('isWidgetsLoaded', false);
     if (this.get('isServiceWithEnhancedWidgets')) {
       return App.ajax.send({
-        name: 'widget.layout.get',
+        name: 'widgets.layouts.active.get',
         sender: this,
         data: {
-          layoutName: this.get('defaultLayoutName'),
-          serviceName: this.get('content.serviceName')
+          userName: App.router.get('loginName'),
+          sectionName: sectionName,
+          urlParams: urlParams
         },
-        success: 'loadActiveWidgetLayoutSuccessCallback'
+        success: 'getActiveWidgetLayoutSuccessCallback'
       });
     } else {
       this.set('isWidgetsLoaded', true);
@@ -102,18 +127,112 @@ App.WidgetSectionMixin = Ember.Mixin.create({
 
 
   /**
-   * success callback of <code>loadActiveWidgetLayout()</code>
+   * success callback of <code>getActiveWidgetLayout()</code>
    * @param {object|null} data
    */
-  loadActiveWidgetLayoutSuccessCallback: function (data) {
+  getActiveWidgetLayoutSuccessCallback: function (data) {
+    var self = this;
     if (data.items[0]) {
+      self.getWidgetLayoutSuccessCallback(data);
+    } else {
+      self.getAllActiveWidgetLayouts().done(function (activeWidgetLayoutsData) {
+        self.getDefaultWidgetLayoutByName(self.get('defaultLayoutName')).done(function (defaultWidgetLayoutData) {
+          self.createUserWidgetLayout(defaultWidgetLayoutData).done(function (userLayoutIdData) {
+            var activeWidgetLayouts;
+            var widgetLayouts = [];
+            if (!!activeWidgetLayoutsData.items.length) {
+              widgetLayouts = activeWidgetLayoutsData.items.map(function (item) {
+                return {
+                  "id": item.WidgetLayoutInfo.id
+                }
+              });
+            }
+            widgetLayouts.push({id: userLayoutIdData.resources[0].WidgetLayoutInfo.id});
+            activeWidgetLayouts = {
+              "WidgetLayouts": widgetLayouts
+            };
+            self.saveActiveWidgetLayouts(activeWidgetLayouts).done(function () {
+              self.getActiveWidgetLayout();
+            });
+          });
+        });
+      });
+    }
+  },
+
+  getAllActiveWidgetLayouts: function () {
+    return App.ajax.send({
+      name: 'widgets.layouts.all.active.get',
+      sender: this,
+      data: {
+        userName: App.router.get('loginName')
+      }
+    });
+  },
+
+  /**
+   * success callback of <code>getWidgetLayout()</code>
+   * @param {object|null} data
+   */
+  getWidgetLayoutSuccessCallback: function (data) {
+    if (data) {
       App.widgetMapper.map(data.items[0].WidgetLayoutInfo);
       App.widgetLayoutMapper.map(data);
-      this.set('activeWidgetLayout', App.WidgetLayout.find().findProperty('layoutName', this.get('defaultLayoutName')));
+      this.set('activeWidgetLayout', App.WidgetLayout.find().findProperty('id', data.items[0].WidgetLayoutInfo.id));
       this.set('isWidgetsLoaded', true);
     }
   },
 
+
+  getDefaultWidgetLayoutByName: function (layoutName) {
+    var urlParams = 'WidgetLayoutInfo/layout_name=' + layoutName;
+    return App.ajax.send({
+      name: 'widget.layout.get',
+      sender: this,
+      data: {
+        urlParams: urlParams
+      }
+    });
+  },
+
+  createUserWidgetLayout: function (defaultWidgetLayoutData) {
+    var layout = defaultWidgetLayoutData.items[0].WidgetLayoutInfo;
+    var layoutName = this.get('userLayoutName');
+    var data = {
+      "WidgetLayoutInfo": {
+        "display_name": layout.display_name,
+        "layout_name": layoutName,
+        "scope": "USER",
+        "section_name": layout.section_name,
+        "user_name": App.router.get('loginName'),
+        "widgets": layout.widgets.map(function (widget) {
+          return {
+            "id": widget.WidgetInfo.id
+          }
+        })
+      }
+    };
+    return App.ajax.send({
+      name: 'widget.layout.create',
+      sender: this,
+      data: {
+        data: data
+      }
+    });
+  },
+
+  saveActiveWidgetLayouts: function (activeWidgetLayouts) {
+    return App.ajax.send({
+      name: 'widget.activelayouts.edit',
+      sender: this,
+      data: {
+        data: activeWidgetLayouts,
+        userName: App.router.get('loginName')
+      }
+    });
+  },
+
+
   /**
    * save layout after re-order widgets
    * return {$.ajax}

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-web/app/utils/ajax/ajax.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/ajax/ajax.js b/ambari-web/app/utils/ajax/ajax.js
index cbb0021..9911562 100644
--- a/ambari-web/app/utils/ajax/ajax.js
+++ b/ambari-web/app/utils/ajax/ajax.js
@@ -2408,7 +2408,7 @@ var urls = {
 
   'widgets.get': {
     real: '/clusters/{clusterName}/widgets?{urlParams}',
-    mock: '/data/widget_layouts/all_heatmaps.json'
+    mock: '/data/widget_layouts/{sectionName}_WIDGETS.json'
   },
 
   'widgets.all.shared.get': {
@@ -2426,8 +2426,13 @@ var urls = {
     mock: '/data/widget_layouts/HBASE/stack_layout.json'
   },
 
+  'widget.layout.id.get': {
+    real: '/clusters/{clusterName}/widget_layouts/{layoutId}',
+    mock: '/data/widget_layouts/{serviceName}/default_dashboard.json'
+  },
+
   'widget.layout.get': {
-    real: '/clusters/{clusterName}/widget_layouts?WidgetLayoutInfo/layout_name={layoutName}',
+    real: '/clusters/{clusterName}/widget_layouts?{urlParams}',
     mock: '/data/widget_layouts/{serviceName}/default_dashboard.json'
   },
 
@@ -2442,6 +2447,17 @@ var urls = {
     }
   },
 
+  'widget.layout.create': {
+    real: '/clusters/{clusterName}/widget_layouts',
+    mock: '',
+    format: function (data) {
+      return {
+        type: 'POST',
+        data: JSON.stringify(data.data)
+      }
+    }
+  },
+
   'widgets.layout.userDefined.get': {
     real: '/users/{loginName}/widget_layouts?section_name={sectionName}',
     mock: '/data/widget_layouts/HBASE/empty_user_layout.json'
@@ -2452,6 +2468,29 @@ var urls = {
     mock: '/data/widget_layouts/HBASE/layouts.json'
   },
 
+  'widgets.layouts.active.get': {
+    real: '/users/{userName}/activeWidgetLayouts?{urlParams}',
+    mock: '/data/widget_layouts/{sectionName}.json'
+  },
+
+  'widgets.layouts.all.active.get': {
+    real: '/users/{userName}/activeWidgetLayouts',
+    mock: ''
+  },
+
+
+  'widget.activelayouts.edit': {
+    real: '/users/{userName}/activeWidgetLayouts/',
+    mock: '',
+    format: function (data) {
+      return {
+        type: 'PUT',
+        data: JSON.stringify(data.data)
+      }
+    }
+  },
+
+
   'widget.action.delete': {
     real: '/clusters/{clusterName}/widgets/{id}',
     mock: '',

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-web/app/views/common/widget/graph_widget_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/widget/graph_widget_view.js b/ambari-web/app/views/common/widget/graph_widget_view.js
index 1f705fa..4d170c5 100644
--- a/ambari-web/app/views/common/widget/graph_widget_view.js
+++ b/ambari-web/app/views/common/widget/graph_widget_view.js
@@ -95,7 +95,7 @@ App.GraphWidgetView = Em.View.extend(App.WidgetMixin, {
         dataLength = metrics.findProperty('name', match).data.length;
       } else {
         validExpression = false;
-        console.warn('Metrics not found to compute expression');
+        console.error('Metrics with name "' + match + '" not found to compute expression');
       }
     });
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-web/app/views/main/service/info/summary.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/summary.js b/ambari-web/app/views/main/service/info/summary.js
index eed0629..99d937d 100644
--- a/ambari-web/app/views/main/service/info/summary.js
+++ b/ambari-web/app/views/main/service/info/summary.js
@@ -543,7 +543,7 @@ App.MainServiceInfoSummaryView = Em.View.extend(App.UserPref, {
     var isMetricsSupported = svcName != 'STORM' || App.get('isStormMetricsSupported');
 
     if (App.get('supports.customizedWidgets')) {
-        this.get('controller').loadActiveWidgetLayout();
+        this.get('controller').getActiveWidgetLayout();
       if (App.get('supports.customizedWidgetLayout')) {
         this.get('controller').loadWidgetLayouts();
       }

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-web/test/controllers/main/service/info/summary_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/service/info/summary_test.js b/ambari-web/test/controllers/main/service/info/summary_test.js
index c0a3fb2..18ef3c4 100644
--- a/ambari-web/test/controllers/main/service/info/summary_test.js
+++ b/ambari-web/test/controllers/main/service/info/summary_test.js
@@ -227,7 +227,7 @@ describe('App.MainServiceInfoSummaryController', function () {
 
   });
 
-  describe("#loadActiveWidgetLayout() for Enhanced Dashboard", function () {
+  describe("#getActiveWidgetLayout() for Enhanced Dashboard", function () {
     before(function () {
       sinon.stub(App.ajax, 'send');
     });
@@ -239,12 +239,12 @@ describe('App.MainServiceInfoSummaryController', function () {
         isServiceWithEnhancedWidgets: true,
         content: Em.Object.create({serviceName: 'HDFS'})
       });
-      controller.loadActiveWidgetLayout();
-      expect(App.ajax.send.getCall(0).args[0].name).to.equal('widget.layout.get');
+      controller.getActiveWidgetLayout();
+      expect(App.ajax.send.getCall(0).args[0].name).to.equal('widgets.layouts.active.get');
     });
   });
 
-  describe("#loadActiveWidgetLayoutSuccessCallback()", function () {
+  describe("#getActiveWidgetLayoutSuccessCallback()", function () {
     beforeEach(function () {
       sinon.stub( App.widgetLayoutMapper, 'map');
       sinon.stub( App.widgetMapper, 'map');
@@ -258,7 +258,7 @@ describe('App.MainServiceInfoSummaryController', function () {
         isServiceWithEnhancedWidgets: true,
         content: Em.Object.create({serviceName: 'HDFS'})
       });
-      controller.loadActiveWidgetLayoutSuccessCallback({items:[{
+      controller.getActiveWidgetLayoutSuccessCallback({items:[{
         WidgetLayoutInfo: {}
       }]});
       expect(controller.get('isWidgetsLoaded')).to.be.true;


[2/2] ambari git commit: AMBARI-10746. Integrate service summary page and heatmap page with the active layout API. (jaimin)

Posted by ja...@apache.org.
AMBARI-10746. Integrate service summary page and heatmap page with the active layout API. (jaimin)


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

Branch: refs/heads/trunk
Commit: 36ab07ca6f786c8cc2c8dc8b28bd831b917322f4
Parents: 682d82e
Author: Jaimin Jetly <ja...@hortonworks.com>
Authored: Sat Apr 25 09:36:44 2015 -0700
Committer: Jaimin Jetly <ja...@hortonworks.com>
Committed: Sat Apr 25 09:36:44 2015 -0700

----------------------------------------------------------------------
 .../HBASE/0.96.0.2.0/widgets.json               | 134 ++++++---
 .../common-services/HDFS/2.1.0.2.0/widgets.json |  36 +--
 .../common-services/YARN/2.1.0.2.0/widgets.json |  30 +-
 .../stacks/HDP/2.3/services/HBASE/widgets.json  | 148 +++++++---
 .../data/widget_layouts/HBASE_HEATMAPS.json     |  35 +++
 .../widget_layouts/HBASE_HEATMAPS_WIDGETS.json  |  71 +++++
 .../data/widget_layouts/HBASE_SUMMARY.json      | 164 +++++++++++
 .../data/widget_layouts/HDFS_HEATMAPS.json      |  36 +++
 .../widget_layouts/HDFS_HEATMAPS_WIDGETS.json   |  97 +++++++
 .../data/widget_layouts/HDFS_SUMMARY.json       | 147 ++++++++++
 .../data/widget_layouts/SYSTEM_HEATMAPS.json    |  35 +++
 .../widget_layouts/SYSTEM_HEATMAPS_WIDGETS.json | 279 +++++++++++++++++++
 .../data/widget_layouts/YARN_HEATMAPS.json      |  35 +++
 .../widget_layouts/YARN_HEATMAPS_WIDGETS.json   |  84 ++++++
 .../data/widget_layouts/YARN_SUMMARY.json       |  84 ++++++
 .../app/controllers/main/charts/heatmap.js      |  21 +-
 .../controllers/main/service/info/summary.js    |   9 +-
 .../app/mixins/common/widgets/widget_section.js | 141 +++++++++-
 ambari-web/app/utils/ajax/ajax.js               |  43 ++-
 .../views/common/widget/graph_widget_view.js    |   2 +-
 .../app/views/main/service/info/summary.js      |   2 +-
 .../main/service/info/summary_test.js           |  10 +-
 22 files changed, 1479 insertions(+), 164 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/widgets.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/widgets.json b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/widgets.json
index b79c281..9af9e2b 100644
--- a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/widgets.json
+++ b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/widgets.json
@@ -6,8 +6,8 @@
       "section_name": "HBASE_SUMMARY",
       "widgetLayoutInfo": [
         {
-          "widget_name": "RS_READS_WRITES",
-          "display_name": "RegionServer Reads and Writes",
+          "widget_name": "Reads and Writes",
+          "display_name": "Reads and Writes",
           "description": "This widget shows all the read requests and write requests on all regions for a RegionServer",
           "widget_type": "GRAPH",
           "is_visible": true,
@@ -62,14 +62,14 @@
           "properties": {
             "display_unit": "Requests",
             "graph_type": "LINE",
-            "time_range": "86400000"
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "READ_LATENCY_95",
-          "display_name": "95% Read Latency",
-          "description": "This widget shows 95th percentile of the read latency.",
-          "widget_type": "NUMBER",
+          "widget_name": "Read Latency",
+          "display_name": "Read Latency",
+          "description": "Widget shows 95% Read Latency",
+          "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [
             {
@@ -81,19 +81,29 @@
           ],
           "values": [
             {
-              "name": "95% Read Latency",
+              "name": "Cluster wide minimum of 95% Read Latency",
+              "value": "${regionserver.Server.Get_95th_percentile}"
+            },
+            {
+              "name": "Weighted average of 95% read Latency",
+              "value": "${regionserver.Server.Get_95th_percentile}"
+            },
+            {
+              "name": "Cluster wide maximum of 95% read Latency",
               "value": "${regionserver.Server.Get_95th_percentile}"
             }
           ],
           "properties": {
-            "display_unit": ""
+            "display_unit": "ms",
+            "graph_type": "LINE",
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "WRITE_LATENCY_95",
-          "display_name": "95% Write Latency",
+          "widget_name": "Write Latency",
+          "display_name": "Write Latency",
           "description": "This widget shows 95th percentile of the write latency.",
-          "widget_type": "NUMBER",
+          "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [
             {
@@ -123,16 +133,26 @@
           ],
           "values": [
             {
-              "name": "95% Write Latency",
+              "name": "Cluster wide minimum of 95% write Latency",
+              "value": "${regionserver.Server.Mutate_95th_percentile + regionserver.Server.Increment_95th_percentile + regionserver.Server.Append_95th_percentile + regionserver.Server.Delete_95th_percentile}"
+            },
+            {
+              "name": "Weighted average of 95% write Latency",
+              "value": "${regionserver.Server.Mutate_95th_percentile + regionserver.Server.Increment_95th_percentile + regionserver.Server.Append_95th_percentile + regionserver.Server.Delete_95th_percentile}"
+            },
+            {
+              "name": "Cluster wide maximum of 95% write Latency",
               "value": "${regionserver.Server.Mutate_95th_percentile + regionserver.Server.Increment_95th_percentile + regionserver.Server.Append_95th_percentile + regionserver.Server.Delete_95th_percentile}"
             }
           ],
           "properties": {
-            "display_unit": ""
+            "display_unit": "ms",
+            "graph_type": "LINE",
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "OPEN_CONNECTIONS",
+          "widget_name": "Open Connections",
           "display_name": "Open Connections",
           "description": "This widget shows number of current open connections",
           "widget_type": "GRAPH",
@@ -155,12 +175,12 @@
           "properties": {
             "display_unit": "Connections",
             "graph_type": "LINE",
-            "time_range": "86400000"
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "ACTIVE_HANDLER",
-          "display_name": "Active Handlers vs Calls in General Queue",
+          "widget_name": "Request Handlers",
+          "display_name": "Request Handlers",
           "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [
@@ -189,13 +209,13 @@
           ],
           "properties": {
             "graph_type": "LINE",
-            "time_range": "86400000"
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "FILES_LOCAL",
+          "widget_name": "Files Local",
           "display_name": "Files Local",
-          "description": "This widget shows percentage of files local.",
+          "description": "This widget shows weighted average for local files.",
           "widget_type": "NUMBER",
           "is_visible": true,
           "metrics": [
@@ -217,8 +237,8 @@
           }
         },
         {
-          "widget_name": "UPDATES_BLOCKED_TIME",
-          "display_name": "Updates Blocked Time",
+          "widget_name": "Blocked Updates",
+          "display_name": "Blocked Updates",
           "description": "Number of milliseconds updates have been blocked so the memstore can be flushed",
           "widget_type": "GRAPH",
           "is_visible": true,
@@ -239,13 +259,13 @@
           "properties": {
             "display_unit": "ms",
             "graph_type": "LINE",
-            "time_range": "86400000"
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "RS_HOST_METRICS",
-          "display_name": "ReqionServer System Metrics",
-          "description": "ReqionServer widget for Host CPU, Network and Disk Utilization",
+          "widget_name": "Cluster CPU",
+          "display_name": "Cluster CPU",
+          "description": "ReqionServer widget for CPU utilization",
           "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [
@@ -254,13 +274,26 @@
               "metric_path": "metrics/cpu/cpu_idle",
               "service_name": "HBASE",
               "component_name": "HBASE_REGIONSERVER"
-            },
+            }
+          ],
+          "values": [
             {
-              "name": "disk_free",
-              "metric_path": "metrics/disk/disk_free",
-              "service_name": "HBASE",
-              "component_name": "HBASE_REGIONSERVER"
-            },
+              "name": "CPU Idle",
+              "value": "${cpu_idle}"
+            }
+          ],
+          "properties": {
+            "graph_type": "LINE",
+            "time_range": "1"
+          }
+        },
+        {
+          "widget_name": "Cluster Network",
+          "display_name": "Cluster Network",
+          "description": "ReqionServer widget for network utilization",
+          "widget_type": "GRAPH",
+          "is_visible": true,
+          "metrics": [
             {
               "name": "pkts_in",
               "metric_path": "metrics/network/pkts_in",
@@ -276,21 +309,42 @@
           ],
           "values": [
             {
-              "name": "CPU Idle",
-              "value": "${cpu_idle}"
+              "name": "Packets In",
+              "value": "${pkts_in}"
             },
             {
-              "name": "Disk Free",
+              "name": "Packets Out",
               "value": "${disk_free}"
-            },
+            }
+          ],
+          "properties": {
+            "graph_type": "LINE",
+            "time_range": "1"
+          }
+        },
+        {
+          "widget_name": "Cluster Disk",
+          "display_name": "Cluster Disk",
+          "description": "ReqionServer widget for disk utilization",
+          "widget_type": "GRAPH",
+          "is_visible": true,
+          "metrics": [
+            {
+              "name": "disk_free",
+              "metric_path": "metrics/disk/disk_free",
+              "service_name": "HBASE",
+              "component_name": "HBASE_REGIONSERVER"
+            }
+          ],
+          "values": [
             {
-              "name": "Network Packets In/Out",
-              "value": "${pkts_in + pkts_out}"
+              "name": "Disk Free",
+              "value": "${disk_free}"
             }
           ],
           "properties": {
             "graph_type": "LINE",
-            "time_range": "86400000"
+            "time_range": "1"
           }
         }
       ]

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/widgets.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/widgets.json b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/widgets.json
index 15b983a..5731c7e 100644
--- a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/widgets.json
+++ b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/widgets.json
@@ -6,7 +6,7 @@
       "section_name": "HDFS_SUMMARY",
       "widgetLayoutInfo": [
         {
-          "widget_name": "GC_STATISTICS",
+          "widget_name": "GC Statistics",
           "display_name": "GC Statistics",
           "description": "This widget shows JVM Garbage collection statistics for Active NameNode",
           "widget_type": "GRAPH",
@@ -51,11 +51,11 @@
           "properties": {
             "display_unit": "Requests",
             "graph_type": "LINE",
-            "time_range": "86400000"
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "NUM_OPEN_CONNECTIONS",
+          "widget_name": "Client connections",
           "display_name": "Client connections",
           "description": "Number of open connections for Active NameNode.",
           "widget_type": "GRAPH",
@@ -79,11 +79,11 @@
           "properties": {
             "display_unit": "Connections",
             "graph_type": "LINE",
-            "time_range": "86400000"
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "JVM_HEAP_STATISTICS",
+          "widget_name": "NameNode JVM Heap Statistics",
           "display_name": "NameNode JVM Heap Statistics",
           "widget_type": "GRAPH",
           "is_visible": true,
@@ -115,11 +115,11 @@
           ],
           "properties": {
             "graph_type": "LINE",
-            "time_range": "86400000"
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "NN_CPU_RAM_UTILIZATION",
+          "widget_name": "NameNode CPU and RAM Utilization",
           "display_name": "NameNode CPU and RAM Utilization",
           "widget_type": "GRAPH",
           "is_visible": true,
@@ -151,11 +151,11 @@
           ],
           "properties": {
             "graph_type": "LINE",
-            "time_range": "86400000"
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "RPC_QUEUE_WAIT",
+          "widget_name": "RPC Queue Wait time",
           "display_name": "RPC Queue Wait time",
           "widget_type": "NUMBER",
           "is_visible": true,
@@ -203,7 +203,7 @@
           }
         },
         {
-          "widget_name": "CORRUPTED_BLOCKS",
+          "widget_name": "Corrupted Blocks",
           "display_name": "Corrupted Blocks",
           "widget_type": "NUMBER",
           "is_visible": true,
@@ -225,7 +225,7 @@
           }
         },
         {
-          "widget_name": "UNDER_REPLICATED_BLOCKS",
+          "widget_name": "Under Replicated Blocks",
           "display_name": "Under Replicated Blocks",
           "widget_type": "NUMBER",
           "is_visible": true,
@@ -254,7 +254,7 @@
       "section_name": "HDFS_HEATMAPS",
       "widgetLayoutInfo": [
         {
-          "widget_name": "HDFS_BYTES_READ",
+          "widget_name": "HDFS Bytes Read",
           "display_name": "HDFS Bytes Read",
           "description": "",
           "widget_type": "HEATMAP",
@@ -279,7 +279,7 @@
           }
         },
         {
-          "widget_name": "HDFS_BYTES_WRITE",
+          "widget_name": "HDFS Bytes Written",
           "display_name": "HDFS Bytes Written",
           "description": "",
           "widget_type": "HEATMAP",
@@ -304,7 +304,7 @@
           }
         },
         {
-          "widget_name": "DN_GC_TIME",
+          "widget_name": "DataNode Garbage Collection Time",
           "display_name": "DataNode Garbage Collection Time",
           "description": "",
           "widget_type": "HEATMAP",
@@ -329,7 +329,7 @@
           }
         },
         {
-          "widget_name": "DN_JVM_HEAP_USED",
+          "widget_name": "DataNode JVM Heap Memory Used",
           "display_name": "DataNode JVM Heap Memory Used",
           "description": "",
           "widget_type": "HEATMAP",
@@ -354,7 +354,7 @@
           }
         },
         {
-          "widget_name": "DN_JVM_HEAP_COMMITTED",
+          "widget_name": "DataNode JVM Heap Memory Committed",
           "display_name": "DataNode JVM Heap Memory Committed",
           "description": "",
           "widget_type": "HEATMAP",
@@ -379,7 +379,7 @@
           }
         },
         {
-          "widget_name": "DN_DISK_IO",
+          "widget_name": "DataNode Process Disk I/O Utilization",
           "display_name": "DataNode Process Disk I/O Utilization",
           "description": "",
           "widget_type": "HEATMAP",
@@ -422,7 +422,7 @@
           }
         },
         {
-          "widget_name": "DN_NETWORK_IO",
+          "widget_name": "DataNode Process Network I/O Utilization",
           "display_name": "DataNode Process Network I/O Utilization",
           "description": "",
           "widget_type": "HEATMAP",

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/widgets.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/widgets.json b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/widgets.json
index 9721b91..7b67cd8 100644
--- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/widgets.json
+++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/widgets.json
@@ -6,7 +6,7 @@
       "section_name": "YARN_SUMMARY",
       "widgetLayoutInfo": [
         {
-          "widget_name": "NM_RAM_UTILIZATION",
+          "widget_name": "NodeManager RAM Utilization",
           "display_name": "NodeManager RAM Utilization",
           "description": "",
           "widget_type": "GRAPH",
@@ -38,11 +38,11 @@
           "properties": {
             "display_unit": "",
             "graph_type": "LINE",
-            "time_range": "86400000"
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "NM_CPU_UTILIZATION",
+          "widget_name": "NodeManager CPU Utilization",
           "display_name": "NodeManager CPU Utilization",
           "description": "",
           "widget_type": "GRAPH",
@@ -74,11 +74,11 @@
           "properties": {
             "display_unit": "",
             "graph_type": "LINE",
-            "time_range": "86400000"
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "NM_DISK_NETWORK_IO",
+          "widget_name": "NodeManager Disk and Network Utilization",
           "display_name": "NodeManager Disk and Network Utilization",
           "description": "",
           "widget_type": "GRAPH",
@@ -122,11 +122,11 @@
           "properties": {
             "display_unit": "",
             "graph_type": "LINE",
-            "time_range": "86400000"
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "NM_CONTAINER_FAILURES",
+          "widget_name": "NodeManager Container Failures",
           "display_name": "NodeManager Container Failures",
           "description": "",
           "widget_type": "GRAPH",
@@ -148,7 +148,7 @@
           "properties": {
             "display_unit": "",
             "graph_type": "LINE",
-            "time_range": "86400000"
+            "time_range": "1"
           }
         }
       ]
@@ -159,8 +159,8 @@
       "section_name": "YARN_HEATMAPS",
       "widgetLayoutInfo": [
         {
-          "widget_name": "NM_GC_TIME",
-          "display_name": "NodeManager Garbage Collection Time",
+          "widget_name": "NodeManager GC Time",
+          "display_name": "NodeManager GC Time",
           "description": "",
           "widget_type": "HEATMAP",
           "is_visible": true,
@@ -184,7 +184,7 @@
           }
         },
         {
-          "widget_name": "NM_JVM_Heap_Used",
+          "widget_name": "NodeManager JVM Heap Memory Used",
           "display_name": "NodeManager JVM Heap Memory Used",
           "description": "",
           "widget_type": "HEATMAP",
@@ -209,7 +209,7 @@
           }
         },
         {
-          "widget_name": "YARN_MEMORY_USED",
+          "widget_name": "NodeManager Memory used %",
           "display_name": "NodeManager Memory used %",
           "description": "",
           "widget_type": "HEATMAP",
@@ -240,7 +240,7 @@
           }
         },
         {
-          "widget_name": "ALLOCATED_CONTAINER",
+          "widget_name": "Allocated Containers",
           "display_name": "Allocated Containers",
           "description": "",
           "widget_type": "HEATMAP",
@@ -265,7 +265,7 @@
           }
         },
         {
-          "widget_name": "NM_RAM_UTILIZED",
+          "widget_name": "NodeManager RAM Utilized",
           "display_name": "NodeManager RAM Utilized",
           "description": "",
           "widget_type": "HEATMAP",
@@ -290,7 +290,7 @@
           }
         },
         {
-          "widget_name": "NM_CPU_UTILIZED",
+          "widget_name": "NodeManager CPU Utilized",
           "display_name": "NodeManager CPU Utilized",
           "description": "",
           "widget_type": "HEATMAP",

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-server/src/main/resources/stacks/HDP/2.3/services/HBASE/widgets.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/services/HBASE/widgets.json b/ambari-server/src/main/resources/stacks/HDP/2.3/services/HBASE/widgets.json
index 19bd480..db5aee1 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/services/HBASE/widgets.json
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/services/HBASE/widgets.json
@@ -6,8 +6,8 @@
       "section_name": "HBASE_SUMMARY",
       "widgetLayoutInfo": [
         {
-          "widget_name": "RS_READS_WRITES",
-          "display_name": "RegionServer Reads and Writes",
+          "widget_name": "Reads and Writes",
+          "display_name": "Reads and Writes",
           "description": "This widget shows all the read requests and write requests on all regions for a RegionServer",
           "widget_type": "GRAPH",
           "is_visible": true,
@@ -62,14 +62,14 @@
           "properties": {
             "display_unit": "Requests",
             "graph_type": "LINE",
-            "time_range": "86400000"
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "READ_LATENCY_95",
-          "display_name": "95% Read Latency",
-          "description": "This widget shows 95th percentile of the read latency.",
-          "widget_type": "NUMBER",
+          "widget_name": "Read Latency",
+          "display_name": "Read Latency",
+          "description": "Widget shows 95% Read Latency",
+          "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [
             {
@@ -87,19 +87,29 @@
           ],
           "values": [
             {
-              "name": "95% Read Latency",
+              "name": "Cluster wide minimum of 95% Read Latency",
+              "value": "${regionserver.Server.Get_95th_percentile + regionserver.Server.ScanNext_95th_percentile}"
+            },
+            {
+              "name": "Weighted average of 95% Read Latency",
+              "value": "${regionserver.Server.Get_95th_percentile + regionserver.Server.ScanNext_95th_percentile}"
+            },
+            {
+              "name": "Cluster wide maximum of 95% Read Latency",
               "value": "${regionserver.Server.Get_95th_percentile + regionserver.Server.ScanNext_95th_percentile}"
             }
           ],
           "properties": {
-            "display_unit": ""
+            "display_unit": "ms",
+            "graph_type": "LINE",
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "WRITE_LATENCY_95",
-          "display_name": "95% Write Latency",
+          "widget_name": "Write Latency",
+          "display_name": "Write Latency",
           "description": "This widget shows 95th percentile of the write latency.",
-          "widget_type": "NUMBER",
+          "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [
             {
@@ -129,16 +139,26 @@
           ],
           "values": [
             {
-              "name": "95% Write Latency",
+              "name": "Cluster wide minimum of 95% write Latency",
+              "value": "${regionserver.Server.Mutate_95th_percentile + regionserver.Server.Increment_95th_percentile + regionserver.Server.Append_95th_percentile + regionserver.Server.Delete_95th_percentile}"
+            },
+            {
+              "name": "Weighted average of 95% write Latency",
+              "value": "${regionserver.Server.Mutate_95th_percentile + regionserver.Server.Increment_95th_percentile + regionserver.Server.Append_95th_percentile + regionserver.Server.Delete_95th_percentile}"
+            },
+            {
+              "name": "Cluster wide maximum of 95% write Latency",
               "value": "${regionserver.Server.Mutate_95th_percentile + regionserver.Server.Increment_95th_percentile + regionserver.Server.Append_95th_percentile + regionserver.Server.Delete_95th_percentile}"
             }
           ],
           "properties": {
-            "display_unit": ""
+            "display_unit": "ms",
+            "graph_type": "LINE",
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "OPEN_CONNECTIONS",
+          "widget_name": "Open Connections",
           "display_name": "Open Connections",
           "description": "This widget shows number of current open connections",
           "widget_type": "GRAPH",
@@ -161,12 +181,12 @@
           "properties": {
             "display_unit": "Connections",
             "graph_type": "LINE",
-            "time_range": "86400000"
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "ACTIVE_HANDLER",
-          "display_name": "Active Handlers vs Calls in General Queue",
+          "widget_name": "Request Handlers",
+          "display_name": "Request Handlers",
           "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [
@@ -195,13 +215,13 @@
           ],
           "properties": {
             "graph_type": "LINE",
-            "time_range": "86400000"
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "FILES_LOCAL",
+          "widget_name": "Files Local",
           "display_name": "Files Local",
-          "description": "This widget shows percentage of files local.",
+          "description": "This widget shows weighted average for local files.",
           "widget_type": "NUMBER",
           "is_visible": true,
           "metrics": [
@@ -219,12 +239,14 @@
             }
           ],
           "properties": {
-            "display_unit": "%"
+            "display_unit": "%",
+            "error_threshold":"25",
+            "warning_threshold": "75"
           }
         },
         {
-          "widget_name": "UPDATES_BLOCKED_TIME",
-          "display_name": "Updates Blocked Time",
+          "widget_name": "Blocked Updates",
+          "display_name": "Blocked Updates",
           "description": "Number of milliseconds updates have been blocked so the memstore can be flushed",
           "widget_type": "GRAPH",
           "is_visible": true,
@@ -245,13 +267,13 @@
           "properties": {
             "display_unit": "ms",
             "graph_type": "LINE",
-            "time_range": "86400000"
+            "time_range": "1"
           }
         },
         {
-          "widget_name": "RS_HOST_METRICS",
-          "display_name": "ReqionServer System Metrics",
-          "description": "ReqionServer widget for Host CPU, Network and Disk Utilization",
+          "widget_name": "Cluster CPU",
+          "display_name": "Cluster CPU",
+          "description": "ReqionServer widget for CPU utilization",
           "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [
@@ -260,13 +282,26 @@
               "metric_path": "metrics/cpu/cpu_idle",
               "service_name": "HBASE",
               "component_name": "HBASE_REGIONSERVER"
-            },
+            }
+          ],
+          "values": [
             {
-              "name": "disk_free",
-              "metric_path": "metrics/disk/disk_free",
-              "service_name": "HBASE",
-              "component_name": "HBASE_REGIONSERVER"
-            },
+              "name": "CPU Idle",
+              "value": "${cpu_idle}"
+            }
+          ],
+          "properties": {
+            "graph_type": "LINE",
+            "time_range": "1"
+          }
+        },
+        {
+          "widget_name": "Cluster Network",
+          "display_name": "Cluster Network",
+          "description": "ReqionServer widget for network utilization",
+          "widget_type": "GRAPH",
+          "is_visible": true,
+          "metrics": [
             {
               "name": "pkts_in",
               "metric_path": "metrics/network/pkts_in",
@@ -282,21 +317,42 @@
           ],
           "values": [
             {
-              "name": "CPU Idle",
-              "value": "${cpu_idle}"
+              "name": "Packets In",
+              "value": "${pkts_in}"
             },
             {
-              "name": "Disk Free",
+              "name": "Packets Out",
               "value": "${disk_free}"
-            },
+            }
+          ],
+          "properties": {
+            "graph_type": "LINE",
+            "time_range": "1"
+          }
+        },
+        {
+          "widget_name": "Cluster Disk",
+          "display_name": "Cluster Disk",
+          "description": "ReqionServer widget for disk utilization",
+          "widget_type": "GRAPH",
+          "is_visible": true,
+          "metrics": [
+            {
+              "name": "disk_free",
+              "metric_path": "metrics/disk/disk_free",
+              "service_name": "HBASE",
+              "component_name": "HBASE_REGIONSERVER"
+            }
+          ],
+          "values": [
             {
-              "name": "Network Packets In/Out",
-              "value": "${pkts_in + pkts_out}"
+              "name": "Disk Free",
+              "value": "${disk_free}"
             }
           ],
           "properties": {
             "graph_type": "LINE",
-            "time_range": "86400000"
+            "time_range": "1"
           }
         }
       ]
@@ -307,7 +363,7 @@
       "section_name": "HBASE_HEATMAPS",
       "widgetLayoutInfo": [
         {
-          "widget_name": "HBASE_COMPACTION_QUEUE_SIZE",
+          "widget_name": "HBase Compaction Queue Size",
           "display_name": "HBase Compaction Queue Size",
           "description": "",
           "widget_type": "HEATMAP",
@@ -332,7 +388,7 @@
           }
         },
         {
-          "widget_name": "HBASE_MEMSTORE_SIZES",
+          "widget_name": "HBase Memstore Sizes",
           "display_name": "HBase Memstore Sizes",
           "description": "",
           "widget_type": "HEATMAP",
@@ -357,7 +413,7 @@
           }
         },
         {
-          "widget_name": "HBASE_READ_REQUEST",
+          "widget_name": "HBase Read Request Count",
           "display_name": "HBase Read Request Count",
           "description": "",
           "widget_type": "HEATMAP",
@@ -381,7 +437,7 @@
           }
         },
         {
-          "widget_name": "HBASE_WRITE_REQUEST",
+          "widget_name": "HBase Write Request Count",
           "display_name": "HBase Write Request Count",
           "description": "",
           "widget_type": "HEATMAP",
@@ -405,7 +461,7 @@
           }
         },
         {
-          "widget_name": "HBASE_REGIONS",
+          "widget_name": "HBase Regions",
           "display_name": "HBase Regions",
           "description": "",
           "widget_type": "HEATMAP",

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-web/app/assets/data/widget_layouts/HBASE_HEATMAPS.json
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/data/widget_layouts/HBASE_HEATMAPS.json b/ambari-web/app/assets/data/widget_layouts/HBASE_HEATMAPS.json
new file mode 100644
index 0000000..34a3550
--- /dev/null
+++ b/ambari-web/app/assets/data/widget_layouts/HBASE_HEATMAPS.json
@@ -0,0 +1,35 @@
+{
+  "href" : "http://c6401.ambari.apache.org:8080/api/v1/users/admin/activeWidgetLayouts?WidgetLayoutInfo/section_name=HBASE_HEATMAPS",
+  "items" : [
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widget_layouts/17",
+      "WidgetLayoutInfo" : {
+        "cluster_name" : "c1",
+        "display_name" : "HBase Heatmaps",
+        "id" : 17,
+        "layout_name" : "admin_hbase_heatmap",
+        "scope" : "USER",
+        "section_name" : "HBASE_HEATMAPS",
+        "user_name" : "admin",
+        "widgets" : [
+          {
+            "WidgetInfo" : {
+              "id" : 29,
+              "metrics" : "[{\"name\":\"Hadoop:service\\u003dHBase,name\\u003dRegionServer,sub\\u003dServer.compactionQueueLength\",\"metric_path\":\"metrics/hbase/regionserver/compactionQueueSize\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+              "author" : "ambari",
+              "description" : "",
+              "scope" : "CLUSTER",
+              "properties" : "{\"display_unit\":\"\",\"max_limit\":\"10\"}",
+              "widget_name" : "HBase Compaction Queue Size",
+              "widget_type" : "HEATMAP",
+              "time_created" : 1429906622306,
+              "display_name" : "HBase Compaction Queue Size",
+              "values" : "[{\"name\":\"HBase Compaction Queue Size\",\"value\":\"${Hadoop:service\\u003dHBase,name\\u003dRegionServer,sub\\u003dServer.compactionQueueLength} \"}]",
+              "cluster_name" : "c1"
+            }
+          }
+        ]
+      }
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-web/app/assets/data/widget_layouts/HBASE_HEATMAPS_WIDGETS.json
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/data/widget_layouts/HBASE_HEATMAPS_WIDGETS.json b/ambari-web/app/assets/data/widget_layouts/HBASE_HEATMAPS_WIDGETS.json
new file mode 100644
index 0000000..b0d4b26
--- /dev/null
+++ b/ambari-web/app/assets/data/widget_layouts/HBASE_HEATMAPS_WIDGETS.json
@@ -0,0 +1,71 @@
+
+{
+  "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets?WidgetInfo/widget_type=HEATMAP&WidgetInfo/scope=CLUSTER&WidgetInfo/metrics.matches(.*\\\"service_name\\\":\\\"HBASE\\\".*)&fields=WidgetInfo/metrics",
+  "items" : [
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/29",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "HBase Compaction Queue Size",
+        "id" : 29,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dHBase,name\\u003dRegionServer,sub\\u003dServer.compactionQueueLength\",\"metric_path\":\"metrics/hbase/regionserver/compactionQueueSize\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "HBase Compaction Queue Size",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/30",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "HBase Memstore Sizes",
+        "id" : 30,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dHBase,name\\u003dRegionServer,sub\\u003dServer.memStoreSize\",\"metric_path\":\"metrics/hbase/regionserver/memstoreSize\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "HBase Memstore Sizes",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/31",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "HBase Read Request Count",
+        "id" : 31,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dHBase,name\\u003dRegionServer,sub\\u003dServer.readRequestCount\",\"metric_path\":\"metrics/hbase/regionserver/readRequestsCount\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "HBase Read Request Count",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/32",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "HBase Write Request Count",
+        "id" : 32,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dHBase,name\\u003dRegionServer,sub\\u003dServer.writeRequestCount\",\"metric_path\":\"metrics/hbase/regionserver/writeRequestsCount\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "HBase Write Request Count",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/33",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "HBase Regions",
+        "id" : 33,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dHBase,name\\u003dRegionServer,sub\\u003dServer.regionCount\",\"metric_path\":\"metrics/hbase/regionserver/regions\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "HBase Regions",
+        "widget_type" : "HEATMAP"
+      }
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-web/app/assets/data/widget_layouts/HBASE_SUMMARY.json
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/data/widget_layouts/HBASE_SUMMARY.json b/ambari-web/app/assets/data/widget_layouts/HBASE_SUMMARY.json
new file mode 100644
index 0000000..5e02e7d
--- /dev/null
+++ b/ambari-web/app/assets/data/widget_layouts/HBASE_SUMMARY.json
@@ -0,0 +1,164 @@
+
+{
+  "href" : "http://c6401.ambari.apache.org:8080/api/v1/users/admin/activeWidgetLayouts?WidgetLayoutInfo/section_name=HBASE_SUMMARY",
+  "items" : [
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widget_layouts/9",
+      "WidgetLayoutInfo" : {
+        "cluster_name" : "c1",
+        "display_name" : "Standard HBase Dashboard",
+        "id" : 9,
+        "layout_name" : "admin_hbase_dashboard",
+        "scope" : "USER",
+        "section_name" : "HBASE_SUMMARY",
+        "user_name" : "admin",
+        "widgets" : [
+          {
+            "WidgetInfo" : {
+              "id" : 20,
+              "metrics" : "[{\"name\":\"regionserver.Server.Get_95th_percentile\",\"metric_path\":\"metrics/hbase/regionserver/Server/Get_95th_percentile\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"},{\"name\":\"regionserver.Server.ScanNext_95th_percentile\",\"metric_path\":\"metrics/hbase/regionserver/Server/ScanNext_95th_percentile\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+              "author" : "ambari",
+              "description" : "Widget shows 95% Read Latency",
+              "scope" : "CLUSTER",
+              "properties" : "{\"display_unit\":\"ms\",\"graph_type\":\"LINE\",\"time_range\":\"1\"}",
+              "widget_name" : "Read Latency",
+              "widget_type" : "GRAPH",
+              "time_created" : 1429906622306,
+              "display_name" : "Read Latency",
+              "values" : "[{\"name\":\"Cluster wide minimum of 95% Read Latency\",\"value\":\"${regionserver.Server.Get_95th_percentile + regionserver.Server.ScanNext_95th_percentile}\"},{\"name\":\"Weighted average of 95% Read Latency\",\"value\":\"${regionserver.Server.Get_95th_percentile + regionserver.Server.ScanNext_95th_percentile}\"},{\"name\":\"Cluster wide maximum of 95% Read Latency\",\"value\":\"${regionserver.Server.Get_95th_percentile + regionserver.Server.ScanNext_95th_percentile}\"}]",
+              "cluster_name" : "c1"
+            }
+          },
+          {
+            "WidgetInfo" : {
+              "id" : 21,
+              "metrics" : "[{\"name\":\"regionserver.Server.Mutate_95th_percentile\",\"metric_path\":\"metrics/hbase/regionserver/Server/Mutate_95th_percentile\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"},{\"name\":\"regionserver.Server.Increment_95th_percentile\",\"metric_path\":\"metrics/hbase/regionserver/Server/Increment_95th_percentile\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"},{\"name\":\"regionserver.Server.Append_95th_percentile\",\"metric_path\":\"metrics/hbase/regionserver/Server/Append_95th_percentile\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"},{\"name\":\"regionserver.Server.Delete_95th_percentile\",\"metric_path\":\"metrics/hbase/regionserver/Server/Delete_95th_percentile\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+              "author" : "ambari",
+              "description" : "This widget shows 95th percentile of the write latency.",
+              "scope" : "CLUSTER",
+              "properties" : "{\"display_unit\":\"ms\",\"graph_type\":\"LINE\",\"time_range\":\"1\"}",
+              "widget_name" : "Write Latency",
+              "widget_type" : "GRAPH",
+              "time_created" : 1429906622306,
+              "display_name" : "Write Latency",
+              "values" : "[{\"name\":\"Cluster wide minimum of 95% write Latency\",\"value\":\"${regionserver.Server.Mutate_95th_percentile + regionserver.Server.Increment_95th_percentile + regionserver.Server.Append_95th_percentile + regionserver.Server.Delete_95th_percentile}\"},{\"name\":\"Weighted average of 95% write Latency\",\"value\":\"${regionserver.Server.Mutate_95th_percentile + regionserver.Server.Increment_95th_percentile + regionserver.Server.Append_95th_percentile + regionserver.Server.Delete_95th_percentile}\"},{\"name\":\"Cluster wide maximum of 95% write Latency\",\"value\":\"${regionserver.Server.Mutate_95th_percentile + regionserver.Server.Increment_95th_percentile + regionserver.Server.Append_95th_percentile + regionserver.Server.Delete_95th_percentile}\"}]",
+              "cluster_name" : "c1"
+            }
+          },
+          {
+            "WidgetInfo" : {
+              "id" : 22,
+              "metrics" : "[{\"name\":\"regionserver.RegionServer.numOpenConnections\",\"metric_path\":\"metrics/hbase/ipc/IPC/numOpenConnections\",\"category\":\"\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+              "author" : "ambari",
+              "description" : "This widget shows number of current open connections",
+              "scope" : "CLUSTER",
+              "properties" : "{\"display_unit\":\"Connections\",\"graph_type\":\"LINE\",\"time_range\":\"1\"}",
+              "widget_name" : "Open Connections",
+              "widget_type" : "GRAPH",
+              "time_created" : 1429906622306,
+              "display_name" : "Open Connections",
+              "values" : "[{\"name\":\"Open Connections\",\"value\":\"${regionserver.RegionServer.numOpenConnections}\"}]",
+              "cluster_name" : "c1"
+            }
+          },
+          {
+            "WidgetInfo" : {
+              "id" : 23,
+              "metrics" : "[{\"name\":\"regionserver.RegionServer.numActiveHandler\",\"metric_path\":\"metrics/hbase/ipc/IPC/numActiveHandler\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"},{\"name\":\"regionserver.RegionServer.numCallsInGeneralQueue\",\"metric_path\":\"metrics/hbase/ipc/IPC/numCallsInGeneralQueue\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+              "author" : "ambari",
+              "description" : null,
+              "scope" : "CLUSTER",
+              "properties" : "{\"graph_type\":\"LINE\",\"time_range\":\"1\"}",
+              "widget_name" : "Request Handlers",
+              "widget_type" : "GRAPH",
+              "time_created" : 1429906622306,
+              "display_name" : "Request Handlers",
+              "values" : "[{\"name\":\"Active Handlers\",\"value\":\"${regionserver.RegionServer.numActiveHandler}\"},{\"name\":\"Calls in General Queue\",\"value\":\"${regionserver.RegionServer.numCallsInGeneralQueue}\"}]",
+              "cluster_name" : "c1"
+            }
+          },
+          {
+            "WidgetInfo" : {
+              "id" : 24,
+              "metrics" : "[{\"name\":\"regionserver.Server.percentFilesLocal\",\"metric_path\":\"metrics/hbase/regionserver/percentFilesLocal\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+              "author" : "ambari",
+              "description" : "This widget shows weighted average for local files.",
+              "scope" : "CLUSTER",
+              "properties" : "{\"display_unit\":\"%\",\"error_threshold\":\"25\",\"warning_threshold\":\"75\"}",
+              "widget_name" : "Files Local",
+              "widget_type" : "NUMBER",
+              "time_created" : 1429906622306,
+              "display_name" : "Files Local",
+              "values" : "[{\"name\":\"Files Local\",\"value\":\"${regionserver.Server.percentFilesLocal}\"}]",
+              "cluster_name" : "c1"
+            }
+          },
+          {
+            "WidgetInfo" : {
+              "id" : 26,
+              "metrics" : "[{\"name\":\"cpu_idle\",\"metric_path\":\"metrics/cpu/cpu_idle\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+              "author" : "ambari",
+              "description" : "ReqionServer widget for CPU utilization",
+              "scope" : "CLUSTER",
+              "properties" : "{\"graph_type\":\"LINE\",\"time_range\":\"1\"}",
+              "widget_name" : "Cluster CPU",
+              "widget_type" : "GRAPH",
+              "time_created" : 1429906622306,
+              "display_name" : "Cluster CPU",
+              "values" : "[{\"name\":\"CPU Idle\",\"value\":\"${cpu_idle}\"}]",
+              "cluster_name" : "c1"
+            }
+          },
+          {
+            "WidgetInfo" : {
+              "id" : 25,
+              "metrics" : "[{\"name\":\"regionserver.Server.updatesBlockedTime\",\"metric_path\":\"metrics/hbase/regionserver/Server/updatesBlockedTime\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+              "author" : "ambari",
+              "description" : "Number of milliseconds updates have been blocked so the memstore can be flushed",
+              "scope" : "CLUSTER",
+              "properties" : "{\"display_unit\":\"ms\",\"graph_type\":\"LINE\",\"time_range\":\"1\"}",
+              "widget_name" : "Blocked Updates",
+              "widget_type" : "GRAPH",
+              "time_created" : 1429906622306,
+              "display_name" : "Blocked Updates",
+              "values" : "[{\"name\":\"Updates Blocked Time\",\"value\":\"${regionserver.Server.updatesBlockedTime}\"}]",
+              "cluster_name" : "c1"
+            }
+          },
+          {
+            "WidgetInfo" : {
+              "id" : 27,
+              "metrics" : "[{\"name\":\"pkts_in\",\"metric_path\":\"metrics/network/pkts_in\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"},{\"name\":\"pkts_out\",\"metric_path\":\"metrics/network/pkts_out\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+              "author" : "ambari",
+              "description" : "ReqionServer widget for network utilization",
+              "scope" : "CLUSTER",
+              "properties" : "{\"graph_type\":\"LINE\",\"time_range\":\"1\"}",
+              "widget_name" : "Cluster Network",
+              "widget_type" : "GRAPH",
+              "time_created" : 1429906622306,
+              "display_name" : "Cluster Network",
+              "values" : "[{\"name\":\"Packets In\",\"value\":\"${pkts_in}\"},{\"name\":\"Packets Out\",\"value\":\"${disk_free}\"}]",
+              "cluster_name" : "c1"
+            }
+          },
+          {
+            "WidgetInfo" : {
+              "id" : 28,
+              "metrics" : "[{\"name\":\"disk_free\",\"metric_path\":\"metrics/disk/disk_free\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+              "author" : "ambari",
+              "description" : "ReqionServer widget for disk utilization",
+              "scope" : "CLUSTER",
+              "properties" : "{\"graph_type\":\"LINE\",\"time_range\":\"1\"}",
+              "widget_name" : "Cluster Disk",
+              "widget_type" : "GRAPH",
+              "time_created" : 1429906622306,
+              "display_name" : "Cluster Disk",
+              "values" : "[{\"name\":\"Disk Free\",\"value\":\"${disk_free}\"}]",
+              "cluster_name" : "c1"
+            }
+          }
+        ]
+      }
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-web/app/assets/data/widget_layouts/HDFS_HEATMAPS.json
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/data/widget_layouts/HDFS_HEATMAPS.json b/ambari-web/app/assets/data/widget_layouts/HDFS_HEATMAPS.json
new file mode 100644
index 0000000..4396a98
--- /dev/null
+++ b/ambari-web/app/assets/data/widget_layouts/HDFS_HEATMAPS.json
@@ -0,0 +1,36 @@
+
+{
+  "href" : "http://c6401.ambari.apache.org:8080/api/v1/users/admin/activeWidgetLayouts?WidgetLayoutInfo/section_name=HDFS_HEATMAPS",
+  "items" : [
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widget_layouts/16",
+      "WidgetLayoutInfo" : {
+        "cluster_name" : "c1",
+        "display_name" : "HDFS Heatmaps",
+        "id" : 16,
+        "layout_name" : "admin_hdfs_heatmap",
+        "scope" : "USER",
+        "section_name" : "HDFS_HEATMAPS",
+        "user_name" : "admin",
+        "widgets" : [
+          {
+            "WidgetInfo" : {
+              "id" : 12,
+              "metrics" : "[{\"name\":\"dfs.datanode.BytesRead\",\"metric_path\":\"metrics/dfs/datanode/bytes_read\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"}]",
+              "author" : "ambari",
+              "description" : "",
+              "scope" : "CLUSTER",
+              "properties" : "{\"display_unit\":\"MB\",\"max_limit\":\"1024\"}",
+              "widget_name" : "HDFS Bytes Read",
+              "widget_type" : "HEATMAP",
+              "time_created" : 1429906622107,
+              "display_name" : "HDFS Bytes Read",
+              "values" : "[{\"name\":\"HDFS Bytes Read\",\"value\":\"${dfs.datanode.BytesRead}\"}]",
+              "cluster_name" : "c1"
+            }
+          }
+        ]
+      }
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-web/app/assets/data/widget_layouts/HDFS_HEATMAPS_WIDGETS.json
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/data/widget_layouts/HDFS_HEATMAPS_WIDGETS.json b/ambari-web/app/assets/data/widget_layouts/HDFS_HEATMAPS_WIDGETS.json
new file mode 100644
index 0000000..40ebc6d
--- /dev/null
+++ b/ambari-web/app/assets/data/widget_layouts/HDFS_HEATMAPS_WIDGETS.json
@@ -0,0 +1,97 @@
+
+{
+  "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets?WidgetInfo/widget_type=HEATMAP&WidgetInfo/scope=CLUSTER&WidgetInfo/metrics.matches(.*\\\"service_name\\\":\\\"HDFS\\\".*)&fields=WidgetInfo/metrics",
+  "items" : [
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/12",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "HDFS Bytes Read",
+        "id" : 12,
+        "metrics" : "[{\"name\":\"dfs.datanode.BytesRead\",\"metric_path\":\"metrics/dfs/datanode/bytes_read\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "HDFS Bytes Read",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/13",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "HDFS Bytes Written",
+        "id" : 13,
+        "metrics" : "[{\"name\":\"dfs.datanode.BytesWritten\",\"metric_path\":\"metrics/dfs/datanode/bytes_written\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "HDFS Bytes Written",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/14",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "DataNode Garbage Collection Time",
+        "id" : 14,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dDataNode,name\\u003dJvmMetrics.GcTimeMillis\",\"metric_path\":\"metrics/jvm/gcTimeMillis\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "DataNode Garbage Collection Time",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/15",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "DataNode JVM Heap Memory Used",
+        "id" : 15,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dDataNode,name\\u003dJvmMetrics.MemHeapUsedM\",\"metric_path\":\"metrics/jvm/memHeapUsedM\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "DataNode JVM Heap Memory Used",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/16",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "DataNode JVM Heap Memory Committed",
+        "id" : 16,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dDataNode,name\\u003dJvmMetrics.MemHeapCommittedM\",\"metric_path\":\"metrics/jvm/memHeapCommittedM\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "DataNode JVM Heap Memory Committed",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/17",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "DataNode Process Disk I/O Utilization",
+        "id" : 17,
+        "metrics" : "[{\"name\":\"dfs.datanode.BytesRead\",\"metric_path\":\"metrics/dfs/datanode/bytes_read\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"},{\"name\":\"dfs.datanode.BytesWritten\",\"metric_path\":\"metrics/dfs/datanode/bytes_written\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"},{\"name\":\"dfs.datanode.TotalReadTime\",\"metric_path\":\"metrics/dfs/datanode/total_read_time\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"},{\"name\":\"dfs.datanode.TotalWriteTime\",\"metric_path\":\"metrics/dfs/datanode/total_write_time\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "DataNode Process Disk I/O Utilization",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/18",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "DataNode Process Network I/O Utilization",
+        "id" : 18,
+        "metrics" : "[{\"name\":\"dfs.datanode.RemoteBytesRead\",\"metric_path\":\"metrics/dfs/datanode/remote_bytes_read\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"},{\"name\":\"dfs.datanode.ReadsFromRemoteClient\",\"metric_path\":\"metrics/dfs/datanode/reads_from_remote_client\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"},{\"name\":\"dfs.datanode.RemoteBytesWritten\",\"metric_path\":\"metrics/dfs/datanode/remote_bytes_written\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"},{\"name\":\"dfs.datanode.WritesFromRemoteClient\",\"metric_path\":\"metrics/dfs/datanode/writes_from_remote_client\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "DataNode Process Network I/O Utilization",
+        "widget_type" : "HEATMAP"
+      }
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-web/app/assets/data/widget_layouts/HDFS_SUMMARY.json
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/data/widget_layouts/HDFS_SUMMARY.json b/ambari-web/app/assets/data/widget_layouts/HDFS_SUMMARY.json
new file mode 100644
index 0000000..a97c9e5
--- /dev/null
+++ b/ambari-web/app/assets/data/widget_layouts/HDFS_SUMMARY.json
@@ -0,0 +1,147 @@
+{
+  "href" : "http://c6401.ambari.apache.org:8080/api/v1/users/admin/activeWidgetLayouts?WidgetLayoutInfo/section_name=HDFS_SUMMARY",
+  "items" : [
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widget_layouts/8",
+      "WidgetLayoutInfo" : {
+        "cluster_name" : "c1",
+        "display_name" : "Standard HDFS Dashboard",
+        "id" : 8,
+        "layout_name" : "admin_hdfs_dashboard",
+        "scope" : "USER",
+        "section_name" : "HDFS_SUMMARY",
+        "user_name" : "admin",
+        "widgets" : [
+          {
+            "WidgetInfo" : {
+              "id" : 4,
+              "metrics" : "[{\"name\":\"jvm.JvmMetrics.GcCount\",\"metric_path\":\"metrics/jvm/gcCount\",\"service_name\":\"HDFS\",\"component_name\":\"NAMENODE\",\"host_component_criteria\":\"host_components/metrics/dfs/FSNamesystem/HAState\\u003dactive\"},{\"name\":\"jvm.JvmMetrics.GcTimeMillisConcurrentMarkSweep\",\"metric_path\":\"metrics/jvm/GcTimeMillisConcurrentMarkSweep\",\"service_name\":\"HDFS\",\"component_name\":\"NAMENODE\",\"host_component_criteria\":\"host_components/metrics/dfs/FSNamesystem/HAState\\u003dactive\"},{\"name\":\"jvm.JvmMetrics.GcCountConcurrentMarkSweep\",\"metric_path\":\"metrics/jvm/GcCountConcurrentMarkSweep\",\"service_name\":\"HDFS\",\"component_name\":\"NAMENODE\",\"host_component_criteria\":\"host_components/metrics/dfs/FSNamesystem/HAState\\u003dactive\"}]",
+              "author" : "ambari",
+              "description" : "This widget shows JVM Garbage collection statistics for Active NameNode",
+              "scope" : "CLUSTER",
+              "properties" : "{\"display_unit\":\"Requests\",\"graph_type\":\"LINE\",\"time_range\":\"1\"}",
+              "widget_name" : "GC Statistics",
+              "widget_type" : "GRAPH",
+              "time_created" : 1429906622107,
+              "display_name" : "GC Statistics",
+              "values" : "[{\"name\":\"GC total count\",\"value\":\"${jvm.JvmMetrics.GcCount}\"},{\"name\":\"GC time in major collection\",\"value\":\"${jvm.JvmMetrics.GcTimeMillisConcurrentMarkSweep}\"},{\"name\":\"GC count of type major collection\",\"value\":\"${jvm.JvmMetrics.GcCountConcurrentMarkSweep}\"}]",
+              "cluster_name" : "c1"
+            }
+          },
+          {
+            "WidgetInfo" : {
+              "id" : 5,
+              "metrics" : "[{\"name\":\"rpc.rpc.NumOpenConnections\",\"metric_path\":\"metrics/rpc/NumOpenConnections\",\"category\":\"\",\"service_name\":\"HDFS\",\"component_name\":\"NAMENODE\",\"host_component_criteria\":\"host_components/metrics/dfs/FSNamesystem/HAState\\u003dactive\"}]",
+              "author" : "ambari",
+              "description" : "Number of open connections for Active NameNode.",
+              "scope" : "CLUSTER",
+              "properties" : "{\"display_unit\":\"Connections\",\"graph_type\":\"LINE\",\"time_range\":\"1\"}",
+              "widget_name" : "Client connections",
+              "widget_type" : "GRAPH",
+              "time_created" : 1429906622107,
+              "display_name" : "Client connections",
+              "values" : "[{\"name\":\"Client connections\",\"value\":\"${rpc.rpc.NumOpenConnections}\"}]",
+              "cluster_name" : "c1"
+            }
+          },
+          {
+            "WidgetInfo" : {
+              "id" : 6,
+              "metrics" : "[{\"name\":\"jvm.JvmMetrics.MemHeapCommittedM\",\"metric_path\":\"metrics/jvm/memHeapCommittedM\",\"service_name\":\"HDFS\",\"component_name\":\"NAMENODE\",\"host_component_criteria\":\"host_components/metrics/dfs/FSNamesystem/HAState\\u003dactive\"},{\"name\":\"jvm.JvmMetrics.MemHeapUsedM\",\"metric_path\":\"metrics/jvm/memHeapUsedM\",\"service_name\":\"HDFS\",\"component_name\":\"NAMENODE\",\"host_component_criteria\":\"host_components/metrics/dfs/FSNamesystem/HAState\\u003dactive\"}]",
+              "author" : "ambari",
+              "description" : null,
+              "scope" : "CLUSTER",
+              "properties" : "{\"graph_type\":\"LINE\",\"time_range\":\"1\"}",
+              "widget_name" : "NameNode JVM Heap Statistics",
+              "widget_type" : "GRAPH",
+              "time_created" : 1429906622107,
+              "display_name" : "NameNode JVM Heap Statistics",
+              "values" : "[{\"name\":\"JVM heap committed\",\"value\":\"${jvm.JvmMetrics.MemHeapCommittedM}\"},{\"name\":\"JVM heap used\",\"value\":\"${jvm.JvmMetrics.MemHeapUsedM}\"}]",
+              "cluster_name" : "c1"
+            }
+          },
+          {
+            "WidgetInfo" : {
+              "id" : 7,
+              "metrics" : "[{\"name\":\"cpu_idle\",\"metric_path\":\"metrics/cpu/cpu_idle\",\"service_name\":\"HDFS\",\"component_name\":\"NAMENODE\",\"host_component_criteria\":\"host_components/metrics/dfs/FSNamesystem/HAState\\u003dactive\"},{\"name\":\"proc_total\",\"metric_path\":\"metrics/process/proc_total\",\"service_name\":\"HDFS\",\"component_name\":\"NAMENODE\",\"host_component_criteria\":\"host_components/metrics/dfs/FSNamesystem/HAState\\u003dactive\"}]",
+              "author" : "ambari",
+              "description" : null,
+              "scope" : "CLUSTER",
+              "properties" : "{\"graph_type\":\"LINE\",\"time_range\":\"1\"}",
+              "widget_name" : "NameNode CPU and RAM Utilization",
+              "widget_type" : "GRAPH",
+              "time_created" : 1429906622107,
+              "display_name" : "NameNode CPU and RAM Utilization",
+              "values" : "[{\"name\":\"CPU Idle on NameNode host\",\"value\":\"${cpu_idle}\"},{\"name\":\"Total Processes on NameNode host\",\"value\":\"${proc_total}\"}]",
+              "cluster_name" : "c1"
+            }
+          },
+          {
+            "WidgetInfo" : {
+              "id" : 8,
+              "metrics" : "[{\"name\":\"Hadoop:service\\u003dNameNode,name\\u003dRpcActivity.RpcQueueTimeAvgTime\",\"metric_path\":\"metrics/rpc/RpcQueueTime_avg_time\",\"service_name\":\"HDFS\",\"component_name\":\"NAMENODE\",\"host_component_criteria\":\"host_components/metrics/dfs/FSNamesystem/HAState\\u003dactive\"}]",
+              "author" : "ambari",
+              "description" : null,
+              "scope" : "CLUSTER",
+              "properties" : "{\"display_unit\":\"ms\"}",
+              "widget_name" : "RPC Queue Wait time",
+              "widget_type" : "NUMBER",
+              "time_created" : 1429906622107,
+              "display_name" : "RPC Queue Wait time",
+              "values" : "[{\"name\":\"RPC Queue Wait time\",\"value\":\"${Hadoop:service\\u003dNameNode,name\\u003dRpcActivity.RpcQueueTimeAvgTime}\"}]",
+              "cluster_name" : "c1"
+            }
+          },
+          {
+            "WidgetInfo" : {
+              "id" : 9,
+              "metrics" : "[{\"name\":\"Hadoop:service\\u003dDataNode,name\\u003dRpcActivity.RpcProcessingTimeAvgTime\",\"metric_path\":\"metrics/rpc/RpcProcessingTime_avg_time\",\"service_name\":\"HDFS\",\"component_name\":\"NAMENODE\",\"host_component_criteria\":\"host_components/metrics/dfs/FSNamesystem/HAState\\u003dactive\"}]",
+              "author" : "ambari",
+              "description" : null,
+              "scope" : "CLUSTER",
+              "properties" : "{\"display_unit\":\"ms\"}",
+              "widget_name" : "RPC_PROCESSING_TIME",
+              "widget_type" : "NUMBER",
+              "time_created" : 1429906622107,
+              "display_name" : "RPC Processing time",
+              "values" : "[{\"name\":\"RPC Processing time\",\"value\":\"${Hadoop:service\\u003dDataNode,name\\u003dRpcActivity.RpcProcessingTimeAvgTime}\"}]",
+              "cluster_name" : "c1"
+            }
+          },
+          {
+            "WidgetInfo" : {
+              "id" : 11,
+              "metrics" : "[{\"name\":\"Hadoop:service\\u003dNameNode,name\\u003dFSNamesystem.UnderReplicatedBlocks\",\"metric_path\":\"metrics/dfs/FSNamesystem/UnderReplicatedBlocks\",\"service_name\":\"HDFS\",\"component_name\":\"NAMENODE\"}]",
+              "author" : "ambari",
+              "description" : null,
+              "scope" : "CLUSTER",
+              "properties" : "{}",
+              "widget_name" : "Under Replicated Blocks",
+              "widget_type" : "NUMBER",
+              "time_created" : 1429906622107,
+              "display_name" : "Under Replicated Blocks",
+              "values" : "[{\"name\":\"Under Replicated Blocks\",\"value\":\"${Hadoop:service\\u003dNameNode,name\\u003dFSNamesystem.UnderReplicatedBlocks}\"}]",
+              "cluster_name" : "c1"
+            }
+          },
+          {
+            "WidgetInfo" : {
+              "id" : 10,
+              "metrics" : "[{\"name\":\"Hadoop:service\\u003dNameNode,name\\u003dFSNamesystem.CorruptBlocks\",\"metric_path\":\"metrics/dfs/FSNamesystem/CorruptBlocks\",\"service_name\":\"HDFS\",\"component_name\":\"NAMENODE\"}]",
+              "author" : "ambari",
+              "description" : null,
+              "scope" : "CLUSTER",
+              "properties" : "{}",
+              "widget_name" : "Corrupted Blocks",
+              "widget_type" : "NUMBER",
+              "time_created" : 1429906622107,
+              "display_name" : "Corrupted Blocks",
+              "values" : "[{\"name\":\"Corrupted Blocks\",\"value\":\"${Hadoop:service\\u003dNameNode,name\\u003dFSNamesystem.CorruptBlocks}\"}]",
+              "cluster_name" : "c1"
+            }
+          }
+        ]
+      }
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-web/app/assets/data/widget_layouts/SYSTEM_HEATMAPS.json
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/data/widget_layouts/SYSTEM_HEATMAPS.json b/ambari-web/app/assets/data/widget_layouts/SYSTEM_HEATMAPS.json
new file mode 100644
index 0000000..3fc1633
--- /dev/null
+++ b/ambari-web/app/assets/data/widget_layouts/SYSTEM_HEATMAPS.json
@@ -0,0 +1,35 @@
+{
+  "href" : "http://c6401.ambari.apache.org:8080/api/v1/users/admin/activeWidgetLayouts?WidgetLayoutInfo/section_name=SYSTEM_HEATMAPS",
+  "items" : [
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widget_layouts/15",
+      "WidgetLayoutInfo" : {
+        "cluster_name" : "c1",
+        "display_name" : "Heatmaps",
+        "id" : 15,
+        "layout_name" : "admin_system_heatmap",
+        "scope" : "USER",
+        "section_name" : "SYSTEM_HEATMAPS",
+        "user_name" : "admin",
+        "widgets" : [
+          {
+            "WidgetInfo" : {
+              "id" : 1,
+              "metrics" : "[{\"name\":\"disk_free\",\"metric_path\":\"metrics/disk/disk_free\",\"service_name\":\"STACK\"},{\"name\":\"disk_total\",\"metric_path\":\"metrics/disk/disk_total\",\"service_name\":\"STACK\"}]",
+              "author" : "ambari",
+              "description" : "",
+              "scope" : "CLUSTER",
+              "properties" : "{\"display_unit\":\"%\",\"max_limit\":\"100\"}",
+              "widget_name" : "HOST_DISK_USED",
+              "widget_type" : "HEATMAP",
+              "time_created" : 1429906621944,
+              "display_name" : "Host Disk Space Used %",
+              "values" : "[{\"name\":\"Host Disk Space Used %\",\"value\":\"${((disk_total-disk_free)/disk_total)*100}\"}]",
+              "cluster_name" : "c1"
+            }
+          }
+        ]
+      }
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-web/app/assets/data/widget_layouts/SYSTEM_HEATMAPS_WIDGETS.json
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/data/widget_layouts/SYSTEM_HEATMAPS_WIDGETS.json b/ambari-web/app/assets/data/widget_layouts/SYSTEM_HEATMAPS_WIDGETS.json
new file mode 100644
index 0000000..ef2a9ff
--- /dev/null
+++ b/ambari-web/app/assets/data/widget_layouts/SYSTEM_HEATMAPS_WIDGETS.json
@@ -0,0 +1,279 @@
+
+{
+  "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets?WidgetInfo/widget_type=HEATMAP&WidgetInfo/scope=CLUSTER&fields=WidgetInfo/metrics",
+  "items" : [
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/1",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "Host Disk Space Used %",
+        "id" : 1,
+        "metrics" : "[{\"name\":\"disk_free\",\"metric_path\":\"metrics/disk/disk_free\",\"service_name\":\"STACK\"},{\"name\":\"disk_total\",\"metric_path\":\"metrics/disk/disk_total\",\"service_name\":\"STACK\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "HOST_DISK_USED",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/2",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "Host Memory Used %",
+        "id" : 2,
+        "metrics" : "[{\"name\":\"mem_total\",\"metric_path\":\"metrics/memory/mem_total\",\"service_name\":\"STACK\"},{\"name\":\"mem_free\",\"metric_path\":\"metrics/memory/mem_free\",\"service_name\":\"STACK\"},{\"name\":\"mem_cached\",\"metric_path\":\"metrics/memory/mem_cached\",\"service_name\":\"STACK\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "HOST_MEMORY_USED",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/3",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "Host CPU Wait IO %",
+        "id" : 3,
+        "metrics" : "[{\"name\":\"cpu_wio\",\"metric_path\":\"metrics/cpu/cpu_wio\",\"service_name\":\"STACK\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "HOST_CPU_WAIT_IO",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/12",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "HDFS Bytes Read",
+        "id" : 12,
+        "metrics" : "[{\"name\":\"dfs.datanode.BytesRead\",\"metric_path\":\"metrics/dfs/datanode/bytes_read\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "HDFS Bytes Read",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/13",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "HDFS Bytes Written",
+        "id" : 13,
+        "metrics" : "[{\"name\":\"dfs.datanode.BytesWritten\",\"metric_path\":\"metrics/dfs/datanode/bytes_written\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "HDFS Bytes Written",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/14",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "DataNode Garbage Collection Time",
+        "id" : 14,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dDataNode,name\\u003dJvmMetrics.GcTimeMillis\",\"metric_path\":\"metrics/jvm/gcTimeMillis\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "DataNode Garbage Collection Time",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/15",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "DataNode JVM Heap Memory Used",
+        "id" : 15,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dDataNode,name\\u003dJvmMetrics.MemHeapUsedM\",\"metric_path\":\"metrics/jvm/memHeapUsedM\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "DataNode JVM Heap Memory Used",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/16",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "DataNode JVM Heap Memory Committed",
+        "id" : 16,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dDataNode,name\\u003dJvmMetrics.MemHeapCommittedM\",\"metric_path\":\"metrics/jvm/memHeapCommittedM\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "DataNode JVM Heap Memory Committed",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/17",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "DataNode Process Disk I/O Utilization",
+        "id" : 17,
+        "metrics" : "[{\"name\":\"dfs.datanode.BytesRead\",\"metric_path\":\"metrics/dfs/datanode/bytes_read\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"},{\"name\":\"dfs.datanode.BytesWritten\",\"metric_path\":\"metrics/dfs/datanode/bytes_written\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"},{\"name\":\"dfs.datanode.TotalReadTime\",\"metric_path\":\"metrics/dfs/datanode/total_read_time\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"},{\"name\":\"dfs.datanode.TotalWriteTime\",\"metric_path\":\"metrics/dfs/datanode/total_write_time\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "DataNode Process Disk I/O Utilization",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/18",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "DataNode Process Network I/O Utilization",
+        "id" : 18,
+        "metrics" : "[{\"name\":\"dfs.datanode.RemoteBytesRead\",\"metric_path\":\"metrics/dfs/datanode/remote_bytes_read\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"},{\"name\":\"dfs.datanode.ReadsFromRemoteClient\",\"metric_path\":\"metrics/dfs/datanode/reads_from_remote_client\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"},{\"name\":\"dfs.datanode.RemoteBytesWritten\",\"metric_path\":\"metrics/dfs/datanode/remote_bytes_written\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"},{\"name\":\"dfs.datanode.WritesFromRemoteClient\",\"metric_path\":\"metrics/dfs/datanode/writes_from_remote_client\",\"service_name\":\"HDFS\",\"component_name\":\"DATANODE\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "DataNode Process Network I/O Utilization",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/29",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "HBase Compaction Queue Size",
+        "id" : 29,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dHBase,name\\u003dRegionServer,sub\\u003dServer.compactionQueueLength\",\"metric_path\":\"metrics/hbase/regionserver/compactionQueueSize\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "HBase Compaction Queue Size",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/30",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "HBase Memstore Sizes",
+        "id" : 30,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dHBase,name\\u003dRegionServer,sub\\u003dServer.memStoreSize\",\"metric_path\":\"metrics/hbase/regionserver/memstoreSize\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "HBase Memstore Sizes",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/31",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "HBase Read Request Count",
+        "id" : 31,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dHBase,name\\u003dRegionServer,sub\\u003dServer.readRequestCount\",\"metric_path\":\"metrics/hbase/regionserver/readRequestsCount\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "HBase Read Request Count",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/32",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "HBase Write Request Count",
+        "id" : 32,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dHBase,name\\u003dRegionServer,sub\\u003dServer.writeRequestCount\",\"metric_path\":\"metrics/hbase/regionserver/writeRequestsCount\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "HBase Write Request Count",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/33",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "HBase Regions",
+        "id" : 33,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dHBase,name\\u003dRegionServer,sub\\u003dServer.regionCount\",\"metric_path\":\"metrics/hbase/regionserver/regions\",\"service_name\":\"HBASE\",\"component_name\":\"HBASE_REGIONSERVER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "HBase Regions",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/38",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "NodeManager GC Time",
+        "id" : 38,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dNodeManager,name\\u003dJvmMetrics.GcTimeMillis\",\"metric_path\":\"metrics/jvm/gcTimeMillis\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "NodeManager GC Time",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/39",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "NodeManager JVM Heap Memory Used",
+        "id" : 39,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dNodeManager,name\\u003dJvmMetrics.MemHeapUsedM\",\"metric_path\":\"metrics/jvm/memHeapUsedM\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "NodeManager JVM Heap Memory Used",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/40",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "NodeManager Memory used %",
+        "id" : 40,
+        "metrics" : "[{\"name\":\"yarn.NodeManagerMetrics.AllocatedGB\",\"metric_path\":\"metrics/yarn/AllocatedGB\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"},{\"name\":\"yarn.NodeManagerMetrics.AvailableGB\",\"metric_path\":\"metrics/yarn/AvailableGB\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "NodeManager Memory used %",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/41",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "Allocated Containers",
+        "id" : 41,
+        "metrics" : "[{\"name\":\"yarn.NodeManagerMetrics.AllocatedContainers\",\"metric_path\":\"metrics/yarn/AllocatedContainers\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "Allocated Containers",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/42",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "NodeManager RAM Utilized",
+        "id" : 42,
+        "metrics" : "[{\"name\":\"yarn.NodeManagerMetrics.AllocatedGB\",\"metric_path\":\"metrics/yarn/AllocatedGB\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "NodeManager RAM Utilized",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/43",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "NodeManager CPU Utilized",
+        "id" : 43,
+        "metrics" : "[{\"name\":\"yarn.NodeManagerMetrics.AllocatedVCores\",\"metric_path\":\"metrics/yarn/AllocatedVCores\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "NodeManager CPU Utilized",
+        "widget_type" : "HEATMAP"
+      }
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-web/app/assets/data/widget_layouts/YARN_HEATMAPS.json
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/data/widget_layouts/YARN_HEATMAPS.json b/ambari-web/app/assets/data/widget_layouts/YARN_HEATMAPS.json
new file mode 100644
index 0000000..7af77c3
--- /dev/null
+++ b/ambari-web/app/assets/data/widget_layouts/YARN_HEATMAPS.json
@@ -0,0 +1,35 @@
+{
+  "href" : "http://c6401.ambari.apache.org:8080/api/v1/users/admin/activeWidgetLayouts?WidgetLayoutInfo/section_name=YARN_HEATMAPS",
+  "items" : [
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widget_layouts/11",
+      "WidgetLayoutInfo" : {
+        "cluster_name" : "c1",
+        "display_name" : "YARN Heatmaps",
+        "id" : 11,
+        "layout_name" : "admin_yarn_heatmap",
+        "scope" : "USER",
+        "section_name" : "YARN_HEATMAPS",
+        "user_name" : "admin",
+        "widgets" : [
+          {
+            "WidgetInfo" : {
+              "id" : 41,
+              "metrics" : "[{\"name\":\"yarn.NodeManagerMetrics.AllocatedContainers\",\"metric_path\":\"metrics/yarn/AllocatedContainers\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"}]",
+              "author" : "ambari",
+              "description" : "",
+              "scope" : "CLUSTER",
+              "properties" : "{\"display_unit\":\"\",\"max_limit\":\"100\"}",
+              "widget_name" : "Allocated Containers",
+              "widget_type" : "HEATMAP",
+              "time_created" : 1429906622523,
+              "display_name" : "Allocated Containers",
+              "values" : "[{\"name\":\"Allocated Containers\",\"value\":\"${yarn.NodeManagerMetrics.AllocatedContainers}\"}]",
+              "cluster_name" : "c1"
+            }
+          }
+        ]
+      }
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/36ab07ca/ambari-web/app/assets/data/widget_layouts/YARN_HEATMAPS_WIDGETS.json
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/data/widget_layouts/YARN_HEATMAPS_WIDGETS.json b/ambari-web/app/assets/data/widget_layouts/YARN_HEATMAPS_WIDGETS.json
new file mode 100644
index 0000000..a4c45ef
--- /dev/null
+++ b/ambari-web/app/assets/data/widget_layouts/YARN_HEATMAPS_WIDGETS.json
@@ -0,0 +1,84 @@
+
+{
+  "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets?WidgetInfo/widget_type=HEATMAP&WidgetInfo/scope=CLUSTER&WidgetInfo/metrics.matches(.*\\\"service_name\\\":\\\"YARN\\\".*)&fields=WidgetInfo/metrics",
+  "items" : [
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/38",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "NodeManager GC Time",
+        "id" : 38,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dNodeManager,name\\u003dJvmMetrics.GcTimeMillis\",\"metric_path\":\"metrics/jvm/gcTimeMillis\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "NodeManager GC Time",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/39",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "NodeManager JVM Heap Memory Used",
+        "id" : 39,
+        "metrics" : "[{\"name\":\"Hadoop:service\\u003dNodeManager,name\\u003dJvmMetrics.MemHeapUsedM\",\"metric_path\":\"metrics/jvm/memHeapUsedM\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "NodeManager JVM Heap Memory Used",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/40",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "NodeManager Memory used %",
+        "id" : 40,
+        "metrics" : "[{\"name\":\"yarn.NodeManagerMetrics.AllocatedGB\",\"metric_path\":\"metrics/yarn/AllocatedGB\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"},{\"name\":\"yarn.NodeManagerMetrics.AvailableGB\",\"metric_path\":\"metrics/yarn/AvailableGB\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "NodeManager Memory used %",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/41",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "Allocated Containers",
+        "id" : 41,
+        "metrics" : "[{\"name\":\"yarn.NodeManagerMetrics.AllocatedContainers\",\"metric_path\":\"metrics/yarn/AllocatedContainers\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "Allocated Containers",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/42",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "NodeManager RAM Utilized",
+        "id" : 42,
+        "metrics" : "[{\"name\":\"yarn.NodeManagerMetrics.AllocatedGB\",\"metric_path\":\"metrics/yarn/AllocatedGB\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "NodeManager RAM Utilized",
+        "widget_type" : "HEATMAP"
+      }
+    },
+    {
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/widgets/43",
+      "WidgetInfo" : {
+        "author" : "ambari",
+        "cluster_name" : "c1",
+        "display_name" : "NodeManager CPU Utilized",
+        "id" : 43,
+        "metrics" : "[{\"name\":\"yarn.NodeManagerMetrics.AllocatedVCores\",\"metric_path\":\"metrics/yarn/AllocatedVCores\",\"service_name\":\"YARN\",\"component_name\":\"NODEMANAGER\"}]",
+        "scope" : "CLUSTER",
+        "widget_name" : "NodeManager CPU Utilized",
+        "widget_type" : "HEATMAP"
+      }
+    }
+  ]
+}
\ No newline at end of file