Merge pull request #2005 from masaori335/kairosdb-template

Templated dashboards support in KairosDB Plugin
This commit is contained in:
Torkel Ödegaard 2015-05-17 15:56:52 +02:00
commit 65796d7477

View File

@ -9,7 +9,7 @@ function (angular, _, kbn) {
var module = angular.module('grafana.services'); var module = angular.module('grafana.services');
module.factory('KairosDBDatasource', function($q, $http) { module.factory('KairosDBDatasource', function($q, $http, templateSrv) {
function KairosDBDatasource(datasource) { function KairosDBDatasource(datasource) {
this.type = datasource.type; this.type = datasource.type;
@ -186,7 +186,7 @@ function (angular, _, kbn) {
} }
var query = { var query = {
name: target.metric name: templateSrv.replace(target.metric)
}; };
query.aggregators = []; query.aggregators = [];
@ -236,13 +236,20 @@ function (angular, _, kbn) {
if (target.tags) { if (target.tags) {
query.tags = angular.copy(target.tags); query.tags = angular.copy(target.tags);
_.forOwn(query.tags, function(value, key) {
query.tags[key] = _.map(value, function(tag) { return templateSrv.replace(tag); });
});
} }
if (target.groupByTags || target.nonTagGroupBys) { if (target.groupByTags || target.nonTagGroupBys) {
query.group_by = []; query.group_by = [];
if (target.groupByTags) { if (target.groupByTags) {
query.group_by.push({name: "tag", tags: angular.copy(target.groupByTags)}); query.group_by.push({
name: "tag",
tags: _.map(angular.copy(target.groupByTags), function(tag) { return templateSrv.replace(tag); })
});
} }
if (target.nonTagGroupBys) { if (target.nonTagGroupBys) {
_.each(target.nonTagGroupBys, function(rawGroupBy) { _.each(target.nonTagGroupBys, function(rawGroupBy) {
var formattedGroupBy = angular.copy(rawGroupBy); var formattedGroupBy = angular.copy(rawGroupBy);
@ -261,6 +268,8 @@ function (angular, _, kbn) {
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
KairosDBDatasource.prototype.convertToKairosInterval = function(intervalString) { KairosDBDatasource.prototype.convertToKairosInterval = function(intervalString) {
intervalString = templateSrv.replace(intervalString);
var interval_regex = /(\d+(?:\.\d+)?)([Mwdhmsy])/; var interval_regex = /(\d+(?:\.\d+)?)([Mwdhmsy])/;
var interval_regex_ms = /(\d+(?:\.\d+)?)(ms)/; var interval_regex_ms = /(\d+(?:\.\d+)?)(ms)/;
var matches = intervalString.match(interval_regex_ms); var matches = intervalString.match(interval_regex_ms);