Переглянути джерело

AMBARI-3115. HBase Read/Write request metrics seem to have changed for 2.x stack. (srimanth)

Srimanth Gunturi 12 роки тому
батько
коміт
8682a95e45

+ 1 - 0
ambari-web/app/messages.js

@@ -927,6 +927,7 @@ Em.I18n.translations = {
   'services.service.info.metrics.hbase.regionServerRegions':'RegionServer Regions',
   'services.service.info.metrics.hbase.regionServerRegions.displayNames.regions':'Regions',
   'services.service.info.metrics.hbase.regionServerRequests':'Cumulative Requests',
+  'services.service.info.metrics.hbase.regionServerRequests.2':'RegionServer Requests',
   'services.service.info.metrics.hbase.regionServerRequests.displayNames.writeRequests':'Write Requests',
   'services.service.info.metrics.hbase.regionServerRequests.displayNames.readRequests':'Read Requests',
 

+ 46 - 17
ambari-web/app/views/common/chart/linear_time.js

@@ -271,28 +271,13 @@ App.ChartLinearTimeView = Ember.View.extend({
   /**
    * Provides the formatter to use in displaying Y axis.
    *
-   * The default is Rickshaw.Fixtures.Number.formatKMBT which shows 10K,
+   * Uses the App.ChartLinearTimeView.DefaultFormatter which shows 10K,
    * 300M etc.
    *
    * @type Function
    */
   yAxisFormatter: function(y) {
-    if(isNaN(y)){
-      return 0;
-    }
-    var value = Rickshaw.Fixtures.Number.formatKMBT(y);
-    if (value == '') return '0';
-    value = String(value);
-    var c = value[value.length - 1];
-    if (!isNaN(parseInt(c))) {
-      // c is digit
-      value = parseFloat(value).toFixed(3).replace(/0+$/, '').replace(/\.$/, '');
-    }
-    else {
-      // c in not digit
-      value = parseFloat(value.substr(0, value.length - 1)).toFixed(3).replace(/0+$/, '').replace(/\.$/, '') + c;
-    }
-    return value;
+    return App.ChartLinearTimeView.DefaultFormatter(y);
   },
 
   /**
@@ -850,4 +835,48 @@ App.ChartLinearTimeView.TimeElapsedFormatter = function (millis) {
     }
   }
   return value;
+};
+
+/**
+ * The default formatter which uses Rickshaw.Fixtures.Number.formatKMBT 
+ * which shows 10K, 300M etc.
+ *
+ * @type Function
+ */
+App.ChartLinearTimeView.DefaultFormatter = function(y) {
+  if(isNaN(y)){
+    return 0;
+  }
+  var value = Rickshaw.Fixtures.Number.formatKMBT(y);
+  if (value == '') return '0';
+  value = String(value);
+  var c = value[value.length - 1];
+  if (!isNaN(parseInt(c))) {
+    // c is digit
+    value = parseFloat(value).toFixed(3).replace(/0+$/, '').replace(/\.$/, '');
+  }
+  else {
+    // c in not digit
+    value = parseFloat(value.substr(0, value.length - 1)).toFixed(3).replace(/0+$/, '').replace(/\.$/, '') + c;
+  }
+  return value;
+};
+
+
+/**
+ * Creates and returns a formatter that can convert a 'value' 
+ * to 'value units/s'. 
+ * 
+ * @param unitsPrefix Prefix which will be used in 'unitsPrefix/s'
+ * @param valueFormatter  Value itself will need further processing 
+ *        via provided formatter. Ex: '10M requests/s'. Generally
+ *        should be App.ChartLinearTimeView.DefaultFormatter. 
+ * @return Function
+ */
+App.ChartLinearTimeView.CreateRateFormatter = function (unitsPrefix, valueFormatter) {
+  var suffix = " "+unitsPrefix+"/s";
+  return function (value) {
+    value = valueFormatter(value) + suffix;
+    return value;
+  };
 };

+ 7 - 2
ambari-web/app/views/main/service/info/metrics/hbase/regionserver_rw_requests.js

@@ -28,10 +28,15 @@ var App = require('app');
  */
 App.ChartServiceMetricsHBASE_RegionServerReadWriteRequests = App.ChartLinearTimeView.extend({
   id: "service-metrics-hbase-regionserver-rw-requests",
-  title: Em.I18n.t('services.service.info.metrics.hbase.regionServerRequests'),
   renderer: 'line',
-
   ajaxIndex: 'service.metrics.hbase.regionserver_rw_requests',
+  yAxisFormatter: App.ChartLinearTimeView.CreateRateFormatter('req', 
+      App.ChartLinearTimeView.DefaultFormatter),
+  title: function () {
+    return App.get('isHadoop2Stack') ? 
+        Em.I18n.t('services.service.info.metrics.hbase.regionServerRequests.2') : 
+          Em.I18n.t('services.service.info.metrics.hbase.regionServerRequests');
+  }.property('App.isHadoop2Stack'),
 
   transformToSeries: function (jsonData) {
     var seriesArray = [];

+ 2 - 0
ambari-web/app/views/main/service/info/metrics/hdfs/file_operations.js

@@ -32,6 +32,8 @@ App.ChartServiceMetricsHDFS_FileOperations = App.ChartLinearTimeView.extend({
   renderer: 'line',
 
   ajaxIndex: 'service.metrics.hdfs.file_operations',
+  yAxisFormatter: App.ChartLinearTimeView.CreateRateFormatter('ops', 
+      App.ChartLinearTimeView.DefaultFormatter),
 
   transformToSeries: function (jsonData) {
     var seriesArray = [];