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