mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -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({
|
return this.awsRequest({
|
||||||
region: region,
|
region: region,
|
||||||
action: 'DescribeInstances',
|
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([]);
|
return $q.when([]);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user