Commit ca67b49d by Torkel Ödegaard

Merge branch 'restrict-tag-keys-values' of https://github.com/lexh/grafana into…

Merge branch 'restrict-tag-keys-values' of https://github.com/lexh/grafana into lexh-restrict-tag-keys-values
parents 63cc794f 463a750c
...@@ -90,6 +90,55 @@ function (angular, _, kbn) { ...@@ -90,6 +90,55 @@ function (angular, _, kbn) {
}); });
}; };
OpenTSDBDatasource.prototype.performMetricKeyValueLookup = function(metric, key) {
if(metric === "") {
throw "Metric not set.";
} else if(key === "") {
throw "Key not set.";
}
var m = metric + "{" + key + "=*}";
var options = {
method: 'GET',
url: this.url + '/api/search/lookup',
params: {
m: m,
}
};
return backendSrv.datasourceRequest(options).then(function(result) {
result = result.data.results;
var tagvs = [];
_.each(result, function(r) {
tagvs.push(r.tags[key]);
});
return tagvs;
});
};
OpenTSDBDatasource.prototype.performMetricKeyLookup = function(metric) {
if(metric === "") {
throw "Metric not set.";
}
var options = {
method: 'GET',
url: this.url + '/api/search/lookup',
params: {
m: metric,
}
};
return backendSrv.datasourceRequest(options).then(function(result) {
result = result.data.results;
var tagks = [];
_.each(result, function(r) {
_.each(r.tags, function(tagv, tagk) {
if(tagks.indexOf(tagk) === -1) {
tagks.push(tagk);
}
});
});
return tagks;
});
};
OpenTSDBDatasource.prototype.testDatasource = function() { OpenTSDBDatasource.prototype.testDatasource = function() {
return this.performSuggestQuery('cpu', 'metrics').then(function () { return this.performSuggestQuery('cpu', 'metrics').then(function () {
return { status: "success", message: "Data source is working", title: "Success" }; return { status: "success", message: "Data source is working", title: "Success" };
......
...@@ -50,13 +50,13 @@ function (angular, _, kbn) { ...@@ -50,13 +50,13 @@ function (angular, _, kbn) {
$scope.suggestTagKeys = function(query, callback) { $scope.suggestTagKeys = function(query, callback) {
$scope.datasource $scope.datasource
.performSuggestQuery(query, 'tagk') .performMetricKeyLookup($scope.target.metric)
.then(callback); .then(callback);
}; };
$scope.suggestTagValues = function(query, callback) { $scope.suggestTagValues = function(query, callback) {
$scope.datasource $scope.datasource
.performSuggestQuery(query, 'tagv') .performMetricKeyValueLookup($scope.target.metric, $scope.target.currentTagKey)
.then(callback); .then(callback);
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment