AMBARI-13543. Redundant metrics in exported CSV and JSON files for Flume graphs
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/6a10db2b Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/6a10db2b Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/6a10db2b Branch: refs/heads/branch-dev-patch-upgrade Commit: 6a10db2b6c81e7baf4b0cfc0acd6f69a5ef94dc2 Parents: b27212d Author: Alex Antonenko <hiv...@gmail.com> Authored: Fri Oct 23 16:13:42 2015 +0300 Committer: Alex Antonenko <hiv...@gmail.com> Committed: Fri Oct 23 16:13:51 2015 +0300 ---------------------------------------------------------------------- ambari-web/app/assets/test/tests.js | 6 + ambari-web/app/utils/ajax/ajax.js | 16 +++ .../info/metrics/flume/channel_size_mma.js | 17 ++- .../service/info/metrics/flume/channel_sum.js | 10 +- .../info/metrics/flume/flume_incoming_mma.js | 17 ++- .../info/metrics/flume/flume_incoming_sum.js | 10 +- .../info/metrics/flume/flume_outgoing_mma.js | 17 ++- .../info/metrics/flume/flume_outgoing_sum.js | 10 +- .../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 ++++++++++++++ 14 files changed, 808 insertions(+), 45 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/6a10db2b/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 f79658c..f0b5dde 100644 --- a/ambari-web/app/assets/test/tests.js +++ b/ambari-web/app/assets/test/tests.js @@ -257,6 +257,12 @@ var files = [ '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/6a10db2b/ambari-web/app/utils/ajax/ajax.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/utils/ajax/ajax.js b/ambari-web/app/utils/ajax/ajax.js index 7fc1a23..3023cfc 100644 --- a/ambari-web/app/utils/ajax/ajax.js +++ b/ambari-web/app/utils/ajax/ajax.js @@ -970,6 +970,12 @@ var urls = { 'service.metrics.flume.channel_size_for_all': { 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/ChannelSize/rate[{fromSeconds},{toSeconds},{stepSeconds}]' }, + 'service.metrics.flume.channel_size_for_all.mma': { + 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/ChannelSize/rate/avg[{fromSeconds},{toSeconds},{stepSeconds}],metrics/flume/flume/CHANNEL/ChannelSize/rate/max[{fromSeconds},{toSeconds},{stepSeconds}],metrics/flume/flume/CHANNEL/ChannelSize/rate/min[{fromSeconds},{toSeconds},{stepSeconds}]' + }, + 'service.metrics.flume.channel_size_for_all.sum': { + 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/ChannelSize/rate/sum[{fromSeconds},{toSeconds},{stepSeconds}]' + }, 'service.metrics.flume.gc': { 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/jvm/gcTimeMillis[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/flume/jvmGcTime.json', @@ -992,10 +998,20 @@ var urls = { }, 'service.metrics.flume.incoming_event_put_successCount': { 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/EventPutSuccessCount/rate[{fromSeconds},{toSeconds},{stepSeconds}]' + },'service.metrics.flume.incoming_event_put_successCount.mma': { + 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/EventPutSuccessCount/rate/avg[{fromSeconds},{toSeconds},{stepSeconds}],metrics/flume/flume/CHANNEL/EventPutSuccessCount/rate/max[{fromSeconds},{toSeconds},{stepSeconds}],metrics/flume/flume/CHANNEL/EventPutSuccessCount/rate/min[{fromSeconds},{toSeconds},{stepSeconds}]' + },'service.metrics.flume.incoming_event_put_successCount.sum': { + 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/EventPutSuccessCount/rate/sum[{fromSeconds},{toSeconds},{stepSeconds}]' }, 'service.metrics.flume.outgoing_event_take_success_count': { 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/EventTakeSuccessCount/rate[{fromSeconds},{toSeconds},{stepSeconds}]' }, + 'service.metrics.flume.outgoing_event_take_success_count.mma': { + 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/EventTakeSuccessCount/rate/avg[{fromSeconds},{toSeconds},{stepSeconds}],metrics/flume/flume/CHANNEL/EventTakeSuccessCount/rate/max[{fromSeconds},{toSeconds},{stepSeconds}],metrics/flume/flume/CHANNEL/EventTakeSuccessCount/rate/min[{fromSeconds},{toSeconds},{stepSeconds}]' + }, + 'service.metrics.flume.outgoing_event_take_success_count.sum': { + 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/EventTakeSuccessCount/rate/sum[{fromSeconds},{toSeconds},{stepSeconds}]' + }, 'service.metrics.hbase.cluster_requests': { 'real': '/clusters/{clusterName}/services/HBASE/components/HBASE_MASTER?fields=metrics/hbase/master/cluster_requests[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/hbase/cluster_requests.json', http://git-wip-us.apache.org/repos/asf/ambari/blob/6a10db2b/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 ba0fd0f..d4c1fe0 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 @@ -30,22 +30,21 @@ App.ChartServiceMetricsFlume_ChannelSizeMMA = App.ChartLinearTimeView.extend({ id: "service-metrics-flume-channel-size-mma", title: Em.I18n.t('services.service.info.metrics.flume.channelSizeMMA'), renderer: 'line', - ajaxIndex: 'service.metrics.flume.channel_size_for_all', + ajaxIndex: 'service.metrics.flume.channel_size_for_all.mma', 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 (Em.get(jsonData, "metrics.flume.flume.CHANNEL.ChannelSize.rate")) { - for ( var cname in jsonData.metrics.flume.flume.CHANNEL.ChannelSize.rate) { - if(cname != "sum"){ - var seriesName = Em.I18n.t('services.service.info.metrics.flume.channelType').format(cname); - var seriesData = jsonData.metrics.flume.flume.CHANNEL.ChannelSize.rate[cname]; - if (seriesData) { - seriesArray.push(self.transformData(seriesData, seriesName)); - } + 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)); } } } http://git-wip-us.apache.org/repos/asf/ambari/blob/6a10db2b/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 6056fe3..b102575 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 @@ -31,17 +31,15 @@ App.ChartServiceMetricsFlume_ChannelSizeSum = App.ChartLinearTimeView.extend({ title: Em.I18n.t('services.service.info.metrics.flume.channelSizeSum'), yAxisFormatter: App.ChartLinearTimeView.BytesFormatter, - ajaxIndex: 'service.metrics.flume.channel_size_for_all', + ajaxIndex: 'service.metrics.flume.channel_size_for_all.sum', transformToSeries: function (jsonData) { var seriesArray = []; var self = this; - if(Em.get(jsonData, "metrics.flume.flume.CHANNEL.ChannelSize.rate.sum")){ + 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'); - var seriesData = jsonData.metrics.flume.flume.CHANNEL.ChannelSize.rate.sum; - if (seriesData) { - seriesArray.push(self.transformData(seriesData, seriesName)); - } + seriesArray.push(self.transformData(seriesData, seriesName)); } return seriesArray; } http://git-wip-us.apache.org/repos/asf/ambari/blob/6a10db2b/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 77fce83..48ee7f6 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 @@ -30,22 +30,21 @@ App.ChartServiceMetricsFlume_IncommingMMA = App.ChartLinearTimeView.extend({ renderer: 'line', title: Em.I18n.t('services.service.info.metrics.flume.incoming.mma'), - ajaxIndex: 'service.metrics.flume.incoming_event_put_successCount', + ajaxIndex: 'service.metrics.flume.incoming_event_put_successCount.mma', 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 (Em.get(jsonData, "metrics.flume.flume.CHANNEL.EventPutSuccessCount.rate")) { - for ( var cname in jsonData.metrics.flume.flume.CHANNEL.EventPutSuccessCount.rate) { - if(cname != "sum"){ - var seriesName = Em.I18n.t('services.service.info.metrics.flume.incoming_mma').format(cname); - var seriesData = jsonData.metrics.flume.flume.CHANNEL.EventPutSuccessCount.rate[cname]; - if (seriesData) { - seriesArray.push(self.transformData(seriesData, seriesName)); - } + 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)); } } } http://git-wip-us.apache.org/repos/asf/ambari/blob/6a10db2b/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 973719b..51a1287 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 @@ -29,17 +29,15 @@ App.ChartServiceMetricsFlume_IncommingSum = App.ChartLinearTimeView.extend({ id: "service-metrics-flume-incoming_sum", title: Em.I18n.t('services.service.info.metrics.flume.incoming.sum'), - ajaxIndex: 'service.metrics.flume.incoming_event_put_successCount', + ajaxIndex: 'service.metrics.flume.incoming_event_put_successCount.sum', transformToSeries: function (jsonData) { var seriesArray = []; var self = this; - if(Em.get(jsonData, "metrics.flume.flume.CHANNEL.EventPutSuccessCount.rate.sum")){ + 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'); - var seriesData = jsonData.metrics.flume.flume.CHANNEL.EventPutSuccessCount.rate.sum; - if (seriesData) { - seriesArray.push(self.transformData(seriesData, seriesName)); - } + seriesArray.push(self.transformData(seriesData, seriesName)); } return seriesArray; } http://git-wip-us.apache.org/repos/asf/ambari/blob/6a10db2b/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 311a472..ea1b947 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 @@ -30,22 +30,21 @@ App.ChartServiceMetricsFlume_OutgoingMMA = App.ChartLinearTimeView.extend({ renderer: 'line', title: Em.I18n.t('services.service.info.metrics.flume.outgoing.mma'), - ajaxIndex: 'service.metrics.flume.outgoing_event_take_success_count', + ajaxIndex: 'service.metrics.flume.outgoing_event_take_success_count.mma', 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 (Em.get(jsonData, "metrics.flume.flume.CHANNEL.EventTakeSuccessCount.rate")) { - for ( var cname in jsonData.metrics.flume.flume.CHANNEL.EventTakeSuccessCount.rate) { - if(cname != "sum"){ - var seriesName = Em.I18n.t('services.service.info.metrics.flume.outgoing_mma').format(cname); - var seriesData = jsonData.metrics.flume.flume.CHANNEL.EventTakeSuccessCount.rate[cname]; - if (seriesData) { - seriesArray.push(self.transformData(seriesData, seriesName)); - } + 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)); } } } http://git-wip-us.apache.org/repos/asf/ambari/blob/6a10db2b/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 50f8be0..8862f8c 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 @@ -29,17 +29,15 @@ App.ChartServiceMetricsFlume_OutgoingSum = App.ChartLinearTimeView.extend({ id: "service-metrics-flume-outgoing_sum", title: Em.I18n.t('services.service.info.metrics.flume.outgoing.sum'), - ajaxIndex: 'service.metrics.flume.outgoing_event_take_success_count', + ajaxIndex: 'service.metrics.flume.outgoing_event_take_success_count.sum', transformToSeries: function (jsonData) { var seriesArray = []; var self = this; - if(Em.get(jsonData, "metrics.flume.flume.CHANNEL.EventTakeSuccessCount.rate.sum")){ + 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'); - var seriesData = jsonData.metrics.flume.flume.CHANNEL.EventTakeSuccessCount.rate.sum; - if (seriesData) { - seriesArray.push(self.transformData(seriesData, seriesName)); - } + seriesArray.push(self.transformData(seriesData, seriesName)); } return seriesArray; } http://git-wip-us.apache.org/repos/asf/ambari/blob/6a10db2b/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 new file mode 100644 index 0000000..16068cd --- /dev/null +++ b/ambari-web/test/views/main/service/info/metrics/flume/channel_size_mma_test.js @@ -0,0 +1,142 @@ +/** + * 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); + }); + }); + + }); + +}); http://git-wip-us.apache.org/repos/asf/ambari/blob/6a10db2b/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 new file mode 100644 index 0000000..03ad3f7 --- /dev/null +++ b/ambari-web/test/views/main/service/info/metrics/flume/channel_sum_test.js @@ -0,0 +1,108 @@ +/** + * 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); + }); + }); + + }); + +}); http://git-wip-us.apache.org/repos/asf/ambari/blob/6a10db2b/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 new file mode 100644 index 0000000..50748c5 --- /dev/null +++ b/ambari-web/test/views/main/service/info/metrics/flume/flume_incoming_mma_test.js @@ -0,0 +1,142 @@ +/** + * 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); + }); + }); + + }); + +}); http://git-wip-us.apache.org/repos/asf/ambari/blob/6a10db2b/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 new file mode 100644 index 0000000..0a20a9d --- /dev/null +++ b/ambari-web/test/views/main/service/info/metrics/flume/flume_incoming_sum_test.js @@ -0,0 +1,108 @@ +/** + * 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); + }); + }); + + }); + +}); http://git-wip-us.apache.org/repos/asf/ambari/blob/6a10db2b/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 new file mode 100644 index 0000000..f00dde4 --- /dev/null +++ b/ambari-web/test/views/main/service/info/metrics/flume/flume_outgoing_mma_test.js @@ -0,0 +1,142 @@ +/** + * 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); + }); + }); + + }); + +}); http://git-wip-us.apache.org/repos/asf/ambari/blob/6a10db2b/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 new file mode 100644 index 0000000..9c725d1 --- /dev/null +++ b/ambari-web/test/views/main/service/info/metrics/flume/flume_outgoing_sum_test.js @@ -0,0 +1,108 @@ +/** + * 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); + }); + }); + + }); + +});