فهرست منبع

feat(elasticsearch): lots of work on elasticsearch metrics query editor, #1034

Torkel Ödegaard 10 سال پیش
والد
کامیت
977f538420

+ 2 - 2
public/app/plugins/datasource/elasticsearch/datasource.js

@@ -199,8 +199,8 @@ function (angular, _, config, kbn, moment, ElasticQueryBuilder) {
             }
 
             if (select.field) {
-              seriesName += ' ' + select.field;
-              value = bucket[select.field].value;
+              seriesName += ' ' + select.field + ' ' + select.agg;
+              value = bucket[y.toString()].value;
             } else {
               seriesName += ' count';
               value = bucket.doc_count;

+ 6 - 3
public/app/plugins/datasource/elasticsearch/queryBuilder.js

@@ -67,12 +67,15 @@ function () {
       nestedAggs = aggs;
     }
 
+    nestedAggs.aggs = {};
+
     for (var i = 0; i < target.select.length; i++) {
       var select = target.select[i];
       if (select.field) {
-        nestedAggs.aggs = {};
-        nestedAggs.aggs[select.field] = {};
-        nestedAggs.aggs[select.field][select.agg] = {field: select.field};
+        var aggField = {};
+        aggField[select.agg] = {field: select.field};
+
+        nestedAggs.aggs[i.toString()] = aggField;
       }
     }
 

+ 1 - 1
public/app/plugins/datasource/elasticsearch/queryCtrl.js

@@ -109,7 +109,7 @@ function (angular, _, ElasticQueryBuilder) {
       if (segment.type === 'agg')  {
         var nextSegment = $scope.selectSegments[index + 1];
 
-        if (!segment.reqField && nextSegment && nextSegment.type === 'field') {
+        if (segment.value === 'count' && nextSegment && nextSegment.type === 'field') {
           $scope.selectSegments.splice(index + 1, 1);
         } else if (!nextSegment || nextSegment.type !== 'field') {
           $scope.selectSegments.splice(index + 1, 0, uiSegmentSrv.newSegment({value: 'select field', fake: true, type: 'field'}));

+ 0 - 1
public/test/specs/elasticsearch-querybuilder-specs.js

@@ -28,7 +28,6 @@ define([
       var aggs = query.aggs.histogram;
     });
 
-
   });
 
 });

+ 3 - 3
public/test/specs/elasticsearch-specs.js

@@ -68,12 +68,12 @@ define([
                 histogram: {
                   buckets: [
                     {
-                      value: {value: 88},
+                      "1": {value: 88},
                       doc_count: 10,
                       key: 1000
                     },
                     {
-                      value: {value: 99},
+                      "1": {value: 99},
                       doc_count: 15,
                       key: 2000
                     }
@@ -90,7 +90,7 @@ define([
           expect(result.data[0].datapoints[0][0]).to.be(10);
           expect(result.data[0].datapoints[0][1]).to.be(1000);
 
-          expect(result.data[1].target).to.be("A value");
+          expect(result.data[1].target).to.be("A value avg");
           expect(result.data[1].datapoints[0][0]).to.be(88);
           expect(result.data[1].datapoints[1][0]).to.be(99);
         });