mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Cloudwatch dimension_values add dimension filter.
issue #10029 e.g. - dimension_values($region, $namespace, cpu_usage_system, cpu) - dimension_values($region, $namespace, disk_used_percent, device, {"InstanceId": "$instance_id"}) - dimension_values($region, $namespace, disk_used_percent, path, {"InstanceId": "$instance_id", "device": "$device"})
This commit is contained in:
@@ -212,6 +212,7 @@ export default class CloudWatchDatasource {
|
|||||||
var region;
|
var region;
|
||||||
var namespace;
|
var namespace;
|
||||||
var metricName;
|
var metricName;
|
||||||
|
var filterJson;
|
||||||
|
|
||||||
var regionQuery = query.match(/^regions\(\)/);
|
var regionQuery = query.match(/^regions\(\)/);
|
||||||
if (regionQuery) {
|
if (regionQuery) {
|
||||||
@@ -237,14 +238,20 @@ export default class CloudWatchDatasource {
|
|||||||
return this.getDimensionKeys(namespace, region);
|
return this.getDimensionKeys(namespace, region);
|
||||||
}
|
}
|
||||||
|
|
||||||
var dimensionValuesQuery = query.match(/^dimension_values\(([^,]+?),\s?([^,]+?),\s?([^,]+?),\s?([^,]+?)\)/);
|
var dimensionValuesQuery = query.match(
|
||||||
|
/^dimension_values\(([^,]+?),\s?([^,]+?),\s?([^,]+?),\s?([^,]+?)(,\s?(.+))?\)/
|
||||||
|
);
|
||||||
if (dimensionValuesQuery) {
|
if (dimensionValuesQuery) {
|
||||||
region = dimensionValuesQuery[1];
|
region = dimensionValuesQuery[1];
|
||||||
namespace = dimensionValuesQuery[2];
|
namespace = dimensionValuesQuery[2];
|
||||||
metricName = dimensionValuesQuery[3];
|
metricName = dimensionValuesQuery[3];
|
||||||
var dimensionKey = dimensionValuesQuery[4];
|
var dimensionKey = dimensionValuesQuery[4];
|
||||||
|
filterJson = {};
|
||||||
|
if (dimensionValuesQuery[6]) {
|
||||||
|
filterJson = JSON.parse(this.templateSrv.replace(dimensionValuesQuery[6]));
|
||||||
|
}
|
||||||
|
|
||||||
return this.getDimensionValues(region, namespace, metricName, dimensionKey, {});
|
return this.getDimensionValues(region, namespace, metricName, dimensionKey, filterJson);
|
||||||
}
|
}
|
||||||
|
|
||||||
var ebsVolumeIdsQuery = query.match(/^ebs_volume_ids\(([^,]+?),\s?([^,]+?)\)/);
|
var ebsVolumeIdsQuery = query.match(/^ebs_volume_ids\(([^,]+?),\s?([^,]+?)\)/);
|
||||||
@@ -258,7 +265,7 @@ export default class CloudWatchDatasource {
|
|||||||
if (ec2InstanceAttributeQuery) {
|
if (ec2InstanceAttributeQuery) {
|
||||||
region = ec2InstanceAttributeQuery[1];
|
region = ec2InstanceAttributeQuery[1];
|
||||||
var targetAttributeName = ec2InstanceAttributeQuery[2];
|
var targetAttributeName = ec2InstanceAttributeQuery[2];
|
||||||
var filterJson = JSON.parse(this.templateSrv.replace(ec2InstanceAttributeQuery[3]));
|
filterJson = JSON.parse(this.templateSrv.replace(ec2InstanceAttributeQuery[3]));
|
||||||
return this.getEc2InstanceAttribute(region, targetAttributeName, filterJson);
|
return this.getEc2InstanceAttribute(region, targetAttributeName, filterJson);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user