Просмотр исходного кода

Merge branch 'master' of github.com:heldr/grafana into heldr-master

Torkel Ödegaard 11 лет назад
Родитель
Сommit
f64bcf0d08
2 измененных файлов с 39 добавлено и 20 удалено
  1. 11 1
      src/app/partials/opentsdb/editor.html
  2. 28 19
      src/app/services/opentsdb/opentsdbDatasource.js

+ 11 - 1
src/app/partials/opentsdb/editor.html

@@ -43,7 +43,7 @@
         <ul class="grafana-segment-list" role="menu">
         <ul class="grafana-segment-list" role="menu">
           <li>
           <li>
             <input type="text"
             <input type="text"
-                   class="input-xxlarge grafana-target-segment-input"
+                   class="grafana-target-segment-input"
                    ng-model="target.metric"
                    ng-model="target.metric"
                    spellcheck='false'
                    spellcheck='false'
                    bs-typeahead="suggestMetrics"
                    bs-typeahead="suggestMetrics"
@@ -57,6 +57,16 @@
               <i class="icon-warning-sign"></i>
               <i class="icon-warning-sign"></i>
             </a>
             </a>
           </li>
           </li>
+          <li>
+            <input type="text"
+                   class="grafana-target-segment-input"
+                   ng-model="target.chartLabel"
+                   spellcheck='false'
+                   placeholder="chart label(optional)"
+                   data-min-length=0 data-items=100
+                   ng-blur="targetBlur()"
+                   />
+          </li>
           <li class="grafana-target-segment">
           <li class="grafana-target-segment">
             Aggregator
             Aggregator
           <li>
           <li>

+ 28 - 19
src/app/services/opentsdb/opentsdbDatasource.js

@@ -38,12 +38,12 @@ function (angular, _, kbn) {
       });
       });
 
 
       return this.performTimeSeriesQuery(queries, start, end)
       return this.performTimeSeriesQuery(queries, start, end)
-        .then(function(response) {
-          var result = _.map(response.data, function(metricData) {
-            return transformMetricData(metricData, groupByTags);
-          });
+        .then(_.bind(function(response) {
+          var result = _.map(response.data, _.bind(function(metricData, index) {
+            return transformMetricData(metricData, groupByTags, this.targets[index]);
+          }, this));
           return { data: result };
           return { data: result };
-        });
+        }, options));
     };
     };
 
 
     OpenTSDBDatasource.prototype.performTimeSeriesQuery = function(queries, start, end) {
     OpenTSDBDatasource.prototype.performTimeSeriesQuery = function(queries, start, end) {
@@ -80,8 +80,20 @@ function (angular, _, kbn) {
       });
       });
     };
     };
 
 
-    function transformMetricData(md, groupByTags) {
-      var dps = [];
+    function transformMetricData(md, groupByTags, options) {
+      var dps = [],
+          tagData = [],
+          metricLabel = null;
+
+      if (!_.isEmpty(md.tags)) {
+        _.each(_.pairs(md.tags), function(tag) {
+          if (_.has(groupByTags, tag[0])) {
+            tagData.push(tag[0] + "=" + tag[1]);
+          }
+        });
+      }
+
+      metricLabel = createMetricLabel(md.metric, tagData, options);
 
 
       // TSDB returns datapoints has a hash of ts => value.
       // TSDB returns datapoints has a hash of ts => value.
       // Can't use _.pairs(invert()) because it stringifies keys/values
       // Can't use _.pairs(invert()) because it stringifies keys/values
@@ -89,22 +101,19 @@ function (angular, _, kbn) {
         dps.push([v, k]);
         dps.push([v, k]);
       });
       });
 
 
-      var target = md.metric;
-      if (!_.isEmpty(md.tags)) {
-        var tagData = [];
+      return { target: metricLabel, datapoints: dps };
+    }
 
 
-        _.each(_.pairs(md.tags), function(tag) {
-          if (_.has(groupByTags, tag[0])) {
-            tagData.push(tag[0] + "=" + tag[1]);
-          }
-        });
+    function createMetricLabel(metric, tagData, options) {
+      if (options.chartLabel) {
+        return options.chartLabel;
+      }
 
 
-        if (!_.isEmpty(tagData)) {
-          target = target + "{" + tagData.join(", ") + "}";
-        }
+      if (!_.isEmpty(tagData)) {
+        metric += "{" + tagData.join(", ") + "}";
       }
       }
 
 
-      return { target: target, datapoints: dps };
+      return metric;
     }
     }
 
 
     function convertTargetToQuery(target) {
     function convertTargetToQuery(target) {