You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by al...@apache.org on 2015/10/28 18:46:08 UTC
[1/2] ambari git commit: AMBARI-13609. Incorrect metrics names in
exported CSV file for Kafka
Repository: ambari
Updated Branches:
refs/heads/branch-2.1 6432f63fc -> d6a54ace8
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/test/mixins/common/widgets/export_metrics_mixin_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/mixins/common/widgets/export_metrics_mixin_test.js b/ambari-web/test/mixins/common/widgets/export_metrics_mixin_test.js
index d20b484..ae27912 100644
--- a/ambari-web/test/mixins/common/widgets/export_metrics_mixin_test.js
+++ b/ambari-web/test/mixins/common/widgets/export_metrics_mixin_test.js
@@ -57,19 +57,50 @@ describe('App.ExportMetricsMixin', function () {
var cases = [
{
isExportMenuHidden: true,
- title: 'menu should remain hidden'
+ event: {
+ context: true
+ },
+ isCSV: true,
+ title: 'CSV, menu should remain hidden'
},
{
isExportMenuHidden: false,
- title: 'menu should become hidden'
+ event: {},
+ isCSV: false,
+ title: 'JSON, menu should become hidden'
}
];
+ beforeEach(function () {
+ sinon.stub(App.ajax, 'send', Em.K);
+ obj.reopen({
+ targetView: {
+ ajaxIndex: 'index',
+ getDataForAjaxRequest: function () {
+ return {
+ p: 'v'
+ };
+ }
+ }
+ });
+ });
+
+ afterEach(function () {
+ App.ajax.send.restore();
+ });
+
cases.forEach(function (item) {
it(item.title, function () {
obj.set('isExportMenuHidden', item.isExportMenuHidden);
- obj.exportGraphData();
+ obj.exportGraphData(item.event);
+ var ajaxParams = App.ajax.send.firstCall.args[0];
expect(obj.get('isExportMenuHidden')).to.be.true;
+ expect(App.ajax.send.calledOnce).to.be.true;
+ expect(ajaxParams.name).to.equal('index');
+ expect(ajaxParams.data).to.eql({
+ p: 'v',
+ isCSV: item.isCSV
+ });
});
});
@@ -81,8 +112,6 @@ describe('App.ExportMetricsMixin', function () {
{
response: null,
showAlertPopupCallCount: 1,
- prepareCSVCallCount: 0,
- prepareJSONCallCount: 0,
downloadTextFileCallCount: 0,
title: 'no response'
},
@@ -91,8 +120,6 @@ describe('App.ExportMetricsMixin', function () {
metrics: null
},
showAlertPopupCallCount: 1,
- prepareCSVCallCount: 0,
- prepareJSONCallCount: 0,
downloadTextFileCallCount: 0,
title: 'no metrics object in response'
},
@@ -101,8 +128,6 @@ describe('App.ExportMetricsMixin', function () {
metrics: {}
},
showAlertPopupCallCount: 1,
- prepareCSVCallCount: 0,
- prepareJSONCallCount: 0,
downloadTextFileCallCount: 0,
title: 'empty metrics object'
},
@@ -116,9 +141,8 @@ describe('App.ExportMetricsMixin', function () {
isCSV: true
},
showAlertPopupCallCount: 0,
- prepareCSVCallCount: 1,
- prepareJSONCallCount: 0,
downloadTextFileCallCount: 1,
+ data: '0,1',
fileType: 'csv',
fileName: 'data.csv',
title: 'export to CSV'
@@ -133,9 +157,8 @@ describe('App.ExportMetricsMixin', function () {
isCSV: false
},
showAlertPopupCallCount: 0,
- prepareCSVCallCount: 0,
- prepareJSONCallCount: 1,
downloadTextFileCallCount: 1,
+ data: '[{"name":"m0","data":[0,1]}]',
fileType: 'json',
fileName: 'data.json',
title: 'export to JSON'
@@ -145,24 +168,40 @@ describe('App.ExportMetricsMixin', function () {
beforeEach(function () {
sinon.stub(App, 'showAlertPopup', Em.K);
sinon.stub(fileUtils, 'downloadTextFile', Em.K);
- sinon.stub(obj, 'prepareCSV', Em.K);
- sinon.stub(obj, 'prepareJSON', Em.K);
+ sinon.stub(obj, 'prepareCSV').returns('0,1');
+ obj.reopen({
+ targetView: {
+ getData: function (response) {
+ var data = [];
+ if (response && response.metrics) {
+ var name = Em.keys(response.metrics)[0];
+ if (name && response.metrics[name]) {
+ data = [
+ {
+ name: name,
+ data: response.metrics[name]
+ }
+ ];
+ }
+ }
+ return data;
+ }
+ }
+ });
});
afterEach(function () {
App.showAlertPopup.restore();
fileUtils.downloadTextFile.restore();
obj.prepareCSV.restore();
- obj.prepareJSON.restore();
});
cases.forEach(function (item) {
it(item.title, function () {
obj.exportGraphDataSuccessCallback(item.response, null, item.params);
- expect(obj.prepareCSV.callCount).to.equal(item.prepareCSVCallCount);
- expect(obj.prepareJSON.callCount).to.equal(item.prepareJSONCallCount);
expect(fileUtils.downloadTextFile.callCount).to.equal(item.downloadTextFileCallCount);
if (item.downloadTextFileCallCount) {
+ expect(fileUtils.downloadTextFile.firstCall.args[0].replace(/\s/g, '')).to.equal(item.data);
expect(fileUtils.downloadTextFile.firstCall.args[1]).to.equal(item.fileType);
expect(fileUtils.downloadTextFile.firstCall.args[2]).to.equal(item.fileName);
}
@@ -196,95 +235,23 @@ describe('App.ExportMetricsMixin', function () {
});
- describe('#setMetricsArrays', function () {
-
- var metrics = [],
- titles = [],
- data = {
- key0: {
- key1: {
- key2: [[0, 1], [2, 3]],
- key3: [[4, 5], [6, 7]]
- }
- }
- };
-
- it('should construct arrays with metrics info', function () {
- obj.setMetricsArrays(data, metrics, titles);
- expect(metrics).to.eql([[[0, 1], [2, 3]], [[4, 5], [6, 7]]]);
- expect(titles).to.eql(['key2', 'key3']);
- })
-
- });
-
describe('#prepareCSV', function () {
- var cases = [
- {
- data: {
- metrics: {
- key0: [[0, 1], [2, 3]],
- key1: [[4, 1], [5, 3]]
- }
+ var data = [
+ {
+ name: 'n0',
+ data: [[0, 1], [2, 3]]
},
- result: 'Timestamp,key0,key1\n1,0,4\n3,2,5\n',
- title: 'old style widget metrics'
- },
- {
- data: [
- {
- data: [[6, 7], [8, 9]]
- },
- {
- data: [[10, 7], [11, 9]]
- }
- ],
- result: 'Timestamp,,\n7,6,10\n9,8,11\n',
- title: 'enhanced widget metrics'
- }
- ];
-
- cases.forEach(function (item) {
- it(item.title, function () {
- expect(obj.prepareCSV(item.data)).to.equal(item.result);
- });
- });
-
- });
-
- describe('#prepareJSON', function () {
-
- var cases = [
- {
- data: {
- metrics: {
- key0: [[0, 1], [2, 3]],
- key1: [[4, 1], [5, 3]]
- }
- },
- result: "{\"key0\":[[0,1],[2,3]],\"key1\":[[4,1],[5,3]]}",
- title: 'old style widget metrics'
- },
- {
- data: [
- {
- name: 'n0',
- data: [[6, 7], [8, 9]]
- },
- {
- name: 'n1',
- data: [[10, 7], [11, 9]]
- }
- ],
- result: "[{\"name\":\"n0\",\"data\":[[6,7],[8,9]]},{\"name\":\"n1\",\"data\":[[10,7],[11,9]]}]",
- title: 'enhanced widget metrics'
- }
- ];
+ {
+ name: 'n1',
+ data: [[4, 1], [5, 3]]
+ }
+ ],
+ result = 'Timestamp,n0,n1\n1,0,4\n3,2,5\n',
+ title = 'should do CSV export with formatting data as table';
- cases.forEach(function (item) {
- it(item.title, function () {
- expect(obj.prepareJSON(item.data).replace(/\s/g, '')).to.equal(item.result);
- });
+ it(title, function () {
+ expect(obj.prepareCSV(data)).to.equal(result);
});
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/test/views/common/widget/graph_widget_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/common/widget/graph_widget_view_test.js b/ambari-web/test/views/common/widget/graph_widget_view_test.js
index 7215128..31cf5f0 100644
--- a/ambari-web/test/views/common/widget/graph_widget_view_test.js
+++ b/ambari-web/test/views/common/widget/graph_widget_view_test.js
@@ -132,16 +132,12 @@ describe('App.GraphWidgetView', function () {
var cases = [
{
data: null,
- prepareCSVCallCount: 0,
- prepareJSONCallCount: 0,
downloadTextFileCallCount: 0,
showAlertPopupCallCount: 1,
title: 'no data'
},
{
data: {},
- prepareCSVCallCount: 0,
- prepareJSONCallCount: 0,
downloadTextFileCallCount: 0,
showAlertPopupCallCount: 1,
title: 'invalid data'
@@ -152,8 +148,6 @@ describe('App.GraphWidgetView', function () {
data: null
}
],
- prepareCSVCallCount: 0,
- prepareJSONCallCount: 0,
downloadTextFileCallCount: 0,
showAlertPopupCallCount: 1,
title: 'empty data'
@@ -164,8 +158,6 @@ describe('App.GraphWidgetView', function () {
data: {}
}
],
- prepareCSVCallCount: 0,
- prepareJSONCallCount: 0,
downloadTextFileCallCount: 0,
showAlertPopupCallCount: 1,
title: 'malformed data'
@@ -173,17 +165,13 @@ describe('App.GraphWidgetView', function () {
{
data: [
{
- data: [
- {
- key: 'value'
- }
- ]
+ name: 'name',
+ data: [0,1]
}
],
- prepareCSVCallCount: 0,
- prepareJSONCallCount: 1,
downloadTextFileCallCount: 1,
showAlertPopupCallCount: 0,
+ fileData: '[{"name":"name","data":[0,1]}]',
title: 'JSON export'
},
{
@@ -199,24 +187,21 @@ describe('App.GraphWidgetView', function () {
event: {
context: true
},
- prepareCSVCallCount: 1,
- prepareJSONCallCount: 0,
downloadTextFileCallCount: 1,
showAlertPopupCallCount: 0,
+ fileData: 'key,value',
title: 'CSV export'
}
];
beforeEach(function () {
- sinon.stub(view, 'prepareCSV').returns([]);
- sinon.stub(view, 'prepareJSON').returns([]);
+ sinon.stub(view, 'prepareCSV').returns('key,value');
sinon.stub(fileUtils, 'downloadTextFile', Em.K);
sinon.stub(App, 'showAlertPopup', Em.K);
});
afterEach(function () {
view.prepareCSV.restore();
- view.prepareJSON.restore();
fileUtils.downloadTextFile.restore();
App.showAlertPopup.restore();
});
@@ -225,13 +210,15 @@ describe('App.GraphWidgetView', function () {
it(item.title, function () {
view.set('data', item.data);
view.exportGraphData(item.event || {});
- expect(view.prepareCSV.callCount).to.equal(item.prepareCSVCallCount);
- expect(view.prepareJSON.callCount).to.equal(item.prepareJSONCallCount);
+ expect(view.get('isExportMenuHidden')).to.be.true;
expect(fileUtils.downloadTextFile.callCount).to.equal(item.downloadTextFileCallCount);
expect(App.showAlertPopup.callCount).to.equal(item.showAlertPopupCallCount);
if (item.downloadTextFileCallCount) {
- var fileType = item.event && item.event.context ? 'csv' : 'json';
- expect(fileUtils.downloadTextFile.calledWith([], fileType, 'data.' + fileType)).to.be.true;
+ var fileType = item.event && item.event.context ? 'csv' : 'json',
+ downloadArgs = fileUtils.downloadTextFile.firstCall.args;
+ expect(downloadArgs[0].replace(/\s/g, '')).to.equal(item.fileData);
+ expect(downloadArgs[1]).to.equal(fileType);
+ expect(downloadArgs[2]).to.equal('data.' + fileType);
}
});
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/test/views/main/dashboard/cluster_metrics/memory_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/dashboard/cluster_metrics/memory_test.js b/ambari-web/test/views/main/dashboard/cluster_metrics/memory_test.js
deleted file mode 100644
index 5e7bc516..0000000
--- a/ambari-web/test/views/main/dashboard/cluster_metrics/memory_test.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var App = require('app');
-
-require('views/main/dashboard/cluster_metrics/memory');
-
-describe('App.ChartClusterMetricsMemory', function () {
-
- var view;
-
- beforeEach(function () {
- view = App.ChartClusterMetricsMemory.create();
- });
-
- describe('#transformToSeries', function () {
-
- var jsonData = {
- metrics: {
- memory: {
- Buffer: [
- [256, 1000000000],
- [512, 1000001000]
- ],
- Total: [
- [1024, 1100000000],
- [2048, 1100001000]
- ]
- }
- }
- },
- seriesData = [
- [
- {
- x: 1000000000,
- y: 262144
- },
- {
- x: 1000001000,
- y: 524288
- }
- ],
- [
- {
- x: 1100000000,
- y: 1048576
- },
- {
- x: 1100001000,
- y: 2097152
- }
- ]
- ],
- names = ['Buffer', 'Total'],
- title = 'should transform data to series';
-
- it(title, function () {
- var series = view.transformToSeries(jsonData);
- expect(series.mapProperty('name')).to.eql(names);
- expect(series.mapProperty('data')).to.eql(seriesData);
- });
-
- });
-
-});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/test/views/main/dashboard/widgets/cluster_metrics_widget_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/dashboard/widgets/cluster_metrics_widget_test.js b/ambari-web/test/views/main/dashboard/widgets/cluster_metrics_widget_test.js
index 1471aac..f05cd30 100644
--- a/ambari-web/test/views/main/dashboard/widgets/cluster_metrics_widget_test.js
+++ b/ambari-web/test/views/main/dashboard/widgets/cluster_metrics_widget_test.js
@@ -28,61 +28,25 @@ describe('App.ClusterMetricsDashboardWidgetView', function () {
view = App.ClusterMetricsDashboardWidgetView.create();
});
- describe('#exportGraphData', function () {
+ describe('#exportTargetView', function () {
- beforeEach(function () {
- sinon.stub(App.ajax, 'send', Em.K);
- view.get('childViews').pushObjects([
+ var childViews = [
{
- ajaxIndex: 'ai0',
- getDataForAjaxRequest: function () {
- return {
- p0: 'v0'
- }
- }
+ p0: 'v0'
},
{
- ajaxIndex: 'ai1',
- getDataForAjaxRequest: function () {
- return {
- p1: 'v1'
- }
- }
+ p1: 'v1'
}
- ]);
- });
+ ],
+ title = 'should take last child view';
- afterEach(function () {
- App.ajax.send.restore();
+ beforeEach(function () {
+ view.get('childViews').pushObjects(childViews);
});
- var cases = [
- {
- event: {},
- isCSV: false,
- title: 'JSON export'
- },
- {
- event: {
- context: true
- },
- isCSV: true,
- title: 'CSV export'
- }
- ];
-
- cases.forEach(function (item) {
- it(item.title, function () {
- view.exportGraphData(item.event);
- expect(App.ajax.send.calledOnce).to.be.true;
- expect(App.ajax.send.firstCall.args[0].name).to.equal('ai1');
- expect(App.ajax.send.firstCall.args[0].data).to.eql({
- p1: 'v1',
- isCSV: item.isCSV
- });
- });
+ it(title, function () {
+ expect(view.get('exportTargetView')).to.eql(childViews[1]);
});
-
});
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/test/views/main/service/info/metrics/flume/channel_size_mma_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/service/info/metrics/flume/channel_size_mma_test.js b/ambari-web/test/views/main/service/info/metrics/flume/channel_size_mma_test.js
deleted file mode 100644
index 176d702..0000000
--- a/ambari-web/test/views/main/service/info/metrics/flume/channel_size_mma_test.js
+++ /dev/null
@@ -1,142 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var App = require('app');
-require('views/main/service/info/metrics/flume/channel_size_mma');
-
-describe('App.ChartServiceMetricsFlume_ChannelSizeMMA', function () {
-
- var view;
-
- beforeEach(function () {
- view = App.ChartServiceMetricsFlume_ChannelSizeMMA.create();
- });
-
- describe('#transformToSeries', function () {
-
- var cases = [
- {
- data: {},
- seriesArray: [],
- title: 'empty response'
- },
- {
- data: {
- metrics: {}
- },
- seriesArray: [],
- title: 'invalid response'
- },
- {
- data: {
- metrics: {
- flume: {
- flume: {
- CHANNEL: {
- ChannelSize: {
- rate: null
- }
- }
- }
- }
- }
- },
- seriesArray: [],
- title: 'empty data'
- },
- {
- data: {
- metrics: {
- flume: {
- flume: {
- CHANNEL: {
- ChannelSize: {
- rate: {
- avg: [
- [0, 1445472000],
- [1, 1445472015]
- ],
- max: [
- [2, 1445472000],
- [3, 1445472015]
- ],
- min: [
- [4, 1445472000],
- [5, 1445472015]
- ]
- }
- }
- }
- }
- }
- }
- },
- seriesArray: [
- {
- name: Em.I18n.t('services.service.info.metrics.flume.channelType').format('avg'),
- data: [
- {
- x: 1445472000,
- y: 0
- },
- {
- x: 1445472015,
- y: 1
- }
- ]
- },
- {
- name: Em.I18n.t('services.service.info.metrics.flume.channelType').format('max'),
- data: [
- {
- x: 1445472000,
- y: 2
- },
- {
- x: 1445472015,
- y: 3
- }
- ]
- },
- {
- name: Em.I18n.t('services.service.info.metrics.flume.channelType').format('min'),
- data: [
- {
- x: 1445472000,
- y: 4
- },
- {
- x: 1445472015,
- y: 5
- }
- ]
- }
- ],
- title: 'valid data'
- }
- ];
-
- cases.forEach(function (item) {
- it(item.title, function () {
- expect(view.transformToSeries(item.data)).to.eql(item.seriesArray);
- });
- });
-
- });
-
-});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/test/views/main/service/info/metrics/flume/channel_sum_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/service/info/metrics/flume/channel_sum_test.js b/ambari-web/test/views/main/service/info/metrics/flume/channel_sum_test.js
deleted file mode 100644
index 53e78f2..0000000
--- a/ambari-web/test/views/main/service/info/metrics/flume/channel_sum_test.js
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var App = require('app');
-require('views/main/service/info/metrics/flume/channel_sum');
-
-describe('App.ChartServiceMetricsFlume_ChannelSizeSum', function () {
-
- var view;
-
- beforeEach(function () {
- view = App.ChartServiceMetricsFlume_ChannelSizeSum.create();
- });
-
- describe('#transformToSeries', function () {
-
- var cases = [
- {
- data: {},
- seriesArray: [],
- title: 'empty response'
- },
- {
- data: {
- metrics: {}
- },
- seriesArray: [],
- title: 'invalid response'
- },
- {
- data: {
- metrics: {
- flume: {
- flume: {
- CHANNEL: {
- ChannelSize: {
- rate: null
- }
- }
- }
- }
- }
- },
- seriesArray: [],
- title: 'empty data'
- },
- {
- data: {
- metrics: {
- flume: {
- flume: {
- CHANNEL: {
- ChannelSize: {
- rate: {
- sum: [
- [0, 1445472000],
- [1, 1445472015]
- ]
- }
- }
- }
- }
- }
- }
- },
- seriesArray: [
- {
- name: Em.I18n.t('services.service.info.metrics.flume.channelSizeSum'),
- data: [
- {
- x: 1445472000,
- y: 0
- },
- {
- x: 1445472015,
- y: 1
- }
- ]
- }
- ],
- title: 'valid data'
- }
- ];
-
- cases.forEach(function (item) {
- it(item.title, function () {
- expect(view.transformToSeries(item.data)).to.eql(item.seriesArray);
- });
- });
-
- });
-
-});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/test/views/main/service/info/metrics/flume/flume_incoming_mma_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/service/info/metrics/flume/flume_incoming_mma_test.js b/ambari-web/test/views/main/service/info/metrics/flume/flume_incoming_mma_test.js
deleted file mode 100644
index 9f61913..0000000
--- a/ambari-web/test/views/main/service/info/metrics/flume/flume_incoming_mma_test.js
+++ /dev/null
@@ -1,142 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var App = require('app');
-require('views/main/service/info/metrics/flume/flume_incoming_mma');
-
-describe('App.ChartServiceMetricsFlume_IncommingMMA', function () {
-
- var view;
-
- beforeEach(function () {
- view = App.ChartServiceMetricsFlume_IncommingMMA.create();
- });
-
- describe('#transformToSeries', function () {
-
- var cases = [
- {
- data: {},
- seriesArray: [],
- title: 'empty response'
- },
- {
- data: {
- metrics: {}
- },
- seriesArray: [],
- title: 'invalid response'
- },
- {
- data: {
- metrics: {
- flume: {
- flume: {
- CHANNEL: {
- EventPutSuccessCount: {
- rate: null
- }
- }
- }
- }
- }
- },
- seriesArray: [],
- title: 'empty data'
- },
- {
- data: {
- metrics: {
- flume: {
- flume: {
- CHANNEL: {
- EventPutSuccessCount: {
- rate: {
- avg: [
- [0, 1445472000],
- [1, 1445472015]
- ],
- max: [
- [2, 1445472000],
- [3, 1445472015]
- ],
- min: [
- [4, 1445472000],
- [5, 1445472015]
- ]
- }
- }
- }
- }
- }
- }
- },
- seriesArray: [
- {
- name: Em.I18n.t('services.service.info.metrics.flume.incoming_mma').format('avg'),
- data: [
- {
- x: 1445472000,
- y: 0
- },
- {
- x: 1445472015,
- y: 1
- }
- ]
- },
- {
- name: Em.I18n.t('services.service.info.metrics.flume.incoming_mma').format('max'),
- data: [
- {
- x: 1445472000,
- y: 2
- },
- {
- x: 1445472015,
- y: 3
- }
- ]
- },
- {
- name: Em.I18n.t('services.service.info.metrics.flume.incoming_mma').format('min'),
- data: [
- {
- x: 1445472000,
- y: 4
- },
- {
- x: 1445472015,
- y: 5
- }
- ]
- }
- ],
- title: 'valid data'
- }
- ];
-
- cases.forEach(function (item) {
- it(item.title, function () {
- expect(view.transformToSeries(item.data)).to.eql(item.seriesArray);
- });
- });
-
- });
-
-});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/test/views/main/service/info/metrics/flume/flume_incoming_sum_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/service/info/metrics/flume/flume_incoming_sum_test.js b/ambari-web/test/views/main/service/info/metrics/flume/flume_incoming_sum_test.js
deleted file mode 100644
index 902e8a5..0000000
--- a/ambari-web/test/views/main/service/info/metrics/flume/flume_incoming_sum_test.js
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var App = require('app');
-require('views/main/service/info/metrics/flume/flume_incoming_sum');
-
-describe('App.ChartServiceMetricsFlume_IncommingSum', function () {
-
- var view;
-
- beforeEach(function () {
- view = App.ChartServiceMetricsFlume_IncommingSum.create();
- });
-
- describe('#transformToSeries', function () {
-
- var cases = [
- {
- data: {},
- seriesArray: [],
- title: 'empty response'
- },
- {
- data: {
- metrics: {}
- },
- seriesArray: [],
- title: 'invalid response'
- },
- {
- data: {
- metrics: {
- flume: {
- flume: {
- CHANNEL: {
- EventPutSuccessCount: {
- rate: null
- }
- }
- }
- }
- }
- },
- seriesArray: [],
- title: 'empty data'
- },
- {
- data: {
- metrics: {
- flume: {
- flume: {
- CHANNEL: {
- EventPutSuccessCount: {
- rate: {
- sum: [
- [0, 1445472000],
- [1, 1445472015]
- ]
- }
- }
- }
- }
- }
- }
- },
- seriesArray: [
- {
- name: Em.I18n.t('services.service.info.metrics.flume.incoming.sum'),
- data: [
- {
- x: 1445472000,
- y: 0
- },
- {
- x: 1445472015,
- y: 1
- }
- ]
- }
- ],
- title: 'valid data'
- }
- ];
-
- cases.forEach(function (item) {
- it(item.title, function () {
- expect(view.transformToSeries(item.data)).to.eql(item.seriesArray);
- });
- });
-
- });
-
-});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/test/views/main/service/info/metrics/flume/flume_outgoing_mma_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/service/info/metrics/flume/flume_outgoing_mma_test.js b/ambari-web/test/views/main/service/info/metrics/flume/flume_outgoing_mma_test.js
deleted file mode 100644
index 70575a7..0000000
--- a/ambari-web/test/views/main/service/info/metrics/flume/flume_outgoing_mma_test.js
+++ /dev/null
@@ -1,142 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var App = require('app');
-require('views/main/service/info/metrics/flume/flume_outgoing_mma');
-
-describe('App.ChartServiceMetricsFlume_OutgoingMMA', function () {
-
- var view;
-
- beforeEach(function () {
- view = App.ChartServiceMetricsFlume_OutgoingMMA.create();
- });
-
- describe('#transformToSeries', function () {
-
- var cases = [
- {
- data: {},
- seriesArray: [],
- title: 'empty response'
- },
- {
- data: {
- metrics: {}
- },
- seriesArray: [],
- title: 'invalid response'
- },
- {
- data: {
- metrics: {
- flume: {
- flume: {
- CHANNEL: {
- EventTakeSuccessCount: {
- rate: null
- }
- }
- }
- }
- }
- },
- seriesArray: [],
- title: 'empty data'
- },
- {
- data: {
- metrics: {
- flume: {
- flume: {
- CHANNEL: {
- EventTakeSuccessCount: {
- rate: {
- avg: [
- [0, 1445472000],
- [1, 1445472015]
- ],
- max: [
- [2, 1445472000],
- [3, 1445472015]
- ],
- min: [
- [4, 1445472000],
- [5, 1445472015]
- ]
- }
- }
- }
- }
- }
- }
- },
- seriesArray: [
- {
- name: Em.I18n.t('services.service.info.metrics.flume.outgoing_mma').format('avg'),
- data: [
- {
- x: 1445472000,
- y: 0
- },
- {
- x: 1445472015,
- y: 1
- }
- ]
- },
- {
- name: Em.I18n.t('services.service.info.metrics.flume.outgoing_mma').format('max'),
- data: [
- {
- x: 1445472000,
- y: 2
- },
- {
- x: 1445472015,
- y: 3
- }
- ]
- },
- {
- name: Em.I18n.t('services.service.info.metrics.flume.outgoing_mma').format('min'),
- data: [
- {
- x: 1445472000,
- y: 4
- },
- {
- x: 1445472015,
- y: 5
- }
- ]
- }
- ],
- title: 'valid data'
- }
- ];
-
- cases.forEach(function (item) {
- it(item.title, function () {
- expect(view.transformToSeries(item.data)).to.eql(item.seriesArray);
- });
- });
-
- });
-
-});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/test/views/main/service/info/metrics/flume/flume_outgoing_sum_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/service/info/metrics/flume/flume_outgoing_sum_test.js b/ambari-web/test/views/main/service/info/metrics/flume/flume_outgoing_sum_test.js
deleted file mode 100644
index 14005d7..0000000
--- a/ambari-web/test/views/main/service/info/metrics/flume/flume_outgoing_sum_test.js
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var App = require('app');
-require('views/main/service/info/metrics/flume/flume_outgoing_sum');
-
-describe('App.ChartServiceMetricsFlume_OutgoingSum', function () {
-
- var view;
-
- beforeEach(function () {
- view = App.ChartServiceMetricsFlume_OutgoingSum.create();
- });
-
- describe('#transformToSeries', function () {
-
- var cases = [
- {
- data: {},
- seriesArray: [],
- title: 'empty response'
- },
- {
- data: {
- metrics: {}
- },
- seriesArray: [],
- title: 'invalid response'
- },
- {
- data: {
- metrics: {
- flume: {
- flume: {
- CHANNEL: {
- EventTakeSuccessCount: {
- rate: null
- }
- }
- }
- }
- }
- },
- seriesArray: [],
- title: 'empty data'
- },
- {
- data: {
- metrics: {
- flume: {
- flume: {
- CHANNEL: {
- EventTakeSuccessCount: {
- rate: {
- sum: [
- [0, 1445472000],
- [1, 1445472015]
- ]
- }
- }
- }
- }
- }
- }
- },
- seriesArray: [
- {
- name: Em.I18n.t('services.service.info.metrics.flume.outgoing.sum'),
- data: [
- {
- x: 1445472000,
- y: 0
- },
- {
- x: 1445472015,
- y: 1
- }
- ]
- }
- ],
- title: 'valid data'
- }
- ];
-
- cases.forEach(function (item) {
- it(item.title, function () {
- expect(view.transformToSeries(item.data)).to.eql(item.seriesArray);
- });
- });
-
- });
-
-});
\ No newline at end of file
[2/2] ambari git commit: AMBARI-13609. Incorrect metrics names in
exported CSV file for Kafka
Posted by al...@apache.org.
AMBARI-13609. Incorrect metrics names in exported CSV file for Kafka
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/d6a54ace
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/d6a54ace
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/d6a54ace
Branch: refs/heads/branch-2.1
Commit: d6a54ace8ab0ed5e4869a5e9bbde5f5f43592750
Parents: 6432f63
Author: Alex Antonenko <hi...@gmail.com>
Authored: Wed Oct 28 19:45:06 2015 +0200
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Wed Oct 28 19:45:59 2015 +0200
----------------------------------------------------------------------
ambari-web/app/assets/test/tests.js | 7 -
ambari-web/app/messages.js | 4 +-
.../mixins/common/chart/storm_linear_time.js | 17 +-
.../common/widgets/export_metrics_mixin.js | 73 +++-----
.../app/views/common/chart/linear_time.js | 152 +++++++++++++---
.../views/common/widget/graph_widget_view.js | 4 +-
.../views/main/dashboard/cluster_metrics/cpu.js | 31 ++--
.../main/dashboard/cluster_metrics/load.js | 15 +-
.../main/dashboard/cluster_metrics/memory.js | 20 +--
.../main/dashboard/cluster_metrics/network.js | 15 +-
.../dashboard/widgets/cluster_metrics_widget.js | 18 +-
ambari-web/app/views/main/host/metrics/cpu.js | 69 ++++----
ambari-web/app/views/main/host/metrics/disk.js | 45 ++---
ambari-web/app/views/main/host/metrics/load.js | 33 +---
.../app/views/main/host/metrics/memory.js | 49 ++----
.../app/views/main/host/metrics/network.js | 37 ++--
.../app/views/main/host/metrics/processes.js | 29 +---
.../ambari_metrics/master_average_load.js | 25 +--
.../metrics/ambari_metrics/regionserver_base.js | 27 +--
.../info/metrics/flume/channel_fill_pct.js | 32 ++--
.../service/info/metrics/flume/channel_size.js | 32 ++--
.../info/metrics/flume/channel_size_mma.js | 18 +-
.../service/info/metrics/flume/channel_sum.js | 12 +-
.../main/service/info/metrics/flume/cpu_user.js | 27 +--
.../info/metrics/flume/flume_incoming_mma.js | 18 +-
.../info/metrics/flume/flume_incoming_sum.js | 12 +-
.../info/metrics/flume/flume_metric_graph.js | 27 +--
.../info/metrics/flume/flume_outgoing_mma.js | 18 +-
.../info/metrics/flume/flume_outgoing_sum.js | 12 +-
.../views/main/service/info/metrics/flume/gc.js | 27 +--
.../main/service/info/metrics/flume/jvm_heap.js | 35 ++--
.../info/metrics/flume/jvm_threads_runnable.js | 29 +---
.../metrics/flume/sink_connection_failed.js | 32 ++--
.../info/metrics/flume/sink_drain_success.js | 32 ++--
.../info/metrics/flume/source_accepted.js | 32 ++--
.../service/info/metrics/kafka/broker_topic.js | 37 ++--
.../info/metrics/kafka/controller_status.js | 33 ++--
.../info/metrics/kafka/kafka_controller.js | 11 +-
.../info/metrics/kafka/replica_fetcher.js | 11 +-
.../info/metrics/kafka/replica_manager.js | 33 +---
.../common/chart/storm_linear_time_test.js | 11 +-
.../common/widgets/export_metrics_mixin_test.js | 173 ++++++++-----------
.../common/widget/graph_widget_view_test.js | 35 ++--
.../dashboard/cluster_metrics/memory_test.js | 80 ---------
.../widgets/cluster_metrics_widget_test.js | 56 ++----
.../info/metrics/flume/channel_size_mma_test.js | 142 ---------------
.../info/metrics/flume/channel_sum_test.js | 108 ------------
.../metrics/flume/flume_incoming_mma_test.js | 142 ---------------
.../metrics/flume/flume_incoming_sum_test.js | 108 ------------
.../metrics/flume/flume_outgoing_mma_test.js | 142 ---------------
.../metrics/flume/flume_outgoing_sum_test.js | 108 ------------
51 files changed, 573 insertions(+), 1722 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/assets/test/tests.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/test/tests.js b/ambari-web/app/assets/test/tests.js
index 78cad87..09b782b 100644
--- a/ambari-web/app/assets/test/tests.js
+++ b/ambari-web/app/assets/test/tests.js
@@ -224,7 +224,6 @@ var files = ['test/init_model_test',
'test/views/main/dashboard/config_history_view_test',
'test/views/main/dashboard/widget_test',
'test/views/main/dashboard/widgets_test',
- 'test/views/main/dashboard/cluster_metrics/memory_test',
'test/views/main/dashboard/widgets/text_widget_test',
'test/views/main/dashboard/widgets/uptime_text_widget_test',
'test/views/main/dashboard/widgets/node_managers_live_test',
@@ -256,12 +255,6 @@ var files = ['test/init_model_test',
'test/views/main/service/info/config_test',
'test/views/main/service/info/summary_test',
'test/views/main/service/info/metrics/ambari_metrics/regionserver_base_test',
- 'test/views/main/service/info/metrics/flume/channel_size_mma_test',
- 'test/views/main/service/info/metrics/flume/channel_sum_test',
- 'test/views/main/service/info/metrics/flume/flume_incoming_mma_test',
- 'test/views/main/service/info/metrics/flume/flume_incoming_sum_test',
- 'test/views/main/service/info/metrics/flume/flume_outgoing_mma_test',
- 'test/views/main/service/info/metrics/flume/flume_outgoing_sum_test',
'test/views/main/service/services/ranger_test',
'test/views/main/service/widgets/create/expression_view_test',
'test/views/main/admin/highAvailability/nameNode/step1_view_test',
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 2aa9d1a..0ce69ad 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -1805,8 +1805,8 @@ Em.I18n.translations = {
'services.service.info.metrics.kafka.server.brokerTopic.displayNames.AllTopicsBytesInPerSec': 'Bytes In',
'services.service.info.metrics.kafka.server.brokerTopic.displayNames.AllTopicsMessagesInPerSec': 'Messages In',
'services.service.info.metrics.kafka.server.ReplicaManager.title': 'Replica Manager',
- 'services.service.info.metrics.kafka.server.ReplicaManager.displayNames.PartitionCount': 'Partiotions count',
- 'services.service.info.metrics.kafka.server.ReplicaManager.displayNames.UnderReplicatedPartitions': 'Under Replicated Partiotions',
+ 'services.service.info.metrics.kafka.server.ReplicaManager.displayNames.PartitionCount': 'Partitions count',
+ 'services.service.info.metrics.kafka.server.ReplicaManager.displayNames.UnderReplicatedPartitions': 'Under Replicated Partitions',
'services.service.info.metrics.kafka.server.ReplicaManager.displayNames.LeaderCount': 'Leader Count',
'services.service.info.metrics.kafka.controller.ControllerStats.title': 'Controller Status',
'services.service.info.metrics.kafka.controller.ControllerStats.displayNames.LeaderElectionRateAndTimeMs': 'Leader Election Rate And Time',
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/mixins/common/chart/storm_linear_time.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/chart/storm_linear_time.js b/ambari-web/app/mixins/common/chart/storm_linear_time.js
index f70db0b..62a606d 100644
--- a/ambari-web/app/mixins/common/chart/storm_linear_time.js
+++ b/ambari-web/app/mixins/common/chart/storm_linear_time.js
@@ -36,10 +36,10 @@ App.StormLinearTimeChartMixin = Em.Mixin.create({
};
},
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var pathKeys = ['metrics','storm','nimbus'];
- var validPath = true;
+ getData: function (jsonData) {
+ var dataArray = [],
+ pathKeys = ['metrics','storm','nimbus'],
+ validPath = true;
pathKeys.forEach(function(key) {
if (!jsonData[key]) {
validPath = false;
@@ -48,11 +48,14 @@ App.StormLinearTimeChartMixin = Em.Mixin.create({
}
});
if (!validPath) {
- return seriesArray;
+ return dataArray;
}
this.get('stormChartDefinition').forEach(function(chart){
- seriesArray.push(this.transformData(jsonData[chart.field], chart.name));
+ dataArray.push({
+ name: chart.name,
+ data: jsonData[chart.field]
+ });
}, this);
- return seriesArray;
+ return dataArray;
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/mixins/common/widgets/export_metrics_mixin.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/widgets/export_metrics_mixin.js b/ambari-web/app/mixins/common/widgets/export_metrics_mixin.js
index 1f2d657..84a2194 100644
--- a/ambari-web/app/mixins/common/widgets/export_metrics_mixin.js
+++ b/ambari-web/app/mixins/common/widgets/export_metrics_mixin.js
@@ -35,6 +35,10 @@ App.ExportMetricsMixin = Em.Mixin.create({
exportMetricsMenuView: App.ExportMetricsMenuView.extend(),
+ targetView: function () {
+ return this.get('exportTargetView') || this;
+ }.property(),
+
hideMenuForNoData: function () {
if (this.get('isExportButtonHidden')) {
this.set('isExportMenuHidden', true);
@@ -45,18 +49,28 @@ App.ExportMetricsMixin = Em.Mixin.create({
this.toggleProperty('isExportMenuHidden');
},
- exportGraphData: function () {
+ exportGraphData: function (event) {
this.set('isExportMenuHidden', true);
+ var ajaxIndex = this.get('targetView.ajaxIndex');
+ App.ajax.send({
+ name: ajaxIndex,
+ data: $.extend(this.get('targetView').getDataForAjaxRequest(), {
+ isCSV: !!event.context
+ }),
+ sender: this,
+ success: 'exportGraphDataSuccessCallback',
+ error: 'exportGraphDataErrorCallback'
+ });
},
exportGraphDataSuccessCallback: function (response, request, params) {
- var hasData = response && response.metrics && Em.keys(response.metrics).length;
- if (!hasData) {
+ var seriesData = this.get('targetView').getData(response);
+ if (!seriesData.length) {
App.showAlertPopup(Em.I18n.t('graphs.noData.title'), Em.I18n.t('graphs.noData.tooltip.title'));
} else {
var fileType = params.isCSV ? 'csv' : 'json',
fileName = 'data.' + fileType,
- data = params.isCSV ? this.prepareCSV(response) : this.prepareJSON(response);
+ data = params.isCSV ? this.prepareCSV(seriesData) : JSON.stringify(seriesData, null, 4);
fileUtils.downloadTextFile(data, fileType, fileName);
}
},
@@ -65,45 +79,12 @@ App.ExportMetricsMixin = Em.Mixin.create({
App.ajax.defaultErrorHandler(jqXHR, opt.url, opt.method, jqXHR.status);
},
- /**
- * Take metrics from any depth level in JSON response
- * @method setMetricsArrays
- * @param data
- * @param metrics
- * @param titles
- */
- setMetricsArrays: function (data, metrics, titles) {
- Em.keys(data).forEach(function (key) {
- if (Em.isArray(data[key])) {
- titles.push(key);
- metrics.push(data[key]);
- } else {
- this.setMetricsArrays(data[key], metrics, titles);
- }
- }, this);
- },
-
prepareCSV: function (data) {
- var metrics = [],
- getMetricsItem = function (i, j, k) {
- var item;
- if (data.metrics) {
- item = metrics[j][i][k];
- } else if (Em.isArray(data)) {
- item = data[j].data[i][k];
- }
- return item;
- },
- titles,
+ var titles,
ticksNumber,
metricsNumber,
metricsArray;
- if (data.metrics) {
- titles = [Em.I18n.t('common.timestamp')];
- this.setMetricsArrays(data.metrics, metrics, titles);
- ticksNumber = metrics[0].length;
- metricsNumber = metrics.length
- } else if (Em.isArray(data)) {
+ if (Em.isArray(data)) {
titles = data.mapProperty('name');
titles.unshift(Em.I18n.t('common.timestamp'));
ticksNumber = data[0].data.length;
@@ -111,22 +92,12 @@ App.ExportMetricsMixin = Em.Mixin.create({
}
metricsArray = [titles];
for (var i = 0; i < ticksNumber; i++) {
- metricsArray.push([getMetricsItem(i, 0, 1)]);
+ metricsArray.push([data[0].data[i][1]]);
for (var j = 0; j < metricsNumber; j++) {
- metricsArray[i + 1].push(getMetricsItem(i, j, 0));
+ metricsArray[i + 1].push(data[j].data[i][0]);
};
}
return stringUtils.arrayToCSV(metricsArray);
- },
-
- prepareJSON: function (data) {
- var fileData;
- if (data.metrics) {
- fileData = JSON.stringify(data.metrics, null, 4);
- } else if (Em.isArray(data)) {
- fileData = JSON.stringify(data, ['name', 'data'], 4);
- }
- return fileData;
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/common/chart/linear_time.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/chart/linear_time.js b/ambari-web/app/views/common/chart/linear_time.js
index ccf26ac..24ca450 100644
--- a/ambari-web/app/views/common/chart/linear_time.js
+++ b/ambari-web/app/views/common/chart/linear_time.js
@@ -34,12 +34,13 @@ var dateUtils = require('utils/date/date');
* <li>url - from where the data can be retrieved
* <li>title - Title to be displayed when showing the chart
* <li>id - which uniquely identifies this chart in any page
- * <li>#transformToSeries(jsonData) - function to map server data into graph
- * series
+ * <li>seriesTemplate - template used by getData method to process server data
* </ul>
*
* Extending classes could optionally override the following:
* <ul>
+ * <li>#getData(jsonData) - function to map server data into series format
+ * ready for export to graph and JSON formats
* <li>#colorForSeries(series) - function to get custom colors per series
* </ul>
*
@@ -152,6 +153,20 @@ App.ChartLinearTimeView = Ember.View.extend(App.ExportMetricsMixin, {
*/
displayUnit: null,
+ /**
+ * Object containing information to get metrics data from API response
+ * Supported properties:
+ * <ul>
+ * <li>path - exact path to metrics data in response JSON (required)
+ * <li>displayName(name, hostName) - returns display name for metrics
+ * depending on property name in response JSON and host name for Flume Agents
+ * <li>factor - number that metrics values should be multiplied by
+ * <li>flumePropertyName - property name to access certain Flume metrics
+ * </ul>
+ * @type {Object}
+ */
+ seriesTemplate: null,
+
_containerSelector: function () {
return '#' + this.get('id') + '-container';
}.property('id'),
@@ -173,6 +188,113 @@ App.ChartLinearTimeView = Ember.View.extend(App.ExportMetricsMixin, {
});
},
+ /**
+ * Maps server data into series format ready for export to graph and JSON formats
+ * @param jsonData
+ * @returns {Array}
+ */
+ getData: function (jsonData) {
+ var dataArray = [],
+ template = this.get('seriesTemplate'),
+ data = Em.get(jsonData, template.path);
+ if (data) {
+ for (var name in data) {
+ var currentData = data[name];
+ if (currentData) {
+ var factor = template.factor,
+ displayName = template.displayName ? template.displayName(name) : name;
+ if (!Em.isNone(factor)) {
+ var dataLength = currentData.length;
+ for (var i = dataLength; i--;) {
+ currentData[i][0] *= factor;
+ }
+ }
+ dataArray.push({
+ name: displayName,
+ data: currentData
+ });
+ }
+ }
+ }
+ return dataArray;
+ },
+
+ /**
+ * Maps server data for certain Flume metrics into series format ready for export
+ * to graph and JSON formats
+ * @param jsonData
+ * @returns {Array}
+ */
+ getFlumeData: function (jsonData) {
+ var dataArray = [];
+ if (jsonData && jsonData.host_components) {
+ jsonData.host_components.forEach(function (hc) {
+ var hostName = hc.HostRoles.host_name,
+ host = App.Host.find(hostName),
+ template = this.get('template'),
+ data = Em.get(hc, template.path);
+ if (host && host.get('publicHostName')) {
+ hostName = host.get('publicHostName');
+ }
+ if (data) {
+ for (var cname in data) {
+ var seriesName = template.displayName ? template.displayName(cname, hostName) : cname,
+ seriesData = template.flumePropertyName ? data[cname][template.flumePropertyName] : data[cname];
+ if (seriesData) {
+ var factor = template.factor;
+ if (!Em.isNone(factor)) {
+ var dataLength = seriesData.length;
+ for (var i = dataLength; i--;) {
+ seriesData[i][0] *= factor;
+ }
+ }
+ dataArray.push({
+ name: seriesName,
+ data: seriesData
+ });
+ }
+ }
+ }
+ }, this);
+ }
+ return dataArray;
+ },
+
+ /**
+ * Maps server data for Kafka Broker Topic and Controller Status metrics
+ * into series format ready for export to graph and JSON formats
+ * @param jsonData
+ * @returns {Array}
+ */
+ getKafkaData: function (jsonData) {
+ var dataArray = [],
+ template = this.get('seriesTemplate'),
+ data = Em.get(jsonData, template.path);
+ for (var name in data) {
+ var displayName = template.displayName(name);
+ dataArray.push({
+ name: displayName,
+ data: Em.get(data, name + '.1MinuteRate')
+ });
+ }
+ return dataArray;
+ },
+
+ /**
+ * Function to map data into graph series
+ * @param jsonData
+ * @returns {Array}
+ */
+ transformToSeries: function (jsonData) {
+ var seriesArray = [],
+ seriesData = this.getData(jsonData),
+ dataLength = seriesData.length;
+ for (var i = 0; i < dataLength; i++) {
+ seriesArray.push(this.transformData(seriesData[i].data, seriesData[i].name));
+ }
+ return seriesArray;
+ },
+
setExportTooltip: function () {
if (this.get('isReady')) {
Em.run.next(this, function () {
@@ -819,13 +941,12 @@ App.ChartLinearTimeView = Ember.View.extend(App.ExportMetricsMixin, {
}.property('isReady', 'parentView.currentTimeIndex'),
exportGraphData: function (event) {
- this._super();
+ this.set('isExportMenuHidden', true);
var ajaxIndex = this.get('parentView.graph.ajaxIndex'),
- isCSV = !!event.context,
targetView = ajaxIndex ? this.get('parentView.graph') : self.get('parentView');
- targetView.exportGraphData({
- context: event.context
- });
+ targetView.exportGraphData({
+ context: event.context
+ });
}
}),
header: this.get('title'),
@@ -910,21 +1031,8 @@ App.ChartLinearTimeView = Ember.View.extend(App.ExportMetricsMixin, {
}.observes('parentView.parentView.currentTimeRangeIndex', 'parentView.currentTimeRangeIndex'),
timeUnitSeconds: function () {
return this.get('timeStates').objectAt(this.get('currentTimeIndex')).seconds;
- }.property('currentTimeIndex'),
-
- exportGraphData: function (event) {
- this._super();
- var ajaxIndex = this.get('ajaxIndex');
- App.ajax.send({
- name: ajaxIndex,
- data: $.extend(this.getDataForAjaxRequest(), {
- isCSV: !!event.context
- }),
- sender: this,
- success: 'exportGraphDataSuccessCallback',
- error: 'exportGraphDataErrorCallback'
- });
- }
+ }.property('currentTimeIndex')
+
});
/**
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/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 1ed20d2..62bf4d5 100644
--- a/ambari-web/app/views/common/widget/graph_widget_view.js
+++ b/ambari-web/app/views/common/widget/graph_widget_view.js
@@ -308,7 +308,7 @@ App.GraphWidgetView = Em.View.extend(App.WidgetMixin, App.ExportMetricsMixin, {
}),
exportGraphData: function (event) {
- this._super();
+ this.set('isExportMenuHidden', true);
var data,
isCSV = !!event.context,
fileType = isCSV ? 'csv' : 'json',
@@ -318,7 +318,7 @@ App.GraphWidgetView = Em.View.extend(App.WidgetMixin, App.ExportMetricsMixin, {
return Em.isArray(item.data);
});
if (hasData) {
- data = isCSV ? this.prepareCSV(metrics) : this.prepareJSON(metrics);
+ data = isCSV ? this.prepareCSV(metrics) : JSON.stringify(metrics, ['name', 'data'], 4);
fileUtils.downloadTextFile(data, fileType, fileName);
} else {
App.showAlertPopup(Em.I18n.t('graphs.noData.title'), Em.I18n.t('graphs.noData.tooltip.title'));
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/dashboard/cluster_metrics/cpu.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/dashboard/cluster_metrics/cpu.js b/ambari-web/app/views/main/dashboard/cluster_metrics/cpu.js
index 73b8f57..e959ca7 100644
--- a/ambari-web/app/views/main/dashboard/cluster_metrics/cpu.js
+++ b/ambari-web/app/views/main/dashboard/cluster_metrics/cpu.js
@@ -34,30 +34,37 @@ App.ChartClusterMetricsCPU = App.ChartLinearTimeView.extend({
title: Em.I18n.t('dashboard.clusterMetrics.cpu'),
yAxisFormatter: App.ChartLinearTimeView.PercentageFormatter,
isTimePagingDisable: false,
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var idle = null;
+ seriesTemplate: {
+ path: 'metrics.cpu'
+ },
- if (jsonData && jsonData.metrics && jsonData.metrics.cpu) {
- for (var name in jsonData.metrics.cpu) {
- var seriesData = jsonData.metrics.cpu[name];
+ getData: function (jsonData) {
+ var dataArray = [],
+ idle = null,
+ data = Em.get(jsonData, this.get('seriesTemplate.path'));
+ if (data) {
+ for (var name in data) {
+ var seriesData = data[name];
if (seriesData) {
- var s = this.transformData(seriesData, name);
- if (name.indexOf("Idle") > -1) {
+ var s = {
+ name: name,
+ data: seriesData
+ };
+ if (name.indexOf('Idle') > -1) {
//CPU idle metric should be the last in series array
idle = s;
continue;
}
- seriesArray.push(s);
+ dataArray.push(s);
}
}
if (idle) {
- seriesArray.push(idle);
+ dataArray.push(idle);
}
}
- return seriesArray;
+ return dataArray;
},
-
+
colorForSeries: function (series) {
if (Em.I18n.t('dashboard.clusterMetrics.cpu.displayNames.idle') == series.name){
return '#CFECEC';
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/dashboard/cluster_metrics/load.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/dashboard/cluster_metrics/load.js b/ambari-web/app/views/main/dashboard/cluster_metrics/load.js
index 7e06b2c..eb4f2ca 100644
--- a/ambari-web/app/views/main/dashboard/cluster_metrics/load.js
+++ b/ambari-web/app/views/main/dashboard/cluster_metrics/load.js
@@ -34,18 +34,7 @@ App.ChartClusterMetricsLoad = App.ChartLinearTimeView.extend({
isTimePagingDisable: false,
renderer: 'line',
title: Em.I18n.t('dashboard.clusterMetrics.load'),
-
- transformToSeries: function(jsonData){
- var seriesArray = [];
- if (jsonData && jsonData.metrics && jsonData.metrics.load) {
- for ( var name in jsonData.metrics.load) {
- var displayName = name;
- var seriesData = jsonData.metrics.load[name];
- if (seriesData) {
- seriesArray.push(this.transformData(seriesData, displayName));
- }
- }
- }
- return seriesArray;
+ seriesTemplate: {
+ path: 'metrics.load'
}
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/dashboard/cluster_metrics/memory.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/dashboard/cluster_metrics/memory.js b/ambari-web/app/views/main/dashboard/cluster_metrics/memory.js
index db1988e..3bcdfb3 100644
--- a/ambari-web/app/views/main/dashboard/cluster_metrics/memory.js
+++ b/ambari-web/app/views/main/dashboard/cluster_metrics/memory.js
@@ -35,22 +35,8 @@ App.ChartClusterMetricsMemory = App.ChartLinearTimeView.extend({
title: Em.I18n.t('dashboard.clusterMetrics.memory'),
yAxisFormatter: App.ChartLinearTimeView.BytesFormatter,
renderer: 'line',
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- if (jsonData && jsonData.metrics && jsonData.metrics.memory) {
- var KB = Math.pow(2, 10);
- for ( var name in jsonData.metrics.memory) {
- var displayName = name;
- var seriesData = jsonData.metrics.memory[name];
- if (seriesData) {
- var s = this.transformData(seriesData, displayName);
- for (var i = 0; i < s.data.length; i++) {
- s.data[i].y *= KB;
- }
- seriesArray.push(s);
- }
- }
- }
- return seriesArray;
+ seriesTemplate: {
+ path: 'metrics.memory',
+ factor: Math.pow(2, 10)
}
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/dashboard/cluster_metrics/network.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/dashboard/cluster_metrics/network.js b/ambari-web/app/views/main/dashboard/cluster_metrics/network.js
index 8c8fe77..3323bf1 100644
--- a/ambari-web/app/views/main/dashboard/cluster_metrics/network.js
+++ b/ambari-web/app/views/main/dashboard/cluster_metrics/network.js
@@ -36,18 +36,7 @@ App.ChartClusterMetricsNetwork = App.ChartLinearTimeView.extend({
title: Em.I18n.t('dashboard.clusterMetrics.network'),
yAxisFormatter: App.ChartLinearTimeView.BytesFormatter,
renderer: 'line',
-
- transformToSeries : function (jsonData) {
- var seriesArray = [];
- if (jsonData && jsonData.metrics && jsonData.metrics.network) {
- for ( var name in jsonData.metrics.network) {
- var displayName = name;
- var seriesData = jsonData.metrics.network[name];
- if (seriesData) {
- seriesArray.push(this.transformData(seriesData, displayName));
- }
- }
- }
- return seriesArray;
+ seriesTemplate: {
+ path: 'metrics.network'
}
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/dashboard/widgets/cluster_metrics_widget.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/dashboard/widgets/cluster_metrics_widget.js b/ambari-web/app/views/main/dashboard/widgets/cluster_metrics_widget.js
index a4dfd69..9704ae2 100644
--- a/ambari-web/app/views/main/dashboard/widgets/cluster_metrics_widget.js
+++ b/ambari-web/app/views/main/dashboard/widgets/cluster_metrics_widget.js
@@ -22,6 +22,10 @@ App.ClusterMetricsDashboardWidgetView = App.DashboardWidgetView.extend(App.Expor
templateName: require('templates/main/dashboard/widgets/cluster_metrics'),
+ exportTargetView: function () {
+ return this.get('childViews.lastObject');
+ }.property(),
+
didInsertElement: function () {
var self = this;
this.$().on('mouseleave', function () {
@@ -30,20 +34,6 @@ App.ClusterMetricsDashboardWidgetView = App.DashboardWidgetView.extend(App.Expor
App.tooltip(this.$('.corner-icon > .icon-save'), {
title: Em.I18n.t('common.export')
});
- },
-
- exportGraphData: function (event) {
- this._super();
- var ajaxIndex = this.get('childViews.lastObject.ajaxIndex');
- App.ajax.send({
- name: ajaxIndex,
- data: $.extend(this.get('childViews.lastObject').getDataForAjaxRequest(), {
- isCSV: !!event.context
- }),
- sender: this,
- success: 'exportGraphDataSuccessCallback',
- error: 'exportGraphDataErrorCallback'
- });
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/host/metrics/cpu.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/host/metrics/cpu.js b/ambari-web/app/views/main/host/metrics/cpu.js
index 45cd4d5..8cbdb15 100644
--- a/ambari-web/app/views/main/host/metrics/cpu.js
+++ b/ambari-web/app/views/main/host/metrics/cpu.js
@@ -38,48 +38,45 @@ App.ChartHostMetricsCPU = App.ChartLinearTimeView.extend({
fields: ['metrics/cpu/cpu_user', 'metrics/cpu/cpu_wio', 'metrics/cpu/cpu_nice', 'metrics/cpu/cpu_aidle', 'metrics/cpu/cpu_system', 'metrics/cpu/cpu_idle']
},
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- if (jsonData && jsonData.metrics && jsonData.metrics.cpu) {
- var cpu_idle;
- for ( var name in jsonData.metrics.cpu) {
- var displayName;
- var seriesData = jsonData.metrics.cpu[name];
- switch (name) {
- case "cpu_wio":
- displayName = Em.I18n.t('hosts.host.metrics.cpu.displayNames.cpu_wio');
- break;
- case "cpu_idle":
- displayName = Em.I18n.t('hosts.host.metrics.cpu.displayNames.cpu_idle');
- break;
- case "cpu_nice":
- displayName = Em.I18n.t('hosts.host.metrics.cpu.displayNames.cpu_nice');
- break;
- case "cpu_aidle":
- displayName = Em.I18n.t('hosts.host.metrics.cpu.displayNames.cpu_aidle');
- break;
- case "cpu_system":
- displayName = Em.I18n.t('hosts.host.metrics.cpu.displayNames.cpu_system');
- break;
- case "cpu_user":
- displayName = Em.I18n.t('hosts.host.metrics.cpu.displayNames.cpu_user');
- break;
- default:
- break;
- }
+ seriesTemplate: {
+ path: 'metrics.cpu',
+ displayName: function (name) {
+ var displayNameMap = {
+ cpu_wio: Em.I18n.t('hosts.host.metrics.cpu.displayNames.cpu_wio'),
+ cpu_idle: Em.I18n.t('hosts.host.metrics.cpu.displayNames.cpu_idle'),
+ cpu_nice: Em.I18n.t('hosts.host.metrics.cpu.displayNames.cpu_nice'),
+ cpu_aidle: Em.I18n.t('hosts.host.metrics.cpu.displayNames.cpu_aidle'),
+ cpu_system: Em.I18n.t('hosts.host.metrics.cpu.displayNames.cpu_system'),
+ cpu_user: Em.I18n.t('hosts.host.metrics.cpu.displayNames.cpu_user')
+ };
+ return displayNameMap[name];
+ }
+ },
+
+ getData: function (jsonData) {
+ var dataArray = [],
+ cpu_idle,
+ template = this.get('seriesTemplate'),
+ data = Em.get(jsonData, template.path);
+ if (data) {
+ for (var name in data) {
+ var displayName = template.displayName(name),
+ seriesData = data[name];
if (seriesData) {
- var s = this.transformData(seriesData, displayName);
- if (Em.I18n.t('hosts.host.metrics.cpu.displayNames.cpu_idle') == s.name) {
+ var s = {
+ name: displayName,
+ data: seriesData
+ };
+ if (Em.I18n.t('hosts.host.metrics.cpu.displayNames.cpu_idle') == displayName) {
cpu_idle = s;
- }
- else {
- seriesArray.push(s);
+ } else {
+ dataArray.push(s);
}
}
}
- seriesArray.push(cpu_idle);
+ dataArray.push(cpu_idle);
}
- return seriesArray;
+ return dataArray;
},
colorForSeries: function (series) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/host/metrics/disk.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/host/metrics/disk.js b/ambari-web/app/views/main/host/metrics/disk.js
index 447fbd8..d05b65f 100644
--- a/ambari-web/app/views/main/host/metrics/disk.js
+++ b/ambari-web/app/views/main/host/metrics/disk.js
@@ -39,35 +39,22 @@ App.ChartHostMetricsDisk = App.ChartLinearTimeView.extend({
fields: ['metrics/disk/disk_total', 'metrics/disk/disk_free']
},
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var GB = Math.pow(2, 30);
- if (jsonData && jsonData.metrics && jsonData.metrics.disk) {
- if(jsonData.metrics.part_max_used){
- jsonData.metrics.disk.part_max_used = jsonData.metrics.part_max_used;
- }
- for ( var name in jsonData.metrics.disk) {
- var displayName;
- var seriesData = jsonData.metrics.disk[name];
- switch (name) {
- case "disk_total":
- displayName = Em.I18n.t('hosts.host.metrics.disk.displayNames.disk_total');
- break;
- case "disk_free":
- displayName = Em.I18n.t('hosts.host.metrics.disk.displayNames.disk_free');
- break;
- default:
- break;
- }
- if (seriesData) {
- var s = this.transformData(seriesData, displayName);
- for (var i = 0; i < s.data.length; i++) {
- s.data[i].y *= GB;
- }
- seriesArray.push(s);
- }
- }
+ seriesTemplate: {
+ path: 'metrics.disk',
+ displayName: function (name) {
+ var displayNameMap = {
+ disk_total: Em.I18n.t('hosts.host.metrics.disk.displayNames.disk_total'),
+ disk_free: Em.I18n.t('hosts.host.metrics.disk.displayNames.disk_free')
+ };
+ return displayNameMap[name];
+ },
+ factor: Math.pow(2, 30)
+ },
+
+ getData: function (jsonData) {
+ if (jsonData.metrics.part_max_used) {
+ jsonData.metrics.disk.part_max_used = jsonData.metrics.part_max_used;
}
- return seriesArray;
+ return this._super(jsonData);
}
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/host/metrics/load.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/host/metrics/load.js b/ambari-web/app/views/main/host/metrics/load.js
index d5926fd..7a8df8c 100644
--- a/ambari-web/app/views/main/host/metrics/load.js
+++ b/ambari-web/app/views/main/host/metrics/load.js
@@ -38,30 +38,15 @@ App.ChartHostMetricsLoad = App.ChartLinearTimeView.extend({
fields: ['metrics/load/load_fifteen', 'metrics/load/load_one', 'metrics/load/load_five']
},
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- if (jsonData && jsonData.metrics && jsonData.metrics.load) {
- for ( var name in jsonData.metrics.load) {
- var displayName;
- var seriesData = jsonData.metrics.load[name];
- switch (name) {
- case "load_fifteen":
- displayName = Em.I18n.t('hosts.host.metrics.load.displayNames.load_fifteen');
- break;
- case "load_one":
- displayName = Em.I18n.t('hosts.host.metrics.load.displayNames.load_one');
- break;
- case "load_five":
- displayName = Em.I18n.t('hosts.host.metrics.load.displayNames.load_five');
- break;
- default:
- break;
- }
- if (seriesData) {
- seriesArray.push(this.transformData(seriesData, displayName));
- }
- }
+ seriesTemplate: {
+ path: 'metrics.load',
+ displayName: function (name) {
+ var displayNameMap = {
+ load_fifteen: Em.I18n.t('hosts.host.metrics.load.displayNames.load_fifteen'),
+ load_one: Em.I18n.t('hosts.host.metrics.load.displayNames.load_one'),
+ load_five: Em.I18n.t('hosts.host.metrics.load.displayNames.load_five')
+ };
+ return displayNameMap[name]
}
- return seriesArray;
}
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/host/metrics/memory.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/host/metrics/memory.js b/ambari-web/app/views/main/host/metrics/memory.js
index 200775e..93e6be9 100644
--- a/ambari-web/app/views/main/host/metrics/memory.js
+++ b/ambari-web/app/views/main/host/metrics/memory.js
@@ -45,41 +45,18 @@ App.ChartHostMetricsMemory = App.ChartLinearTimeView.extend({
]
},
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var KB = Math.pow(2, 10);
- if (jsonData && jsonData.metrics && jsonData.metrics.memory) {
- for ( var name in jsonData.metrics.memory) {
- var displayName;
- var seriesData = jsonData.metrics.memory[name];
- switch (name) {
- case "mem_shared":
- displayName = Em.I18n.t('hosts.host.metrics.memory.displayNames.mem_shared');
- break;
- case "swap_free":
- displayName = Em.I18n.t('hosts.host.metrics.memory.displayNames.swap_free');
- break;
- case "mem_buffers":
- displayName = Em.I18n.t('hosts.host.metrics.memory.displayNames.mem_buffers');
- break;
- case "mem_free":
- displayName = Em.I18n.t('hosts.host.metrics.memory.displayNames.mem_free');
- break;
- case "mem_cached":
- displayName = Em.I18n.t('hosts.host.metrics.memory.displayNames.mem_cached');
- break;
- default:
- break;
- }
- if (seriesData) {
- var s = this.transformData(seriesData, displayName);
- for (var i = 0; i < s.data.length; i++) {
- s.data[i].y *= KB;
- }
- seriesArray.push(s);
- }
- }
- }
- return seriesArray;
+ seriesTemplate: {
+ path: 'metrics.memory',
+ displayName: function (name) {
+ var displayNameMap = {
+ mem_shared: Em.I18n.t('hosts.host.metrics.memory.displayNames.mem_shared'),
+ swap_free: Em.I18n.t('hosts.host.metrics.memory.displayNames.swap_free'),
+ mem_buffers: Em.I18n.t('hosts.host.metrics.memory.displayNames.mem_buffers'),
+ mem_free: Em.I18n.t('hosts.host.metrics.memory.displayNames.mem_free'),
+ mem_cached: Em.I18n.t('hosts.host.metrics.memory.displayNames.mem_cached')
+ };
+ return displayNameMap[name];
+ },
+ factor: Math.pow(2, 10)
}
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/host/metrics/network.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/host/metrics/network.js b/ambari-web/app/views/main/host/metrics/network.js
index 5f134a2..7b22481 100644
--- a/ambari-web/app/views/main/host/metrics/network.js
+++ b/ambari-web/app/views/main/host/metrics/network.js
@@ -44,33 +44,16 @@ App.ChartHostMetricsNetwork = App.ChartLinearTimeView.extend({
]
},
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- if (jsonData && jsonData.metrics && jsonData.metrics.network) {
- for ( var name in jsonData.metrics.network) {
- var displayName;
- var seriesData = jsonData.metrics.network[name];
- switch (name) {
- case "pkts_out":
- displayName = Em.I18n.t('hosts.host.metrics.network.displayNames.pkts_out');
- break;
- case "bytes_in":
- displayName = Em.I18n.t('hosts.host.metrics.network.displayNames.bytes_in');
- break;
- case "bytes_out":
- displayName = Em.I18n.t('hosts.host.metrics.network.displayNames.bytes_out');
- break;
- case "pkts_in":
- displayName = Em.I18n.t('hosts.host.metrics.network.displayNames.pkts_in');
- break;
- default:
- break;
- }
- if (seriesData) {
- seriesArray.push(this.transformData(seriesData, displayName));
- }
- }
+ seriesTemplate: {
+ path: 'metrics.network',
+ displayName: function (name) {
+ var displayNameMap = {
+ pkts_out: Em.I18n.t('hosts.host.metrics.network.displayNames.pkts_out'),
+ bytes_in: Em.I18n.t('hosts.host.metrics.network.displayNames.bytes_in'),
+ bytes_out: Em.I18n.t('hosts.host.metrics.network.displayNames.bytes_out'),
+ pkts_in: Em.I18n.t('hosts.host.metrics.network.displayNames.pkts_in')
+ };
+ return displayNameMap[name];
}
- return seriesArray;
}
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/host/metrics/processes.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/host/metrics/processes.js b/ambari-web/app/views/main/host/metrics/processes.js
index 5358e9e..4692789 100644
--- a/ambari-web/app/views/main/host/metrics/processes.js
+++ b/ambari-web/app/views/main/host/metrics/processes.js
@@ -38,27 +38,14 @@ App.ChartHostMetricsProcesses = App.ChartLinearTimeView.extend({
fields: ['metrics/process/proc_total', 'metrics/process/proc_run']
},
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- if (jsonData && jsonData.metrics && jsonData.metrics.process) {
- for ( var name in jsonData.metrics.process) {
- var displayName;
- var seriesData = jsonData.metrics.process[name];
- switch (name) {
- case "proc_total":
- displayName = Em.I18n.t('hosts.host.metrics.processes.displayNames.proc_total');
- break;
- case "proc_run":
- displayName = Em.I18n.t('hosts.host.metrics.processes.displayNames.proc_run');
- break;
- default:
- break;
- }
- if (seriesData) {
- seriesArray.push(this.transformData(seriesData, displayName));
- }
- }
+ seriesTemplate: {
+ path: 'metrics.process',
+ displayName: function (name) {
+ var displayNameMap = {
+ proc_total: Em.I18n.t('hosts.host.metrics.processes.displayNames.proc_total'),
+ proc_run: Em.I18n.t('hosts.host.metrics.processes.displayNames.proc_run')
+ };
+ return displayNameMap[name];
}
- return seriesArray;
}
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/ambari_metrics/master_average_load.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/ambari_metrics/master_average_load.js b/ambari-web/app/views/main/service/info/metrics/ambari_metrics/master_average_load.js
index f381416..67b1b19 100644
--- a/ambari-web/app/views/main/service/info/metrics/ambari_metrics/master_average_load.js
+++ b/ambari-web/app/views/main/service/info/metrics/ambari_metrics/master_average_load.js
@@ -36,24 +36,13 @@ App.ChartServiceMetricsAMS_MasterAverageLoad = App.ChartLinearTimeView.extend({
fields: ['metrics/hbase/master/AverageLoad']
},
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- if (jsonData && jsonData.metrics && jsonData.metrics.hbase && jsonData.metrics.hbase.master) {
- for ( var name in jsonData.metrics.hbase.master) {
- var displayName;
- var seriesData = jsonData.metrics.hbase.master[name];
- switch (name) {
- case "AverageLoad":
- displayName = Em.I18n.t('services.service.info.metrics.ambariMetrics.master.displayNames.averageLoad');
- break;
- default:
- break;
- }
- if (seriesData) {
- seriesArray.push(this.transformData(seriesData, displayName));
- }
- }
+ seriesTemplate: {
+ path: 'metrics.hbase.master',
+ displayName: function (name) {
+ var displayNameMap = {
+ AverageLoad: Em.I18n.t('services.service.info.metrics.ambariMetrics.master.displayNames.averageLoad')
+ };
+ return displayNameMap[name];
}
- return seriesArray;
}
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_base.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_base.js b/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_base.js
index b28bd28..771b5e2 100644
--- a/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_base.js
+++ b/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_base.js
@@ -29,21 +29,28 @@ var App = require('app');
App.ChartServiceMetricsAMS_RegionServerBaseView = App.ChartLinearTimeView.extend({
displayName: '',
regionServerName: '',
+ seriesTemplate: {
+ path: 'metrics.hbase.regionserver'
+ },
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- if (jsonData && jsonData.metrics && jsonData.metrics.hbase && jsonData.metrics.hbase.regionserver) {
- for (var name in jsonData.metrics.hbase.regionserver) {
- var displayName,
- seriesData = jsonData.metrics.hbase.regionserver[name];
+ getData: function (jsonData) {
+ var dataArray = [],
+ template = this.get('seriesTemplate'),
+ data = Em.get(jsonData, template.path);
+ if (data) {
+ for (var name in data) {
if (name === this.get('regionServerName')) {
- displayName = this.get('displayName');
- if (seriesData) {
- seriesArray.push(this.transformData(seriesData, displayName));
+ var displayName = this.get('displayName'),
+ currentData = data[name];
+ if (currentData) {
+ dataArray.push({
+ name: displayName,
+ data: currentData
+ });
}
}
}
}
- return seriesArray;
+ return dataArray;
}
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/flume/channel_fill_pct.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/flume/channel_fill_pct.js b/ambari-web/app/views/main/service/info/metrics/flume/channel_fill_pct.js
index c057636..524ec93 100644
--- a/ambari-web/app/views/main/service/info/metrics/flume/channel_fill_pct.js
+++ b/ambari-web/app/views/main/service/info/metrics/flume/channel_fill_pct.js
@@ -33,27 +33,15 @@ App.ChartServiceMetricsFlume_ChannelFillPercent = App.ChartLinearTimeView.extend
ajaxIndex: 'service.metrics.flume.channel_fill_percent',
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var self = this;
- if (jsonData && jsonData.host_components) {
- jsonData.host_components.forEach(function (hc) {
- var hostName = hc.HostRoles.host_name;
- var host = App.Host.find(hostName);
- if (host && host.get('publicHostName')) {
- hostName = host.get('publicHostName');
- }
- if (hc.metrics && hc.metrics.flume && hc.metrics.flume.flume && hc.metrics.flume.flume.CHANNEL) {
- for ( var cname in hc.metrics.flume.flume.CHANNEL) {
- var seriesName = Em.I18n.t('services.service.info.metrics.flume.channelName').format(cname + " (" + hostName + ")");
- var seriesData = hc.metrics.flume.flume.CHANNEL[cname]['ChannelFillPercentage'];
- if (seriesData) {
- seriesArray.push(self.transformData(seriesData, seriesName));
- }
- }
- }
- });
- }
- return seriesArray;
+ seriesTemplate: {
+ path: 'metrics.flume.flume.CHANNEL',
+ displayName: function (name, hostName) {
+ return Em.I18n.t('services.service.info.metrics.flume.channelName').format(name + ' (' + hostName + ')');
+ },
+ flumePropertyName: 'ChannelFillPercentage'
+ },
+
+ getData: function (jsonData) {
+ return this.getFlumeData(jsonData);
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/flume/channel_size.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/flume/channel_size.js b/ambari-web/app/views/main/service/info/metrics/flume/channel_size.js
index 665b04a..71a7bf3 100644
--- a/ambari-web/app/views/main/service/info/metrics/flume/channel_size.js
+++ b/ambari-web/app/views/main/service/info/metrics/flume/channel_size.js
@@ -32,27 +32,15 @@ App.ChartServiceMetricsFlume_ChannelSize = App.ChartLinearTimeView.extend({
ajaxIndex: 'service.metrics.flume.channel_size',
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var self = this;
- if (jsonData && jsonData.host_components) {
- jsonData.host_components.forEach(function (hc) {
- var hostName = hc.HostRoles.host_name;
- var host = App.Host.find(hostName);
- if (host && host.get('publicHostName')) {
- hostName = host.get('publicHostName');
- }
- if (hc.metrics && hc.metrics.flume && hc.metrics.flume.flume && hc.metrics.flume.flume.CHANNEL) {
- for ( var cname in hc.metrics.flume.flume.CHANNEL) {
- var seriesName = Em.I18n.t('services.service.info.metrics.flume.channelName').format(cname + " (" + hostName + ")");
- var seriesData = hc.metrics.flume.flume.CHANNEL[cname]['ChannelSize'];
- if (seriesData) {
- seriesArray.push(self.transformData(seriesData, seriesName));
- }
- }
- }
- });
- }
- return seriesArray;
+ seriesTemplate: {
+ path: 'metrics.flume.flume.CHANNEL',
+ displayName: function (name, hostName) {
+ return Em.I18n.t('services.service.info.metrics.flume.channelName').format(name + ' (' + hostName + ')');
+ },
+ flumePropertyName: 'ChannelSize'
+ },
+
+ getData: function (jsonData) {
+ return this.getFlumeData(jsonData);
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/flume/channel_size_mma.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/flume/channel_size_mma.js b/ambari-web/app/views/main/service/info/metrics/flume/channel_size_mma.js
index d4c1fe0..a5041bb 100644
--- a/ambari-web/app/views/main/service/info/metrics/flume/channel_size_mma.js
+++ b/ambari-web/app/views/main/service/info/metrics/flume/channel_size_mma.js
@@ -34,21 +34,11 @@ App.ChartServiceMetricsFlume_ChannelSizeMMA = App.ChartLinearTimeView.extend({
yAxisFormatter: App.ChartLinearTimeView.CreateRateFormatter('',
App.ChartLinearTimeView.DefaultFormatter),
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var self = this;
- var data = Em.get(jsonData, 'metrics.flume.flume.CHANNEL.ChannelSize.rate');
-
- if (data) {
- for (var cname in data) {
- var seriesName = Em.I18n.t('services.service.info.metrics.flume.channelType').format(cname);
- var seriesData = data[cname];
- if (seriesData) {
- seriesArray.push(self.transformData(seriesData, seriesName));
- }
- }
+ seriesTemplate: {
+ path: 'metrics.flume.flume.CHANNEL.ChannelSize.rate',
+ displayName: function (name) {
+ return Em.I18n.t('services.service.info.metrics.flume.channelType').format(name);
}
- return seriesArray;
},
colorForSeries: function (series) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/flume/channel_sum.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/flume/channel_sum.js b/ambari-web/app/views/main/service/info/metrics/flume/channel_sum.js
index b102575..c978132 100644
--- a/ambari-web/app/views/main/service/info/metrics/flume/channel_sum.js
+++ b/ambari-web/app/views/main/service/info/metrics/flume/channel_sum.js
@@ -33,14 +33,10 @@ App.ChartServiceMetricsFlume_ChannelSizeSum = App.ChartLinearTimeView.extend({
ajaxIndex: 'service.metrics.flume.channel_size_for_all.sum',
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var self = this;
- var seriesData = Em.get(jsonData, 'metrics.flume.flume.CHANNEL.ChannelSize.rate.sum');
- if (seriesData) {
- var seriesName = Em.I18n.t('services.service.info.metrics.flume.channelSizeSum');
- seriesArray.push(self.transformData(seriesData, seriesName));
+ seriesTemplate: {
+ path: 'metrics.flume.flume.CHANNEL.ChannelSize.rate',
+ displayName: function () {
+ return Em.I18n.t('services.service.info.metrics.flume.channelSizeSum');
}
- return seriesArray;
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/flume/cpu_user.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/flume/cpu_user.js b/ambari-web/app/views/main/service/info/metrics/flume/cpu_user.js
index e66b849..c5c08d9 100644
--- a/ambari-web/app/views/main/service/info/metrics/flume/cpu_user.js
+++ b/ambari-web/app/views/main/service/info/metrics/flume/cpu_user.js
@@ -34,25 +34,14 @@ App.ChartServiceMetricsFlume_CPUUser = App.ChartLinearTimeView.extend({
ajaxIndex: 'service.metrics.flume.cpu_user',
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var self = this;
- if (jsonData && jsonData.host_components) {
- jsonData.host_components.forEach(function (hc) {
- var hostName = hc.HostRoles.host_name;
- var host = App.Host.find(hostName);
- if (host && host.get('publicHostName')) {
- hostName = host.get('publicHostName');
- }
- if (hc.metrics && hc.metrics.cpu && hc.metrics.cpu.cpu_user) {
- var seriesName = Em.I18n.t('services.service.info.metrics.flume.hostName').format(hostName);
- var seriesData = hc.metrics.cpu.cpu_user;
- if (seriesData) {
- seriesArray.push(self.transformData(seriesData, seriesName));
- }
- }
- });
+ seriesTemplate: {
+ path: 'metrics.cpu.cpu_user',
+ displayName: function (name, hostName) {
+ return Em.I18n.t('services.service.info.metrics.flume.hostName').format(hostName);
}
- return seriesArray;
+ },
+
+ getData: function (jsonData) {
+ return this.getFlumeData(jsonData);
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/flume/flume_incoming_mma.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/flume/flume_incoming_mma.js b/ambari-web/app/views/main/service/info/metrics/flume/flume_incoming_mma.js
index 48ee7f6..9d47a81 100644
--- a/ambari-web/app/views/main/service/info/metrics/flume/flume_incoming_mma.js
+++ b/ambari-web/app/views/main/service/info/metrics/flume/flume_incoming_mma.js
@@ -34,21 +34,11 @@ App.ChartServiceMetricsFlume_IncommingMMA = App.ChartLinearTimeView.extend({
yAxisFormatter: App.ChartLinearTimeView.CreateRateFormatter('',
App.ChartLinearTimeView.DefaultFormatter),
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var self = this;
- var data = Em.get(jsonData, 'metrics.flume.flume.CHANNEL.EventPutSuccessCount.rate');
-
- if (data) {
- for (var cname in data) {
- var seriesName = Em.I18n.t('services.service.info.metrics.flume.incoming_mma').format(cname);
- var seriesData = data[cname];
- if (seriesData) {
- seriesArray.push(self.transformData(seriesData, seriesName));
- }
- }
+ seriesTemplate: {
+ path: 'metrics.flume.flume.CHANNEL.EventPutSuccessCount.rate',
+ displayName: function (name) {
+ return Em.I18n.t('services.service.info.metrics.flume.incoming_mma').format(name);
}
- return seriesArray;
},
colorForSeries: function (series) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/flume/flume_incoming_sum.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/flume/flume_incoming_sum.js b/ambari-web/app/views/main/service/info/metrics/flume/flume_incoming_sum.js
index 51a1287..9718d27 100644
--- a/ambari-web/app/views/main/service/info/metrics/flume/flume_incoming_sum.js
+++ b/ambari-web/app/views/main/service/info/metrics/flume/flume_incoming_sum.js
@@ -31,14 +31,10 @@ App.ChartServiceMetricsFlume_IncommingSum = App.ChartLinearTimeView.extend({
ajaxIndex: 'service.metrics.flume.incoming_event_put_successCount.sum',
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var self = this;
- var seriesData = Em.get(jsonData, 'metrics.flume.flume.CHANNEL.EventPutSuccessCount.rate.sum');
- if (seriesData) {
- var seriesName = Em.I18n.t('services.service.info.metrics.flume.incoming.sum');
- seriesArray.push(self.transformData(seriesData, seriesName));
+ seriesTemplate: {
+ path: 'metrics.flume.flume.CHANNEL.EventPutSuccessCount.rate',
+ displayName: function () {
+ return Em.I18n.t('services.service.info.metrics.flume.incoming.sum');
}
- return seriesArray;
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/flume/flume_metric_graph.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/flume/flume_metric_graph.js b/ambari-web/app/views/main/service/info/metrics/flume/flume_metric_graph.js
index f138f40..43a9b51 100644
--- a/ambari-web/app/views/main/service/info/metrics/flume/flume_metric_graph.js
+++ b/ambari-web/app/views/main/service/info/metrics/flume/flume_metric_graph.js
@@ -59,20 +59,25 @@ App.ChartServiceFlumeMetricGraph = App.ChartLinearTimeView.extend({
return data;
},
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var self = this;
- if (jsonData && jsonData.metrics && jsonData.metrics.flume && jsonData.metrics.flume.flume &&
- jsonData.metrics.flume.flume[this.get('metricType')]) {
- var metricTypeData = jsonData.metrics.flume.flume[this.get('metricType')];
- for ( var componentName in metricTypeData) {
- var seriesName = componentName;
- var seriesData = metricTypeData[componentName][this.get('metricName')];
+ seriesTemplate: {
+ path: 'metrics.flume.flume'
+ },
+
+ getData: function (jsonData) {
+
+ var dataArray = [],
+ data = Em.get(jsonData, this.get('seriesTemplate.path') + '.' + this.get('metricType'));
+ if (data) {
+ for (var componentName in data) {
+ var seriesData = data[componentName][this.get('metricName')];
if (seriesData) {
- seriesArray.push(self.transformData(seriesData, seriesName));
+ dataArray.push({
+ name: componentName,
+ data: seriesData
+ });
}
}
}
- return seriesArray;
+ return dataArray;
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/flume/flume_outgoing_mma.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/flume/flume_outgoing_mma.js b/ambari-web/app/views/main/service/info/metrics/flume/flume_outgoing_mma.js
index ea1b947..1b07536 100644
--- a/ambari-web/app/views/main/service/info/metrics/flume/flume_outgoing_mma.js
+++ b/ambari-web/app/views/main/service/info/metrics/flume/flume_outgoing_mma.js
@@ -34,21 +34,11 @@ App.ChartServiceMetricsFlume_OutgoingMMA = App.ChartLinearTimeView.extend({
yAxisFormatter: App.ChartLinearTimeView.CreateRateFormatter('',
App.ChartLinearTimeView.DefaultFormatter),
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var self = this;
- var data = Em.get(jsonData, 'metrics.flume.flume.CHANNEL.EventTakeSuccessCount.rate');
-
- if (data) {
- for (var cname in data) {
- var seriesName = Em.I18n.t('services.service.info.metrics.flume.outgoing_mma').format(cname);
- var seriesData = data[cname];
- if (seriesData) {
- seriesArray.push(self.transformData(seriesData, seriesName));
- }
- }
+ seriesTemplate: {
+ path: 'metrics.flume.flume.CHANNEL.EventTakeSuccessCount.rate',
+ displayName: function (name) {
+ return Em.I18n.t('services.service.info.metrics.flume.outgoing_mma').format(name);
}
- return seriesArray;
},
colorForSeries: function (series) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/flume/flume_outgoing_sum.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/flume/flume_outgoing_sum.js b/ambari-web/app/views/main/service/info/metrics/flume/flume_outgoing_sum.js
index 8862f8c..3ce6b6e 100644
--- a/ambari-web/app/views/main/service/info/metrics/flume/flume_outgoing_sum.js
+++ b/ambari-web/app/views/main/service/info/metrics/flume/flume_outgoing_sum.js
@@ -31,14 +31,10 @@ App.ChartServiceMetricsFlume_OutgoingSum = App.ChartLinearTimeView.extend({
ajaxIndex: 'service.metrics.flume.outgoing_event_take_success_count.sum',
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var self = this;
- var seriesData = Em.get(jsonData, 'metrics.flume.flume.CHANNEL.EventTakeSuccessCount.rate.sum');
- if (seriesData) {
- var seriesName = Em.I18n.t('services.service.info.metrics.flume.outgoing.sum');
- seriesArray.push(self.transformData(seriesData, seriesName));
+ seriesTemplate: {
+ path: 'metrics.flume.flume.CHANNEL.EventTakeSuccessCount.rate',
+ displayName: function () {
+ return Em.I18n.t('services.service.info.metrics.flume.outgoing.sum');
}
- return seriesArray;
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/flume/gc.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/flume/gc.js b/ambari-web/app/views/main/service/info/metrics/flume/gc.js
index 7842c81..ce2f035 100644
--- a/ambari-web/app/views/main/service/info/metrics/flume/gc.js
+++ b/ambari-web/app/views/main/service/info/metrics/flume/gc.js
@@ -33,25 +33,14 @@ App.ChartServiceMetricsFlume_GarbageCollection = App.ChartLinearTimeView.extend(
ajaxIndex: 'service.metrics.flume.gc',
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var self = this;
- if (jsonData && jsonData.host_components) {
- jsonData.host_components.forEach(function (hc) {
- var hostName = hc.HostRoles.host_name;
- var host = App.Host.find(hostName);
- if (host && host.get('publicHostName')) {
- hostName = host.get('publicHostName');
- }
- if (hc.metrics && hc.metrics.jvm && hc.metrics.jvm.gcTimeMillis) {
- var seriesName = Em.I18n.t('services.service.info.metrics.flume.hostName').format(hostName);
- var seriesData = hc.metrics.jvm.gcTimeMillis;
- if (seriesData) {
- seriesArray.push(self.transformData(seriesData, seriesName));
- }
- }
- });
+ seriesTemplate: {
+ path: 'metrics.jvm.gcTimeMillis',
+ displayName: function (name, hostName) {
+ return Em.I18n.t('services.service.info.metrics.flume.hostName').format(hostName);
}
- return seriesArray;
+ },
+
+ getData: function (jsonData) {
+ return this.getFlumeData(jsonData);
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/flume/jvm_heap.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/flume/jvm_heap.js b/ambari-web/app/views/main/service/info/metrics/flume/jvm_heap.js
index 0dc1cc4..10acf19 100644
--- a/ambari-web/app/views/main/service/info/metrics/flume/jvm_heap.js
+++ b/ambari-web/app/views/main/service/info/metrics/flume/jvm_heap.js
@@ -34,30 +34,15 @@ App.ChartServiceMetricsFlume_JVMHeapUsed = App.ChartLinearTimeView.extend({
ajaxIndex: 'service.metrics.flume.jvm_heap_used',
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var self = this;
- var MB = Math.pow(2, 20);
- if (jsonData && jsonData.host_components) {
- jsonData.host_components.forEach(function (hc) {
- var hostName = hc.HostRoles.host_name;
- var host = App.Host.find(hostName);
- if (host && host.get('publicHostName')) {
- hostName = host.get('publicHostName');
- }
- if (hc.metrics && hc.metrics.jvm && hc.metrics.jvm.memHeapUsedM) {
- var seriesName = Em.I18n.t('services.service.info.metrics.flume.hostName').format(hostName);
- var seriesData = hc.metrics.jvm.memHeapUsedM;
- if (seriesData) {
- var s = self.transformData(seriesData, seriesName);
- for (var i = 0; i < s.data.length; i++) {
- s.data[i].y *= MB;
- }
- seriesArray.push(s);
- }
- }
- });
- }
- return seriesArray;
+ seriesTemplate: {
+ path: 'metrics.jvm.memHeapUsedM',
+ displayName: function (name, hostName) {
+ return Em.I18n.t('services.service.info.metrics.flume.hostName').format(hostName);
+ },
+ factor: Math.pow(2, 20)
+ },
+
+ getData: function (jsonData) {
+ return this.getFlumeData(jsonData);
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/flume/jvm_threads_runnable.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/flume/jvm_threads_runnable.js b/ambari-web/app/views/main/service/info/metrics/flume/jvm_threads_runnable.js
index 5f6840f..b2cfb06 100644
--- a/ambari-web/app/views/main/service/info/metrics/flume/jvm_threads_runnable.js
+++ b/ambari-web/app/views/main/service/info/metrics/flume/jvm_threads_runnable.js
@@ -33,27 +33,14 @@ App.ChartServiceMetricsFlume_JVMThreadsRunnable = App.ChartLinearTimeView.extend
ajaxIndex: 'service.metrics.flume.jvm_threads_runnable',
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var self = this;
- var MB = Math.pow(2, 20);
- if (jsonData && jsonData.host_components) {
- jsonData.host_components.forEach(function (hc) {
- var hostName = hc.HostRoles.host_name;
- var host = App.Host.find(hostName);
- if (host && host.get('publicHostName')) {
- hostName = host.get('publicHostName');
- }
- if (hc.metrics && hc.metrics.jvm && hc.metrics.jvm.threadsRunnable) {
- var seriesName = Em.I18n.t('services.service.info.metrics.flume.hostName').format(hostName);
- var seriesData = hc.metrics.jvm.threadsRunnable;
- if (seriesData) {
- var s = self.transformData(seriesData, seriesName);
- seriesArray.push(s);
- }
- }
- });
+ seriesTemplate: {
+ path: 'metrics.jvm.threadsRunnable',
+ displayName: function (name, hostName) {
+ return Em.I18n.t('services.service.info.metrics.flume.hostName').format(hostName);
}
- return seriesArray;
+ },
+
+ getData: function (jsonData) {
+ return this.getFlumeData(jsonData);
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/flume/sink_connection_failed.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/flume/sink_connection_failed.js b/ambari-web/app/views/main/service/info/metrics/flume/sink_connection_failed.js
index 1fdff4e..469a00c 100644
--- a/ambari-web/app/views/main/service/info/metrics/flume/sink_connection_failed.js
+++ b/ambari-web/app/views/main/service/info/metrics/flume/sink_connection_failed.js
@@ -32,27 +32,15 @@ App.ChartServiceMetricsFlume_SinkConnectionFailedCount = App.ChartLinearTimeView
ajaxIndex: 'service.metrics.flume.sink_connection_failed',
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var self = this;
- if (jsonData && jsonData.host_components) {
- jsonData.host_components.forEach(function (hc) {
- var hostName = hc.HostRoles.host_name;
- var host = App.Host.find(hostName);
- if (host && host.get('publicHostName')) {
- hostName = host.get('publicHostName');
- }
- if (hc.metrics && hc.metrics.flume && hc.metrics.flume.flume && hc.metrics.flume.flume.SINK) {
- for ( var cname in hc.metrics.flume.flume.SINK) {
- var seriesName = Em.I18n.t('services.service.info.metrics.flume.sinkName').format(cname + " (" + hostName + ")");
- var seriesData = hc.metrics.flume.flume.SINK[cname]['ConnectionFailedCount'];
- if (seriesData) {
- seriesArray.push(self.transformData(seriesData, seriesName));
- }
- }
- }
- });
- }
- return seriesArray;
+ seriesTemplate: {
+ path: 'metrics.flume.flume.SINK',
+ displayName: function (name, hostName) {
+ return Em.I18n.t('services.service.info.metrics.flume.sinkName').format(name + ' (' + hostName + ')');
+ },
+ flumePropertyName: 'ConnectionFailedCount'
+ },
+
+ getData: function (jsonData) {
+ return this.getFlumeData(jsonData);
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/flume/sink_drain_success.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/flume/sink_drain_success.js b/ambari-web/app/views/main/service/info/metrics/flume/sink_drain_success.js
index 4f2a7fb..2c6e9cf 100644
--- a/ambari-web/app/views/main/service/info/metrics/flume/sink_drain_success.js
+++ b/ambari-web/app/views/main/service/info/metrics/flume/sink_drain_success.js
@@ -32,27 +32,15 @@ App.ChartServiceMetricsFlume_SinkDrainSuccessCount = App.ChartLinearTimeView.ext
ajaxIndex: 'service.metrics.flume.sink_drain_success',
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var self = this;
- if (jsonData && jsonData.host_components) {
- jsonData.host_components.forEach(function (hc) {
- var hostName = hc.HostRoles.host_name;
- var host = App.Host.find(hostName);
- if (host && host.get('publicHostName')) {
- hostName = host.get('publicHostName');
- }
- if (hc.metrics && hc.metrics.flume && hc.metrics.flume.flume && hc.metrics.flume.flume.SINK) {
- for ( var cname in hc.metrics.flume.flume.SINK) {
- var seriesName = Em.I18n.t('services.service.info.metrics.flume.sinkName').format(cname + " (" + hostName + ")");
- var seriesData = hc.metrics.flume.flume.SINK[cname]['EventDrainSuccessCount'];
- if (seriesData) {
- seriesArray.push(self.transformData(seriesData, seriesName));
- }
- }
- }
- });
- }
- return seriesArray;
+ seriesTemplate: {
+ path: 'metrics.flume.flume.SINK',
+ displayName: function (name, hostName) {
+ return Em.I18n.t('services.service.info.metrics.flume.sinkName').format(name + ' (' + hostName + ')');
+ },
+ flumePropertyName: 'EventDrainSuccessCount'
+ },
+
+ getData: function (jsonData) {
+ return this.getFlumeData(jsonData);
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/flume/source_accepted.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/flume/source_accepted.js b/ambari-web/app/views/main/service/info/metrics/flume/source_accepted.js
index 434e487..9e28ef0 100644
--- a/ambari-web/app/views/main/service/info/metrics/flume/source_accepted.js
+++ b/ambari-web/app/views/main/service/info/metrics/flume/source_accepted.js
@@ -32,27 +32,15 @@ App.ChartServiceMetricsFlume_SourceAcceptedCount = App.ChartLinearTimeView.exten
ajaxIndex: 'service.metrics.flume.source_accepted',
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var self = this;
- if (jsonData && jsonData.host_components) {
- jsonData.host_components.forEach(function (hc) {
- var hostName = hc.HostRoles.host_name;
- var host = App.Host.find(hostName);
- if (host && host.get('publicHostName')) {
- hostName = host.get('publicHostName');
- }
- if (hc.metrics && hc.metrics.flume && hc.metrics.flume.flume && hc.metrics.flume.flume.SOURCE) {
- for ( var cname in hc.metrics.flume.flume.SOURCE) {
- var seriesName = Em.I18n.t('services.service.info.metrics.flume.sourceName').format(cname + " (" + hostName + ")");
- var seriesData = hc.metrics.flume.flume.SOURCE[cname]['EventAcceptedCount'];
- if (seriesData) {
- seriesArray.push(self.transformData(seriesData, seriesName));
- }
- }
- }
- });
- }
- return seriesArray;
+ seriesTemplate: {
+ path: 'metrics.flume.flume.SOURCE',
+ displayName: function (name, hostName) {
+ return Em.I18n.t('services.service.info.metrics.flume.sourceName').format(name + ' (' + hostName + ')');
+ },
+ flumePropertyName: 'EventAcceptedCount'
+ },
+
+ getData: function (jsonData) {
+ return this.getFlumeData(jsonData);
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/kafka/broker_topic.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/kafka/broker_topic.js b/ambari-web/app/views/main/service/info/metrics/kafka/broker_topic.js
index 16489e3..d584181 100644
--- a/ambari-web/app/views/main/service/info/metrics/kafka/broker_topic.js
+++ b/ambari-web/app/views/main/service/info/metrics/kafka/broker_topic.js
@@ -32,30 +32,19 @@ App.ChartServiceMetricsKafka_BrokerTopicMetrics = App.ChartLinearTimeView.extend
renderer: 'line',
ajaxIndex: 'service.metrics.kafka.broker.topic',
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- if (Em.get(jsonData, 'metrics.kafka.server.BrokerTopicMetrics')) {
- for (var name in Em.get(jsonData, 'metrics.kafka.server.BrokerTopicMetrics')) {
- var displayName = null;
- var seriesData = Em.get(jsonData, 'metrics.kafka.server.BrokerTopicMetrics.' + name + '.1MinuteRate');
- switch (name) {
- case "AllTopicsBytesOutPerSec":
- displayName = Em.I18n.t('services.service.info.metrics.kafka.server.brokerTopic.displayNames.AllTopicsBytesOutPerSec');
- break;
- case "AllTopicsBytesInPerSec":
- displayName = Em.I18n.t('services.service.info.metrics.kafka.server.brokerTopic.displayNames.AllTopicsBytesInPerSec');
- break;
- case "AllTopicsMessagesInPerSec":
- displayName = Em.I18n.t('services.service.info.metrics.kafka.server.brokerTopic.displayNames.AllTopicsMessagesInPerSec');
- break;
- default:
- break;
- }
- if (seriesData != null && displayName) {
- seriesArray.push(this.transformData(seriesData, displayName));
- }
- }
+ seriesTemplate: {
+ path: 'metrics.kafka.server.BrokerTopicMetrics',
+ displayName: function (name) {
+ var displayNameMap = {
+ AllTopicsBytesOutPerSec: Em.I18n.t('services.service.info.metrics.kafka.server.brokerTopic.displayNames.AllTopicsBytesOutPerSec'),
+ AllTopicsBytesInPerSec: Em.I18n.t('services.service.info.metrics.kafka.server.brokerTopic.displayNames.AllTopicsBytesInPerSec'),
+ AllTopicsMessagesInPerSec: Em.I18n.t('services.service.info.metrics.kafka.server.brokerTopic.displayNames.AllTopicsMessagesInPerSec')
+ };
+ return displayNameMap[name];
}
- return seriesArray;
+ },
+
+ getData: function (jsonData) {
+ return this.getKafkaData(jsonData);
}
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/kafka/controller_status.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/kafka/controller_status.js b/ambari-web/app/views/main/service/info/metrics/kafka/controller_status.js
index f8952ff..8610968 100644
--- a/ambari-web/app/views/main/service/info/metrics/kafka/controller_status.js
+++ b/ambari-web/app/views/main/service/info/metrics/kafka/controller_status.js
@@ -32,27 +32,18 @@ App.ChartServiceMetricsKafka_ControllerStatus = App.ChartLinearTimeView.extend({
renderer: 'line',
ajaxIndex: 'service.metrics.kafka.controller.ControllerStats',
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- if (Em.get(jsonData, 'metrics.kafka.controller.ControllerStats')) {
- for (var name in Em.get(jsonData, 'metrics.kafka.controller.ControllerStats')) {
- var displayName = null;
- var seriesData = Em.get(jsonData, 'metrics.kafka.controller.ControllerStats.' + name + '.1MinuteRate');
- switch (name) {
- case "LeaderElectionRateAndTimeMs":
- displayName = Em.I18n.t('services.service.info.metrics.kafka.controller.ControllerStats.displayNames.LeaderElectionRateAndTimeMs');
- break;
- case "UncleanLeaderElectionsPerSec":
- displayName = Em.I18n.t('services.service.info.metrics.kafka.controller.ControllerStats.displayNames.UncleanLeaderElectionsPerSec');
- break;
- default:
- break;
- }
- if (seriesData != null && displayName) {
- seriesArray.push(this.transformData(seriesData, displayName));
- }
- }
+ seriesTemplate: {
+ path: 'metrics.kafka.controller.ControllerStats',
+ displayName: function (name) {
+ var displayNameMap = {
+ LeaderElectionRateAndTimeMs: Em.I18n.t('services.service.info.metrics.kafka.controller.ControllerStats.displayNames.LeaderElectionRateAndTimeMs'),
+ UncleanLeaderElectionsPerSec: Em.I18n.t('services.service.info.metrics.kafka.controller.ControllerStats.displayNames.UncleanLeaderElectionsPerSec')
+ };
+ return displayNameMap[name];
}
- return seriesArray;
+ },
+
+ getData: function (jsonData) {
+ return this.getKafkaData(jsonData);
}
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/kafka/kafka_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/kafka/kafka_controller.js b/ambari-web/app/views/main/service/info/metrics/kafka/kafka_controller.js
index 9432ab4..2f4fdd1 100644
--- a/ambari-web/app/views/main/service/info/metrics/kafka/kafka_controller.js
+++ b/ambari-web/app/views/main/service/info/metrics/kafka/kafka_controller.js
@@ -32,13 +32,10 @@ App.ChartServiceMetricsKafka_Controller = App.ChartLinearTimeView.extend({
renderer: 'line',
ajaxIndex: 'service.metrics.kafka.controller.KafkaController',
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var seriesData = Em.get(jsonData, 'metrics.kafka.controller.KafkaController.ActiveControllerCount');
- if (seriesData != null) {
- var displayName = Em.I18n.t('services.service.info.metrics.kafka.controller.KafkaController.displayNames.ActiveControllerCount');
- seriesArray.push(this.transformData(seriesData, displayName));
+ seriesTemplate: {
+ path: 'metrics.kafka.controller.KafkaController',
+ displayName: function () {
+ return Em.I18n.t('services.service.info.metrics.kafka.controller.KafkaController.displayNames.ActiveControllerCount');
}
- return seriesArray;
}
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/kafka/replica_fetcher.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/kafka/replica_fetcher.js b/ambari-web/app/views/main/service/info/metrics/kafka/replica_fetcher.js
index a9375aa..7068c17 100644
--- a/ambari-web/app/views/main/service/info/metrics/kafka/replica_fetcher.js
+++ b/ambari-web/app/views/main/service/info/metrics/kafka/replica_fetcher.js
@@ -32,13 +32,10 @@ App.ChartServiceMetricsKafka_ReplicaFetcher = App.ChartLinearTimeView.extend({
renderer: 'line',
ajaxIndex: 'service.metrics.kafka.server.ReplicaFetcherManager',
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- var seriesData = Em.get(jsonData, 'metrics.kafka.server.ReplicaFetcherManager.Replica-MaxLag');
- if (seriesData != null) {
- var displayName = Em.I18n.t('services.service.info.metrics.kafka.server.ReplicaFetcherManager.displayNames.Replica-MaxLag');
- seriesArray.push(this.transformData(seriesData, displayName));
+ seriesTemplate: {
+ path: 'metrics.kafka.server.ReplicaFetcherManager',
+ displayName: function () {
+ return Em.I18n.t('services.service.info.metrics.kafka.server.ReplicaFetcherManager.displayNames.Replica-MaxLag');
}
- return seriesArray;
}
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/app/views/main/service/info/metrics/kafka/replica_manager.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/kafka/replica_manager.js b/ambari-web/app/views/main/service/info/metrics/kafka/replica_manager.js
index 2eb745f..7452718 100644
--- a/ambari-web/app/views/main/service/info/metrics/kafka/replica_manager.js
+++ b/ambari-web/app/views/main/service/info/metrics/kafka/replica_manager.js
@@ -32,30 +32,15 @@ App.ChartServiceMetricsKafka_ReplicaManager = App.ChartLinearTimeView.extend({
renderer: 'line',
ajaxIndex: 'service.metrics.kafka.server.ReplicaManager',
- transformToSeries: function (jsonData) {
- var seriesArray = [];
- if (Em.get(jsonData, 'metrics.kafka.server.ReplicaManager')) {
- for (var name in Em.get(jsonData, 'metrics.kafka.server.ReplicaManager')) {
- var displayName = null;
- var seriesData = Em.get(jsonData, 'metrics.kafka.server.ReplicaManager.' + name);
- switch (name) {
- case "LeaderCount":
- displayName = Em.I18n.t('services.service.info.metrics.kafka.server.ReplicaManager.displayNames.LeaderCount');
- break;
- case "UnderReplicatedPartitions":
- displayName = Em.I18n.t('services.service.info.metrics.kafka.server.ReplicaManager.displayNames.UnderReplicatedPartitions');
- break;
- case "PartitionCount":
- displayName = Em.I18n.t('services.service.info.metrics.kafka.server.ReplicaManager.displayNames.PartitionCount');
- break;
- default:
- break;
- }
- if (seriesData != null && displayName) {
- seriesArray.push(this.transformData(seriesData, displayName));
- }
- }
+ seriesTemplate: {
+ path: 'metrics.kafka.server.ReplicaManager',
+ displayName: function (name) {
+ var displayNameMap = {
+ LeaderCount: Em.I18n.t('services.service.info.metrics.kafka.server.ReplicaManager.displayNames.LeaderCount'),
+ UnderReplicatedPartitions: Em.I18n.t('services.service.info.metrics.kafka.server.ReplicaManager.displayNames.UnderReplicatedPartitions'),
+ PartitionCount: Em.I18n.t('services.service.info.metrics.kafka.server.ReplicaManager.displayNames.PartitionCount')
+ };
+ return displayNameMap[name];
}
- return seriesArray;
}
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/d6a54ace/ambari-web/test/mixins/common/chart/storm_linear_time_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/mixins/common/chart/storm_linear_time_test.js b/ambari-web/test/mixins/common/chart/storm_linear_time_test.js
index b9bc19b..9a573a4 100644
--- a/ambari-web/test/mixins/common/chart/storm_linear_time_test.js
+++ b/ambari-web/test/mixins/common/chart/storm_linear_time_test.js
@@ -60,17 +60,20 @@ describe('App.StormLinearTimeChartMixin', function () {
});
});
- describe('#transformToSeries', function () {
+ describe('#getData', function () {
it('should be empty', function () {
- expect(slt.transformToSeries(jsonDataFalse)).to.be.empty;
+ expect(slt.getData(jsonDataFalse)).to.be.empty;
});
it('should take one element from data', function () {
slt.set('transformData', function (data, name) {
return name + ': ' + JSON.stringify(data);
});
- series = slt.transformToSeries(jsonDataTrue);
+ series = slt.getData(jsonDataTrue);
expect(series).to.have.length(1);
- expect(series[0]).to.equal('nimbus: "nimbus"');
+ expect(series[0]).to.eql({
+ name: 'nimbus',
+ data: 'nimbus'
+ });
});
});