You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ak...@apache.org on 2014/07/09 14:38:16 UTC

git commit: AMBARI-6431. Individual flume graph data not loading correctly. (akovalenko)

Repository: ambari
Updated Branches:
  refs/heads/trunk 5bb59403f -> 306e4d469


AMBARI-6431. Individual flume graph data not loading correctly. (akovalenko)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/306e4d46
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/306e4d46
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/306e4d46

Branch: refs/heads/trunk
Commit: 306e4d4693f35c30f21a56e205cadb3d2534f8ef
Parents: 5bb5940
Author: Aleksandr Kovalenko <ak...@hortonworks.com>
Authored: Wed Jul 9 15:34:53 2014 +0300
Committer: Aleksandr Kovalenko <ak...@hortonworks.com>
Committed: Wed Jul 9 15:34:53 2014 +0300

----------------------------------------------------------------------
 ambari-web/app/utils/ajax/ajax.js               |  9 ++-
 .../info/metrics/flume/flume_metric_graph.js    | 13 +++-
 .../info/metrics/flume/flume_metric_graphs.js   | 75 ++++++++++++--------
 3 files changed, 61 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/306e4d46/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 9581283..f10abb7 100644
--- a/ambari-web/app/utils/ajax/ajax.js
+++ b/ambari-web/app/utils/ajax/ajax.js
@@ -1574,8 +1574,13 @@ var urls = {
     }
   },
   'host.host_component.flume.metrics.timeseries': {
-    'real': '/clusters/{clusterName}/hosts/{hostName}/host_components/FLUME_HANDLER?fields=metrics/flume/flume/{flumeComponent}/*/{flumeComponentMetric}[{fromSeconds},{toSeconds},{stepSeconds}]',
-    'mock': ''
+    'real': '',
+    'mock': '',
+    format: function (data) {
+      return {
+        url: data.url
+      }
+    }
   },
   'host.host_components.filtered': {
     'real': '/clusters/{clusterName}/hosts?{fields}',

http://git-wip-us.apache.org/repos/asf/ambari/blob/306e4d46/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 56a1c7f..f138f40 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
@@ -33,6 +33,7 @@ App.ChartServiceFlumeMetricGraph = App.ChartLinearTimeView.extend({
   metricType: null,
   metricName: null,
   hostName: null,
+  metricItems: null,
 
   id: function(){
     return "service-metrics-flume-metric-graph-" + this.get('metricType') + '-' + this.get('metricName');
@@ -46,9 +47,15 @@ App.ChartServiceFlumeMetricGraph = App.ChartLinearTimeView.extend({
 
   getDataForAjaxRequest: function() {
     var data = this._super();
-    data.flumeComponentMetric = this.get('metricName');
-    data.flumeComponent = this.get('metricType');
-    data.hostName = this.get('hostName');
+
+    var urlFields = '';
+    this.get('metricItems').forEach(function (metricItem, index) {
+      urlFields += index === 0 ? '' : ',';
+      urlFields += 'metrics/flume/flume/' + this.get('metricType') + '/' + metricItem + '/' + this.get('metricName') +
+          '[' + data.fromSeconds + ',' + data.toSeconds + ',' + data.stepSeconds + ']'
+    }, this);
+
+    data.url = App.get('apiPrefix') + '/clusters/' + App.get('clusterName') + '/hosts/' + this.get('hostName') + '/host_components/FLUME_HANDLER?fields=' + urlFields;
     return data;
   },
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/306e4d46/ambari-web/app/views/main/service/info/metrics/flume/flume_metric_graphs.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/metrics/flume/flume_metric_graphs.js b/ambari-web/app/views/main/service/info/metrics/flume/flume_metric_graphs.js
index bb38638..b677567 100644
--- a/ambari-web/app/views/main/service/info/metrics/flume/flume_metric_graphs.js
+++ b/ambari-web/app/views/main/service/info/metrics/flume/flume_metric_graphs.js
@@ -20,43 +20,18 @@ require('views/main/service/service');
 
 App.MainServiceInfoFlumeGraphsView = App.MainServiceInfoSummaryMetricGraphsView.extend({
 
-  serviceMetricGraphs: function() {
+  serviceMetricGraphs: [],
+
+  loadMetrics: function () {
     var graphRows = [];
     var viewData = this.get('viewData');
     if (viewData != null) {
       var metricType = viewData.metricType;
       var hostName = viewData.agent.get('hostName');
-      var metricNamesGatherer = {
-        success: function(data) {
-          var metricNames = {};
-          if (data != null && data.metrics != null && data.metrics.flume != null && data.metrics.flume.flume != null && data.metrics.flume.flume[metricType] != null) {
-            for ( var name in data.metrics.flume.flume[metricType]) {
-              for ( var metricName in data.metrics.flume.flume[metricType][name]) {
-                metricNames[metricName] = name;
-              }
-            }
-          }
-          // Now that we have collected all metric names, we create
-          // views for each of them and store them 4 in a row.
-          graphRows.push([]);
-          var graphs = graphRows[0];
-          for (var metricName in metricNames) {
-            if (graphs.length > 3) {
-              graphRows.push([]);
-              graphs = graphRows[graphRows.length - 1];
-            }
-            graphs.push(App.ChartServiceFlumeMetricGraph.extend({
-              metricType: metricType,
-              metricName: metricName,
-              hostName: hostName
-            }));
-          }
-        }
-      };
       App.ajax.send({
         'name': 'host.host_component.flume.metrics',
-        'sender': metricNamesGatherer,
-        'success': 'success',
+        'sender': this,
+        'success': 'onLoadMetricsSuccess',
         'data': {
           async: false,
           hostName: hostName,
@@ -65,6 +40,44 @@ App.MainServiceInfoFlumeGraphsView = App.MainServiceInfoSummaryMetricGraphsView.
       });
     }
     return graphRows;
-  }.property('viewData', 'metricType')
+  }.observes('viewData', 'metricType'),
+
+  onLoadMetricsSuccess: function (data) {
+    var graphRows = [];
+    var viewData = this.get('viewData');
+    var metricType = viewData.metricType;
+    var hostName = viewData.agent.get('hostName');
+    var metricNames = {};
+    var metricItems = [];
+    if (data != null && data.metrics != null && data.metrics.flume != null && data.metrics.flume.flume != null && data.metrics.flume.flume[metricType] != null) {
+      for (var name in data.metrics.flume.flume[metricType]) {
+        for (var metricName in data.metrics.flume.flume[metricType][name]) {
+          metricNames[metricName] = name;
+        }
+        metricItems.push(name);
+      }
+    }
+    // Now that we have collected all metric names, we create
+    // views for each of them and store them 4 in a row.
+    graphRows.push([]);
+    var graphs = graphRows[0];
+    for (var metricName in metricNames) {
+      if (graphs.length > 3) {
+        graphRows.push([]);
+        graphs = graphRows[graphRows.length - 1];
+      }
+      graphs.push(App.ChartServiceFlumeMetricGraph.extend({
+        metricType: metricType,
+        metricName: metricName,
+        hostName: hostName,
+        metricItems: metricItems
+      }));
+    }
+    this.set('serviceMetricGraphs', graphRows);
+  },
+
+  didInsertElement: function () {
+    this.loadMetrics();
+  }
 
 });