Replace deprecated facets with aggregations.

This commit is contained in:
Adam Heinz 2015-08-28 13:06:57 -04:00
parent 7bccd17bbe
commit 56d1411253
3 changed files with 28 additions and 17 deletions

View File

@ -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;
});
});

View File

@ -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
}
}
}
}
}
};
}

View File

@ -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});