http://git-wip-us.apache.org/repos/asf/ambari/blob/568e49df/ambari-web/app/views.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views.js b/ambari-web/app/views.js index 8935441..1089ce7 100644 --- a/ambari-web/app/views.js +++ b/ambari-web/app/views.js @@ -235,6 +235,13 @@ require('views/main/service/info/metrics/hbase/regionserver_regions'); require('views/main/service/info/metrics/hbase/regionserver_queuesize'); require('views/main/service/info/metrics/hbase/hlog_split_time'); require('views/main/service/info/metrics/hbase/hlog_split_size'); +require('views/main/service/info/metrics/ambari_metrics/master_average_load'); +require('views/main/service/info/metrics/ambari_metrics/regionserver_base'); +require('views/main/service/info/metrics/ambari_metrics/regionserver_store_files'); +require('views/main/service/info/metrics/ambari_metrics/regionserver_regions'); +require('views/main/service/info/metrics/ambari_metrics/regionserver_requests'); +require('views/main/service/info/metrics/ambari_metrics/regionserver_block_cache_hit_percent'); +require('views/main/service/info/metrics/ambari_metrics/regionserver_compaction_queue_size'); require('views/main/service/info/metrics/flume/channel_sum'); require('views/main/service/info/metrics/flume/channel_size_mma'); require('views/main/service/info/metrics/flume/flume_incoming_sum');
http://git-wip-us.apache.org/repos/asf/ambari/blob/568e49df/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 new file mode 100644 index 0000000..be11f85 --- /dev/null +++ b/ambari-web/app/views/main/service/info/metrics/ambari_metrics/master_average_load.js @@ -0,0 +1,54 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +var App = require('app'); + +/** + * @class + * + * This is a view for showing HBase master avereage load + * + * @extends App.ChartLinearTimeView + * @extends Ember.Object + * @extends Ember.View + */ +App.ChartServiceMetricsAMS_MasterAverageLoad = App.ChartLinearTimeView.extend({ + id: "service-metrics-ambari-metrics-master-average-load", + title: Em.I18n.t('services.service.info.metrics.ambariMetrics.master.averageLoad'), + ajaxIndex: 'service.metrics.ambari_metrics.master.average_load', + + 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)); + } + } + } + return seriesArray; + } +}); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/568e49df/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 new file mode 100644 index 0000000..2d15f11 --- /dev/null +++ b/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_base.js @@ -0,0 +1,53 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +var App = require('app'); + +/** + * @class + * + * This is a a base for views showing data for HBase RegionServer + * + * @extends App.ChartLinearTimeView + * @extends Ember.Object + * @extends Ember.View + */ +App.ChartServiceMetricsAMS_RegionServerBaseView = App.ChartLinearTimeView.extend({ + displayName: '', + regionServerName: '', + + 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]; + switch (name) { + case this.regionServerName: + displayName = this.displayName; + break; + default: + break; + } + if (seriesData) { + seriesArray.push(this.transformData(seriesData, displayName)); + } + } + } + return seriesArray; + } +}); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/568e49df/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_block_cache_hit_percent.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_block_cache_hit_percent.js b/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_block_cache_hit_percent.js new file mode 100644 index 0000000..bdc5bf6 --- /dev/null +++ b/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_block_cache_hit_percent.js @@ -0,0 +1,38 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +var App = require('app'); + +/** + * @class + * + * This is a view for showing HBase RegionServer Block cache hit percent + * + * @extends App.ChartServiceMetricsAMS_RegionServerBaseView + * @extends Ember.Object + * @extends Ember.View + */ +App.ChartServiceMetricsAMS_RegionServerBlockCacheHitPercent = App.ChartServiceMetricsAMS_RegionServerBaseView.extend({ + id: "service-metrics-ambari-metrics-region-server-block-cache-hit-percent", + title: Em.I18n.t('services.service.info.metrics.ambariMetrics.regionServer.blockCacheHitPercent'), + renderer: 'line', + yAxisFormatter: App.ChartLinearTimeView.PercentageFormatter, + ajaxIndex: 'service.metrics.ambari_metrics.region_server.block_cache_hit_percent', + + displayName: Em.I18n.t('services.service.info.metrics.ambariMetrics.regionServer.displayNames.blockCacheHitPercent'), + regionServerName: 'blockCacheHitPercent' +}); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/568e49df/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_compaction_queue_size.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_compaction_queue_size.js b/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_compaction_queue_size.js new file mode 100644 index 0000000..e2e0b12 --- /dev/null +++ b/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_compaction_queue_size.js @@ -0,0 +1,36 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +var App = require('app'); + +/** + * @class + * + * This is a view for showing HBase RegionServer compaction queue size + * + * @extends App.ChartServiceMetricsAMS_RegionServerBaseView + * @extends Ember.Object + * @extends Ember.View + */ +App.ChartServiceMetricsAMS_RegionServerCompactionQueueSize = App.ChartServiceMetricsAMS_RegionServerBaseView.extend({ + id: "service-metrics-ambari-metrics-region-server-compaction-queue-size", + title: Em.I18n.t('services.service.info.metrics.ambariMetrics.regionServer.compactionQueueSize'), + ajaxIndex: 'service.metrics.ambari_metrics.region_server.compaction_queue_size', + + displayName: Em.I18n.t('services.service.info.metrics.ambariMetrics.regionServer.displayNames.compactionQueueSize'), + regionServerName: 'compactionQueueSize' +}); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/568e49df/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_regions.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_regions.js b/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_regions.js new file mode 100644 index 0000000..db9e4b7 --- /dev/null +++ b/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_regions.js @@ -0,0 +1,36 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +var App = require('app'); + +/** + * @class + * + * This is a view for showing HBase RegionServer regions + * + * @extends App.ChartServiceMetricsAMS_RegionServerBaseView + * @extends Ember.Object + * @extends Ember.View + */ +App.ChartServiceMetricsAMS_RegionServerRegions = App.ChartServiceMetricsAMS_RegionServerBaseView.extend({ + id: "service-metrics-ambari-metrics-region-server-regions", + title: Em.I18n.t('services.service.info.metrics.ambariMetrics.regionServer.regions'), + ajaxIndex: 'service.metrics.ambari_metrics.region_server.regions', + + displayName: Em.I18n.t('services.service.info.metrics.ambariMetrics.regionServer.displayNames.regionsCount'), + regionServerName: 'regions' +}); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/568e49df/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_requests.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_requests.js b/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_requests.js new file mode 100644 index 0000000..ba4f5d9 --- /dev/null +++ b/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_requests.js @@ -0,0 +1,36 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +var App = require('app'); + +/** + * @class + * + * This is a view for showing HBase RegionServer requests + * + * @extends App.ChartServiceMetricsAMS_RegionServerBaseView + * @extends Ember.Object + * @extends Ember.View + */ +App.ChartServiceMetricsAMS_RegionServerRequests = App.ChartServiceMetricsAMS_RegionServerBaseView.extend({ + id: "service-metrics-ambari-metrics-region-server-requests", + title: Em.I18n.t('services.service.info.metrics.ambariMetrics.regionServer.requests'), + ajaxIndex: 'service.metrics.ambari_metrics.region_server.request', + + displayName: Em.I18n.t('services.service.info.metrics.ambariMetrics.regionServer.displayNames.requestCount'), + regionServerName: 'requests' +}); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/568e49df/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_store_files.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_store_files.js b/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_store_files.js new file mode 100644 index 0000000..5280eac --- /dev/null +++ b/ambari-web/app/views/main/service/info/metrics/ambari_metrics/regionserver_store_files.js @@ -0,0 +1,36 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +var App = require('app'); + +/** + * @class + * + * This is a view for showing HBase RegionServer store files + * + * @extends App.ChartServiceMetricsAMS_RegionServerBaseView + * @extends Ember.Object + * @extends Ember.View + */ +App.ChartServiceMetricsAMS_RegionServerStoreFiles = App.ChartServiceMetricsAMS_RegionServerBaseView.extend({ + id: "service-metrics-ambari-metrics-region-server-store-files", + title: Em.I18n.t('services.service.info.metrics.ambariMetrics.regionServer.storeFiles'), + renderer: 'line', + ajaxIndex: 'service.metrics.ambari_metrics.region_server.store_files', + regionServerName: 'storefiles', + displayName: Em.I18n.t('services.service.info.metrics.ambariMetrics.regionServer.displayNames.storeFilesCount') +}); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/568e49df/ambari-web/test/views/main/service/info/metrics/ambari_metrics/regionserver_base_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/views/main/service/info/metrics/ambari_metrics/regionserver_base_test.js b/ambari-web/test/views/main/service/info/metrics/ambari_metrics/regionserver_base_test.js new file mode 100644 index 0000000..a43c345 --- /dev/null +++ b/ambari-web/test/views/main/service/info/metrics/ambari_metrics/regionserver_base_test.js @@ -0,0 +1,49 @@ +/** + * 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/ambari_metrics/regionserver_base'); + +describe('App.ChartServiceMetricsAMS_RegionServerBaseView', function () { + + var regionServerView = App.ChartServiceMetricsAMS_RegionServerBaseView.extend({ + id: "service-metrics-ambari-metrics-region-server-test", + title: 'test-title', + ajaxIndex: 'service.metrics.ambari_metrics.region_server.regions', + displayName: 'test-display-name', + regionServerName: 'test' + }).create(); + + it('#transformData should transform data for regionserver requests', function () { + var jsonData = { + "metrics": { + "hbase": { + "regionserver": { + "test": [[11.0, 1424948261], [11.0, 1424948306], [11.0, 1424948321]] + } + } + } + }; + var result = regionServerView.transformToSeries(jsonData); + expect(result[0].name === regionServerView.displayName).to.be.true; + expect(result[0].data.length === jsonData.metrics.hbase.regionserver['test'].length).to.be.true; + expect(result[0].data[0]).to.have.property('y').to.equal(11); + expect(result[0].data[0]).to.have.property('x').to.equal(1424948261); + }); +}); \ No newline at end of file
