mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
add metricFindQuery
This commit is contained in:
parent
6ffab821b2
commit
deedd166db
@ -315,6 +315,61 @@ function (angular, _, kbn) {
|
||||
return d.promise;
|
||||
};
|
||||
|
||||
CloudWatchDatasource.prototype.metricFindQuery = function(query) {
|
||||
var region;
|
||||
var namespace;
|
||||
var metricName;
|
||||
var dimensions;
|
||||
|
||||
var transformSuggestData = function(suggestData) {
|
||||
return _.map(suggestData, function(v) {
|
||||
return { text: v };
|
||||
});
|
||||
};
|
||||
|
||||
var d = $q.defer();
|
||||
|
||||
var regionQuery = query.match(/^region\(\)/);
|
||||
if (regionQuery) {
|
||||
d.resolve(transformSuggestData(this.performSuggestRegion()));
|
||||
return d.promise;
|
||||
}
|
||||
|
||||
var namespaceQuery = query.match(/^namespace\(\)/);
|
||||
if (namespaceQuery) {
|
||||
d.resolve(transformSuggestData(this.performSuggestNamespace()));
|
||||
return d.promise;
|
||||
}
|
||||
|
||||
var metricNameQuery = query.match(/^metrics\(([^\)]+?)\)/);
|
||||
if (metricNameQuery) {
|
||||
namespace = metricNameQuery[1];
|
||||
d.resolve(transformSuggestData(this.performSuggestMetrics(namespace)));
|
||||
return d.promise;
|
||||
}
|
||||
|
||||
var dimensionKeysQuery = query.match(/^dimension_keys\(([^\)]+?)\)/);
|
||||
if (dimensionKeysQuery) {
|
||||
namespace = dimensionKeysQuery[1];
|
||||
d.resolve(transformSuggestData(this.performSuggestDimensionKeys(namespace)));
|
||||
return d.promise;
|
||||
}
|
||||
|
||||
var dimensionValuesQuery = query.match(/^dimension_values\(([^,]+?),\s?([^,]+?),\s?([^,]+?),\s?([^,]+?)\)/);
|
||||
if (dimensionValuesQuery) {
|
||||
region = dimensionValuesQuery[1];
|
||||
namespace = dimensionValuesQuery[2];
|
||||
metricName = dimensionValuesQuery[3];
|
||||
dimensions = {};
|
||||
var targetDimensionKey = dimensionValuesQuery[4];
|
||||
|
||||
return this.performSuggestDimensionValues(region, namespace, metricName, dimensions, targetDimensionKey)
|
||||
.then(transformSuggestData);
|
||||
}
|
||||
|
||||
return $q.when([]);
|
||||
};
|
||||
|
||||
CloudWatchDatasource.prototype.testDatasource = function() {
|
||||
/* use billing metrics for test */
|
||||
var region = 'us-east-1';
|
||||
|
Loading…
Reference in New Issue
Block a user