mirror of
https://github.com/grafana/grafana.git
synced 2025-02-10 23:55:47 -06:00
(cloudwatch) add ec2_instance_attribute() query
This commit is contained in:
parent
c09d506245
commit
0052e9d136
@ -143,7 +143,7 @@ function (angular, _, moment, dateMath, CloudWatchAnnotationQuery) {
|
||||
return this.awsRequest({
|
||||
region: region,
|
||||
action: 'DescribeInstances',
|
||||
parameters: { filter: filters, instanceIds: instanceIds }
|
||||
parameters: { filters: filters, instanceIds: instanceIds }
|
||||
});
|
||||
};
|
||||
|
||||
@ -205,6 +205,28 @@ function (angular, _, moment, dateMath, CloudWatchAnnotationQuery) {
|
||||
});
|
||||
}
|
||||
|
||||
var ec2InstanceAttributeQuery = query.match(/^ec2_instance_attribute\(([^,]+?),\s?([^,]+?),\s?([^)]+)\)/);
|
||||
if (ec2InstanceAttributeQuery) {
|
||||
region = templateSrv.replace(ec2InstanceAttributeQuery[1]);
|
||||
var filterJson = JSON.parse(templateSrv.replace(ec2InstanceAttributeQuery[3]));
|
||||
var filter = _.map(filterJson, function(f) {
|
||||
return {
|
||||
Name: f.slice(0, f.indexOf('=')),
|
||||
Values: f.slice(f.indexOf('=') + 1).split(',')
|
||||
};
|
||||
});
|
||||
var targetAttributeName = templateSrv.replace(ec2InstanceAttributeQuery[2]);
|
||||
|
||||
return this.performEC2DescribeInstances(region, filter, null).then(function(result) {
|
||||
var attributes = _.chain(result.Reservations)
|
||||
.map(function(reservations) {
|
||||
return _.pluck(reservations.Instances, targetAttributeName);
|
||||
})
|
||||
.flatten().value();
|
||||
return transformSuggestData(attributes);
|
||||
});
|
||||
}
|
||||
|
||||
return $q.when([]);
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user