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/25 19:38:38 UTC
ambari git commit: AMBARI-10208. Service Graphs resize upon changing
time range (alexantonenko)
Repository: ambari
Updated Branches:
refs/heads/trunk 271660a6d -> 907166990
AMBARI-10208. Service Graphs resize upon changing time range (alexantonenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/90716699
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/90716699
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/90716699
Branch: refs/heads/trunk
Commit: 907166990a87469f89fc9d3e0508dc2ad4b0ff9d
Parents: 271660a
Author: Alex Antonenko <hi...@gmail.com>
Authored: Wed Mar 25 19:37:53 2015 +0200
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Wed Mar 25 20:38:35 2015 +0200
----------------------------------------------------------------------
.../app/views/main/service/info/summary.js | 8 +-
.../views/main/service/info/summary_test.js | 207 ++++++++++++++++++-
2 files changed, 212 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/90716699/ambari-web/app/views/main/service/info/summary.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/summary.js b/ambari-web/app/views/main/service/info/summary.js
index c545b2a..f3fe1f5 100644
--- a/ambari-web/app/views/main/service/info/summary.js
+++ b/ambari-web/app/views/main/service/info/summary.js
@@ -22,6 +22,10 @@ require('data/service_graph_config');
App.MainServiceInfoSummaryView = Em.View.extend(App.UserPref, {
templateName: require('templates/main/service/info/summary'),
+ /**
+ * @property {Number} chunkSize - number of columns in Metrics section
+ */
+ chunkSize: 5,
attributes:null,
/**
@@ -301,7 +305,7 @@ App.MainServiceInfoSummaryView = Em.View.extend(App.UserPref, {
* (will only display rows with 5 items)
*/
constructGraphObjects: function(graphNames) {
- var result = [], graphObjects = [], chunkSize = 5;
+ var result = [], graphObjects = [], chunkSize = this.get('chunkSize');
var self = this;
if (!graphNames) {
@@ -391,7 +395,7 @@ App.MainServiceInfoSummaryView = Em.View.extend(App.UserPref, {
self.set('currentTimeRangeIndex', event.context.index);
var svcName = self.get('service.serviceName');
if (svcName) {
- var result = [], graphObjects = [], chunkSize = 2;
+ var result = [], graphObjects = [], chunkSize = this.get('chunkSize');
App.service_graph_config[svcName.toLowerCase()].forEach(function(graphName) {
graphObjects.push(App["ChartServiceMetrics" + graphName].extend({
currentTimeIndex : event.context.index
http://git-wip-us.apache.org/repos/asf/ambari/blob/90716699/ambari-web/test/views/main/service/info/summary_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/service/info/summary_test.js b/ambari-web/test/views/main/service/info/summary_test.js
index 58f7fde..97ff3c9 100644
--- a/ambari-web/test/views/main/service/info/summary_test.js
+++ b/ambari-web/test/views/main/service/info/summary_test.js
@@ -36,7 +36,7 @@ describe('App.MainServiceInfoSummaryView', function() {
});
describe('#servers', function () {
- it('services shuldn\'t have servers except FLUME and ZOOKEEPER', function () {
+ it('services shouldn\'t have servers except FLUME and ZOOKEEPER', function () {
expect(view.get('servers')).to.be.empty;
});
@@ -180,4 +180,209 @@ describe('App.MainServiceInfoSummaryView', function() {
});
});
+
+ describe('#setTimeRange', function () {
+
+ var cases = [
+ {
+ currentTimeRangeIndex: 0,
+ isServiceMetricLoaded: false,
+ graphIds: [],
+ title: 'no event passed'
+ },
+ {
+ event: {},
+ currentTimeRangeIndex: 0,
+ isServiceMetricLoaded: false,
+ graphIds: [],
+ title: 'no event context passed'
+ },
+ {
+ event: {
+ context: {
+ index: 1
+ }
+ },
+ currentTimeRangeIndex: 1,
+ isServiceMetricLoaded: false,
+ graphIds: [],
+ title: 'no service name set'
+ },
+ {
+ event: {
+ context: {
+ index: 2
+ }
+ },
+ serviceName: 'HDFS',
+ currentTimeRangeIndex: 2,
+ isServiceMetricLoaded: true,
+ graphIds: [
+ [
+ 'service-metrics-hdfs-space-utilization', 'service-metrics-hdfs-file-operations',
+ 'service-metrics-hdfs-block-status', 'service-metrics-hdfs-io', 'service-metrics-hdfs-rpc'
+ ],
+ [
+ 'service-metrics-hdfs-gc', 'service-metrics-hdfs-jvm-heap', 'service-metrics-hdfs-jvm-threads'
+ ]
+ ]
+ },
+ {
+ event: {
+ context: {
+ index: 3
+ }
+ },
+ serviceName: 'YARN',
+ currentTimeRangeIndex: 3,
+ isServiceMetricLoaded: true,
+ graphIds: [
+ [
+ 'service-metrics-yarn-queue-allocated', 'service-metrics-yarn-queue-memory-resource',
+ 'service-metrics-yarn-queue-allocated-container', 'service-metrics-yarn-node-manager-statuses',
+ 'service-metrics-yarn-apps-current-states'
+ ],
+ [
+ 'service-metrics-yarn-apps-finished-states', 'service-metrics-yarn-rpc', 'service-metrics-yarn-gc',
+ 'service-metrics-yarn-jvm-threads', 'service-metrics-yarn-jvm-heap'
+ ]
+ ]
+ },
+ {
+ event: {
+ context: {
+ index: 4
+ }
+ },
+ serviceName: 'HBASE',
+ currentTimeRangeIndex: 4,
+ isServiceMetricLoaded: true,
+ graphIds: [
+ [
+ 'service-metrics-hbase-cluster-requests', 'service-metrics-hbase-regionserver-rw-requests',
+ 'service-metrics-hbase-regionserver-regions', 'service-metrics-hbase-regionserver-queuesize',
+ 'service-metrics-hbase-hlog-split-time'
+ ],
+ [
+ 'service-metrics-hbase-hlog-split-size'
+ ]
+ ]
+ },
+ {
+ event: {
+ context: {
+ index: 5
+ }
+ },
+ serviceName: 'AMBARI_METRICS',
+ currentTimeRangeIndex: 5,
+ isServiceMetricLoaded: true,
+ graphIds: [
+ [
+ 'service-metrics-ambari-metrics-master-average-load',
+ 'service-metrics-ambari-metrics-region-server-store-files',
+ 'service-metrics-ambari-metrics-region-server-regions',
+ 'service-metrics-ambari-metrics-region-server-requests',
+ 'service-metrics-ambari-metrics-region-server-block-cache-hit-percent'
+ ],
+ [
+ 'service-metrics-ambari-metrics-region-server-compaction-queue-size'
+ ]
+ ]
+ },
+ {
+ event: {
+ context: {
+ index: 6
+ }
+ },
+ serviceName: 'FLUME',
+ currentTimeRangeIndex: 6,
+ isServiceMetricLoaded: true,
+ graphIds: [
+ [
+ 'service-metrics-flume-channel-size-mma', 'service-metrics-flume-channel-size-sum',
+ 'service-metrics-flume-incoming_mma', 'service-metrics-flume-incoming_sum',
+ 'service-metrics-flume-outgoing_mma'
+ ],
+ [
+ 'service-metrics-flume-outgoing_sum'
+ ]
+ ]
+ },
+ {
+ event: {
+ context: {
+ index: 7
+ }
+ },
+ serviceName: 'STORM',
+ currentTimeRangeIndex: 7,
+ isServiceMetricLoaded: true,
+ graphIds: [
+ [
+ 'service-metrics-storm-supervisor-allocated', 'service-metrics-storm-executors',
+ 'service-metrics-storm-topologies', 'service-metrics-storm-tasks'
+ ]
+ ]
+ },
+ {
+ event: {
+ context: {
+ index: 8
+ }
+ },
+ serviceName: 'KAFKA',
+ chunkSize: 4,
+ currentTimeRangeIndex: 8,
+ isServiceMetricLoaded: true,
+ graphIds: [
+ [
+ 'service-metrics-kafka-broker-topic-metrics', 'service-metrics-kafka-controller-metrics',
+ 'service-metrics-kafka-controler-status-metrics', 'service-metrics-kafka-replica-manager-metrics'
+ ],
+ [
+ 'service-metrics-kafka-log-metrics', 'service-metrics-kafka-replica-fetcher-metrics'
+ ]
+ ]
+ }
+ ];
+
+ beforeEach(function () {
+ sinon.stub(view, 'postUserPref', Em.K);
+ view.setProperties({
+ chunkSize: 5,
+ currentTimeRangeIndex: 0,
+ isServiceMetricLoaded: false,
+ serviceMetricGraphs: []
+ });
+ });
+
+ afterEach(function () {
+ view.postUserPref.restore();
+ });
+
+ cases.forEach(function (item) {
+ it(item.serviceName || item.title, function () {
+ view.set('chunkSize', Em.isNone(item.chunkSize) ? 5 : item.chunkSize);
+ view.set('service.serviceName', item.serviceName);
+ view.setTimeRange(item.event);
+ var graphIndices = [],
+ graphIds = view.get('serviceMetricGraphs').map(function (graphs) {
+ return graphs.map(function (graph) {
+ var graphView = graph.create();
+ graphIndices.push(graphView.get('currentTimeIndex'));
+ return graphView.get('id');
+ });
+ });
+ expect(view.get('currentTimeRangeIndex')).to.equal(item.currentTimeRangeIndex);
+ expect(view.get('isServiceMetricLoaded')).to.equal(item.isServiceMetricLoaded);
+ if (item.event && item.event.context && item.serviceName) {
+ expect(graphIndices.uniq()).to.eql([item.currentTimeRangeIndex]);
+ }
+ expect(graphIds).to.eql(item.graphIds);
+ });
+ });
+
+ });
});
\ No newline at end of file