Browse Source

Replace deprecated facets with aggregations.

Adam Heinz 10 years ago
parent
commit
56d1411253

+ 7 - 6
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;
   });
-
 });

+ 19 - 9
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
+                  }
+                }
+              }
+            }
           }
         };
       }

+ 2 - 2
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});