diff --git a/public/app/plugins/datasource/elasticsearch/datasource.js b/public/app/plugins/datasource/elasticsearch/datasource.js index 511df382153..3debe69497a 100644 --- a/public/app/plugins/datasource/elasticsearch/datasource.js +++ b/public/app/plugins/datasource/elasticsearch/datasource.js @@ -314,11 +314,13 @@ function (angular, _, config, kbn, moment, ElasticQueryBuilder) { ElasticDatasource.prototype._getTimeSeries = function(results) { var data = []; - if (results && results.facets) { - for (var target in results.facets) { - if (results.facets.hasOwnProperty(target) && results.facets[target].entries) { - var datapoints = results.facets[target].entries.map(function(entry) { - return [entry.mean, entry.time]; + if (results && results.aggregations) { + for (var target in results.aggregations) { + if (results.aggregations.hasOwnProperty(target) && + results.aggregations[target].date_histogram && + results.aggregations[target].date_histogram.buckets) { + var datapoints = results.aggregations[target].date_histogram.buckets.map(function(entry) { + return [entry.metric.avg, entry.key]; }); data.push({ target: target, datapoints: datapoints }); } @@ -329,5 +331,4 @@ function (angular, _, config, kbn, moment, ElasticQueryBuilder) { return ElasticDatasource; }); - }); diff --git a/public/app/plugins/datasource/elasticsearch/queryBuilder.js b/public/app/plugins/datasource/elasticsearch/queryBuilder.js index e2354e8a6fc..256212219cc 100644 --- a/public/app/plugins/datasource/elasticsearch/queryBuilder.js +++ b/public/app/plugins/datasource/elasticsearch/queryBuilder.js @@ -8,24 +8,34 @@ function () { ElasticQueryBuilder.prototype.build = function(targets) { var query = { - "facets": {}, + "aggs": {}, "size": "$maxDataPoints" }; var self = this; targets.forEach(function(target) { if (!target.hide) { - query["facets"][target.termKey + "_" + target.termValue] = { - "date_histogram": { - "interval": target.interval || "$interval", - "key_field": target.keyField, - "min_doc_count": 0, - "value_field": target.valueField - }, - "facet_filter": { + query["aggs"][target.termKey + "_" + target.termValue] = { + "filter": { "and": [ self._buildRangeFilter(target), self._buildTermFilter(target) ] + }, + "aggs": { + "date_histogram": { + "date_histogram": { + "interval": target.interval || "$interval", + "field": target.keyField, + "min_doc_count": 0, + }, + "aggs": { + "metric": { + "stats": { + "field": target.valueField + } + } + } + } } }; } diff --git a/public/app/plugins/datasource/elasticsearch/queryCtrl.js b/public/app/plugins/datasource/elasticsearch/queryCtrl.js index fe9a3690f16..f0ecb028d4a 100644 --- a/public/app/plugins/datasource/elasticsearch/queryCtrl.js +++ b/public/app/plugins/datasource/elasticsearch/queryCtrl.js @@ -35,12 +35,12 @@ function (angular, _, ElasticQueryBuilder) { $scope.valueFieldSegment = new MetricSegment({value: target.valueField}); if (!target.termKey) { - target.termKey = 'service'; + target.termKey = 'service.raw'; } $scope.termKeySegment = new MetricSegment({value: target.termKey}); if (!target.termValue) { - target.termValue = 'cpu'; + target.termValue = 'cpu-average/cpu-user'; } $scope.termValueSegment = new MetricSegment({value: target.termValue});