From 977f538420bb1a9cae25455a9df9bc60582329b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Thu, 3 Sep 2015 16:35:11 +0200 Subject: [PATCH] feat(elasticsearch): lots of work on elasticsearch metrics query editor, #1034 --- .../app/plugins/datasource/elasticsearch/datasource.js | 4 ++-- .../app/plugins/datasource/elasticsearch/queryBuilder.js | 9 ++++++--- public/app/plugins/datasource/elasticsearch/queryCtrl.js | 2 +- public/test/specs/elasticsearch-querybuilder-specs.js | 1 - public/test/specs/elasticsearch-specs.js | 6 +++--- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/public/app/plugins/datasource/elasticsearch/datasource.js b/public/app/plugins/datasource/elasticsearch/datasource.js index a539259f7a8..6cf492a9351 100644 --- a/public/app/plugins/datasource/elasticsearch/datasource.js +++ b/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; diff --git a/public/app/plugins/datasource/elasticsearch/queryBuilder.js b/public/app/plugins/datasource/elasticsearch/queryBuilder.js index a934b9460db..effa49bdb4d 100644 --- a/public/app/plugins/datasource/elasticsearch/queryBuilder.js +++ b/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; } } diff --git a/public/app/plugins/datasource/elasticsearch/queryCtrl.js b/public/app/plugins/datasource/elasticsearch/queryCtrl.js index c64ed9782c1..b8307048a98 100644 --- a/public/app/plugins/datasource/elasticsearch/queryCtrl.js +++ b/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'})); diff --git a/public/test/specs/elasticsearch-querybuilder-specs.js b/public/test/specs/elasticsearch-querybuilder-specs.js index 550a485cb53..7c18d8d31ab 100644 --- a/public/test/specs/elasticsearch-querybuilder-specs.js +++ b/public/test/specs/elasticsearch-querybuilder-specs.js @@ -28,7 +28,6 @@ define([ var aggs = query.aggs.histogram; }); - }); }); diff --git a/public/test/specs/elasticsearch-specs.js b/public/test/specs/elasticsearch-specs.js index 433c08e0f14..3ec335d2ed9 100644 --- a/public/test/specs/elasticsearch-specs.js +++ b/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); });