From 9f294e3565cca18342e180c5c5a9429dd90c9e38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Fri, 11 Dec 2015 12:41:40 +0100 Subject: [PATCH] feat(elasticsearch): completed initial implementation of moving average and derivative pipleline aggregations, closes #3451 --- .../elasticsearch/elastic_response.js | 3 ++ .../datasource/elasticsearch/metric_agg.js | 21 ++++++++----- .../elasticsearch/partials/metricAgg.html | 31 +++++++------------ .../datasource/elasticsearch/query_def.js | 4 +-- 4 files changed, 30 insertions(+), 29 deletions(-) diff --git a/public/app/plugins/datasource/elasticsearch/elastic_response.js b/public/app/plugins/datasource/elasticsearch/elastic_response.js index bcf4983f9a6..32120a4519a 100644 --- a/public/app/plugins/datasource/elasticsearch/elastic_response.js +++ b/public/app/plugins/datasource/elasticsearch/elastic_response.js @@ -15,6 +15,9 @@ function (_, queryDef) { for (y = 0; y < target.metrics.length; y++) { metric = target.metrics[y]; + if (metric.hide) { + continue; + } switch(metric.type) { case 'count': { diff --git a/public/app/plugins/datasource/elasticsearch/metric_agg.js b/public/app/plugins/datasource/elasticsearch/metric_agg.js index 4c340a8c1ff..df5d8e00a80 100644 --- a/public/app/plugins/datasource/elasticsearch/metric_agg.js +++ b/public/app/plugins/datasource/elasticsearch/metric_agg.js @@ -41,14 +41,11 @@ function (angular, _, queryDef) { $scope.agg.pipelineAgg = $scope.agg.pipelineAgg || 'select metric'; $scope.agg.field = $scope.agg.pipelineAgg; - _.each(queryDef.getPipelineOptions($scope.agg), function(opt) { - $scope.agg.settings[opt.text] = $scope.agg.settings[opt.text] || opt.default; - }); - - var appliedAgg = _.findWhere(metricAggs, { id: $scope.agg.pipelineAgg }); - if (appliedAgg) { - $scope.settingsLinkText = 'Options: Based on => ' + queryDef.describeMetric(appliedAgg); - } else { + var pipelineOptions = queryDef.getPipelineOptions($scope.agg); + if (pipelineOptions.length > 0) { + _.each(pipelineOptions, function(opt) { + $scope.agg.settings[opt.text] = $scope.agg.settings[opt.text] || opt.default; + }); $scope.settingsLinkText = 'Options'; } } else if (!$scope.agg.field) { @@ -121,6 +118,14 @@ function (angular, _, queryDef) { $scope.onChange(); }; + $scope.toggleShowMetric = function() { + $scope.agg.hide = !$scope.agg.hide; + if (!$scope.agg.hide) { + delete $scope.agg.hide; + } + $scope.onChange(); + }; + $scope.init(); }); diff --git a/public/app/plugins/datasource/elasticsearch/partials/metricAgg.html b/public/app/plugins/datasource/elasticsearch/partials/metricAgg.html index eced5a12571..a55fadf3d5b 100644 --- a/public/app/plugins/datasource/elasticsearch/partials/metricAgg.html +++ b/public/app/plugins/datasource/elasticsearch/partials/metricAgg.html @@ -1,7 +1,11 @@ -
+
-
-
-
    -
  • - Based on -
  • -
  • - -
  • -
-
-
-
+
+
  • Window
  • - +
-
+
  • Model
  • - +
diff --git a/public/app/plugins/datasource/elasticsearch/query_def.js b/public/app/plugins/datasource/elasticsearch/query_def.js index 03e06c57aad..6e7ae6d5d0a 100644 --- a/public/app/plugins/datasource/elasticsearch/query_def.js +++ b/public/app/plugins/datasource/elasticsearch/query_def.js @@ -13,8 +13,8 @@ function (_) { {text: "Min", value: 'min', requiresField: true}, {text: "Extended Stats", value: 'extended_stats', requiresField: true}, {text: "Percentiles", value: 'percentiles', requiresField: true}, - {text: "Moving Average", value: 'moving_avg', requiresField: false }, - {text: "Derivative", value: 'derivative', requiresField: false }, + {text: "Moving Average", value: 'moving_avg', requiresField: false, isPipelineAgg: true }, + {text: "Derivative", value: 'derivative', requiresField: false, isPipelineAgg: true }, {text: "Unique Count", value: "cardinality", requiresField: true}, {text: "Raw Document", value: "raw_document", requiresField: false} ],