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/03/01 23:22:17 UTC
[3/5] ambari git commit: AMBARI-9865. Services > AMS page: Add charts
to display performance of the AMS HBase cluster (alexantonenko)
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