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) {