diff --git a/public/app/plugins/datasource/kairosdb/datasource.js b/public/app/plugins/datasource/kairosdb/datasource.js index 9d25b694891..64e9c4c9b49 100644 --- a/public/app/plugins/datasource/kairosdb/datasource.js +++ b/public/app/plugins/datasource/kairosdb/datasource.js @@ -18,7 +18,6 @@ function (angular, _, kbn) { this.url = datasource.url; this.name = datasource.name; this.supportMetrics = true; - this.grafanaDB = datasource.grafanaDB; } // Called once per panel (graph) @@ -85,11 +84,11 @@ function (angular, _, kbn) { method : 'GET' }; - return $http(options).then(function(results) { - if (!results.data) { + return $http(options).then(function(response) { + if (!response.data) { return []; } - return results.data.results; + return response.data.results; }); }; diff --git a/public/app/plugins/datasource/kairosdb/partials/query.editor.html b/public/app/plugins/datasource/kairosdb/partials/query.editor.html index 6fa3401dad7..c72a242165b 100644 --- a/public/app/plugins/datasource/kairosdb/partials/query.editor.html +++ b/public/app/plugins/datasource/kairosdb/partials/query.editor.html @@ -38,14 +38,15 @@ Metric
  • - + diff --git a/public/app/plugins/datasource/kairosdb/queryCtrl.js b/public/app/plugins/datasource/kairosdb/queryCtrl.js index 1a083fd4e00..716274ffe0a 100644 --- a/public/app/plugins/datasource/kairosdb/queryCtrl.js +++ b/public/app/plugins/datasource/kairosdb/queryCtrl.js @@ -6,15 +6,12 @@ function (angular, _) { 'use strict'; var module = angular.module('grafana.controllers'); - var metricList = null; + var metricList = []; + var targetLetters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O']; module.controller('KairosDBQueryCtrl', function($scope) { $scope.init = function() { - $scope.metric = { - list: ["Loading..."], - value: "Loading..." - }; $scope.panel.stack = false; if (!$scope.panel.downsampling) { $scope.panel.downsampling = 'avg'; @@ -23,12 +20,12 @@ function (angular, _) { $scope.target.downsampling = $scope.panel.downsampling; $scope.target.sampling = $scope.panel.sampling; } + $scope.targetLetters = targetLetters; $scope.updateMetricList(); $scope.target.errors = validateTarget($scope.target); }; $scope.targetBlur = function() { - $scope.target.metric = $scope.metric.value; $scope.target.errors = validateTarget($scope.target); if (!_.isEqual($scope.oldTarget, $scope.target) && _.isEmpty($scope.target.errors)) { $scope.oldTarget = angular.copy($scope.target); @@ -53,22 +50,16 @@ function (angular, _) { _.move($scope.panel.targets, fromIndex, toIndex); }; - // Fetch metric list - $scope.updateMetricList = function() { - $scope.metricListLoading = true; - metricList = []; - $scope.datasource.performMetricSuggestQuery().then(function(series) { - metricList = series; - $scope.metric.list = series; - if ($scope.target.metric) { - $scope.metric.value = $scope.target.metric; - } - else { - $scope.metric.value = ""; - } - $scope.metricListLoading = false; + $scope.suggestMetrics = function(query, callback) { + if (!_.isEmpty(metricList)) { return metricList; - }); + } + else { + $scope.datasource.performMetricSuggestQuery().then(function(result) { + metricList = result; + callback(metricList); + }); + } }; $scope.suggestTagKeys = function(query, callback) {