From b01b121a4b573eff975b33bfe239044459c392db Mon Sep 17 00:00:00 2001 From: Mike Kobyakov Date: Wed, 25 Mar 2015 14:32:26 -0700 Subject: [PATCH] Instead of hard-coding the OpenTsdb aggregators list, pull the supported aggregators from the datasource directly. --- .../app/plugins/datasource/opentsdb/datasource.js | 14 ++++++++++++++ .../app/plugins/datasource/opentsdb/queryCtrl.js | 6 ++++++ 2 files changed, 20 insertions(+) diff --git a/public/app/plugins/datasource/opentsdb/datasource.js b/public/app/plugins/datasource/opentsdb/datasource.js index cd0c83b7c1d..8e59b71c551 100644 --- a/public/app/plugins/datasource/opentsdb/datasource.js +++ b/public/app/plugins/datasource/opentsdb/datasource.js @@ -90,6 +90,20 @@ function (angular, _, kbn) { }); }; + OpenTSDBDatasource.prototype.performAggregatorsQuery = function() { + var options = { + method: 'GET', + url: this.url + '/api/aggregators' + }; + return $http(options).then(function(result) { + if (result.data instanceof Array) { + return result.data.sort(); + } else { + return result.data; + } + }); + }; + function transformMetricData(md, groupByTags, options) { var metricLabel = createMetricLabel(md, options, groupByTags); var dps = []; diff --git a/public/app/plugins/datasource/opentsdb/queryCtrl.js b/public/app/plugins/datasource/opentsdb/queryCtrl.js index 576517a50b6..f62165e997a 100644 --- a/public/app/plugins/datasource/opentsdb/queryCtrl.js +++ b/public/app/plugins/datasource/opentsdb/queryCtrl.js @@ -14,6 +14,12 @@ function (angular, _, kbn) { $scope.target.errors = validateTarget($scope.target); $scope.aggregators = ['avg', 'sum', 'min', 'max', 'dev', 'zimsum', 'mimmin', 'mimmax']; + $scope.datasource.performAggregatorsQuery().then(function(result) { + if (result) { + $scope.aggregators = result; + } + }); + if (!$scope.target.aggregator) { $scope.target.aggregator = 'sum'; }