mirror of
https://github.com/grafana/grafana.git
synced 2024-11-27 19:30:36 -06:00
feat(annotations): annotations can now use a template variable as data source, closes #5054
This commit is contained in:
parent
43ba563a1c
commit
1da149d9e1
@ -4,7 +4,7 @@
|
|||||||
"company": "Coding Instinct AB"
|
"company": "Coding Instinct AB"
|
||||||
},
|
},
|
||||||
"name": "grafana",
|
"name": "grafana",
|
||||||
"version": "3.0.2",
|
"version": "3.0.3",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "http://github.com/grafana/grafana.git"
|
"url": "http://github.com/grafana/grafana.git"
|
||||||
|
@ -66,14 +66,17 @@ function (angular, _, coreModule, config) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.getAnnotationSources = function() {
|
this.getAnnotationSources = function() {
|
||||||
return _.reduce(config.datasources, function(memo, value) {
|
var sources = [];
|
||||||
|
|
||||||
|
this.addDataSourceVariables(sources);
|
||||||
|
|
||||||
|
_.each(config.datasources, function(value) {
|
||||||
if (value.meta && value.meta.annotations) {
|
if (value.meta && value.meta.annotations) {
|
||||||
memo.push(value);
|
sources.push(value);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return memo;
|
return sources;
|
||||||
}, []);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.getMetricSources = function(options) {
|
this.getMetricSources = function(options) {
|
||||||
@ -90,24 +93,7 @@ function (angular, _, coreModule, config) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (!options || !options.skipVariables) {
|
if (!options || !options.skipVariables) {
|
||||||
// look for data source variables
|
this.addDataSourceVariables(metricSources);
|
||||||
for (var i = 0; i < templateSrv.variables.length; i++) {
|
|
||||||
var variable = templateSrv.variables[i];
|
|
||||||
if (variable.type !== 'datasource') {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var first = variable.current.value;
|
|
||||||
var ds = config.datasources[first];
|
|
||||||
|
|
||||||
if (ds) {
|
|
||||||
metricSources.push({
|
|
||||||
name: '$' + variable.name,
|
|
||||||
value: '$' + variable.name,
|
|
||||||
meta: ds.meta,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
metricSources.sort(function(a, b) {
|
metricSources.sort(function(a, b) {
|
||||||
@ -123,6 +109,27 @@ function (angular, _, coreModule, config) {
|
|||||||
return metricSources;
|
return metricSources;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.addDataSourceVariables = function(list) {
|
||||||
|
// look for data source variables
|
||||||
|
for (var i = 0; i < templateSrv.variables.length; i++) {
|
||||||
|
var variable = templateSrv.variables[i];
|
||||||
|
if (variable.type !== 'datasource') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
var first = variable.current.value;
|
||||||
|
var ds = config.datasources[first];
|
||||||
|
|
||||||
|
if (ds) {
|
||||||
|
list.push({
|
||||||
|
name: '$' + variable.name,
|
||||||
|
value: '$' + variable.name,
|
||||||
|
meta: ds.meta,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
this.init();
|
this.init();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -30,7 +30,7 @@ function (angular, _, $) {
|
|||||||
$scope.datasourceChanged = function() {
|
$scope.datasourceChanged = function() {
|
||||||
return datasourceSrv.get($scope.currentAnnotation.datasource).then(function(ds) {
|
return datasourceSrv.get($scope.currentAnnotation.datasource).then(function(ds) {
|
||||||
$scope.currentDatasource = ds;
|
$scope.currentDatasource = ds;
|
||||||
$scope.currentAnnotation.datasource = ds.name;
|
$scope.currentAnnotation.datasource = $scope.currentAnnotation.datasource;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user