terraform-provider-grafana
terraform-provider-grafana copied to clipboard
cloudprovider: update regions behavior for cloudwatch jobs
This PR implements the Terraform changes needed to accommodate the breaking out of request and response models for CloudWatch scrape jobs. It supports the regionsSubsetOverride field on request, and the return of roleARN, regions, and regionsSubsetOverrideUsed on response.
regionsSubsetOverride not used (default account regions used)
scrape_job = {
"aws_account_resource_id" = "2"
"custom_namespace" = tolist([
{
"metric" = tolist([
{
"name" = "CoolMetric"
"statistics" = toset([
"Maximum",
"Sum",
])
},
])
"name" = "CoolApp"
"scrape_interval_seconds" = 300
},
])
"disabled_reason" = ""
"enabled" = true
"export_tags" = true
"id" = "1:my-cloudwatch-scrape-job"
"name" = "my-cloudwatch-scrape-job"
"regions_subset_override" = toset([])
"service" = tolist([
{
"metric" = tolist([
{
"name" = "CPUUtilization"
"statistics" = toset([
"Average",
])
},
{
"name" = "StatusCheckFailed"
"statistics" = toset([
"Maximum",
])
},
])
"name" = "AWS/EC2"
"resource_discovery_tag_filter" = tolist([
{
"key" = "k8s.io/cluster-autoscaler/enabled"
"value" = "true"
},
])
"scrape_interval_seconds" = 300
"tags_to_add_to_metrics" = toset([
"eks:cluster-name",
])
},
])
"stack_id" = "1"
}
scrape_job_data = {
"aws_account_resource_id" = "2"
"custom_namespace" = tolist([
{
"metric" = tolist([
{
"name" = "CoolMetric"
"statistics" = toset([
"Maximum",
"Sum",
])
},
])
"name" = "CoolApp"
"scrape_interval_seconds" = 300
},
])
"disabled_reason" = ""
"enabled" = true
"export_tags" = true
"id" = "1:my-cloudwatch-scrape-job"
"name" = "my-cloudwatch-scrape-job"
"regions" = toset([
"ap-southeast-1",
"eu-west-3",
"us-east-2",
])
"regions_subset_override_used" = false
"role_arn" = "arn:aws:iam<removed for PR text>"
"service" = tolist([
{
"metric" = tolist([
{
"name" = "CPUUtilization"
"statistics" = toset([
"Average",
])
},
{
"name" = "StatusCheckFailed"
"statistics" = toset([
"Maximum",
])
},
])
"name" = "AWS/EC2"
"resource_discovery_tag_filter" = tolist([
{
"key" = "k8s.io/cluster-autoscaler/enabled"
"value" = "true"
},
])
"scrape_interval_seconds" = 300
"tags_to_add_to_metrics" = toset([
"eks:cluster-name",
])
},
])
"stack_id" = "1"
}
regionsSubsetOverride used
scrape_job = {
"aws_account_resource_id" = "2"
"custom_namespace" = tolist([
{
"metric" = tolist([
{
"name" = "CoolMetric"
"statistics" = toset([
"Maximum",
"Sum",
])
},
])
"name" = "CoolApp"
"scrape_interval_seconds" = 300
},
])
"disabled_reason" = "disabled_by_user"
"enabled" = false
"export_tags" = true
"id" = "1:my-cloudwatch-scrape-job"
"name" = "my-cloudwatch-scrape-job"
"regions_subset_override" = toset([
"eu-west-3",
"us-east-2",
])
"service" = tolist([
{
"metric" = tolist([
{
"name" = "CPUUtilization"
"statistics" = toset([
"Average",
])
},
{
"name" = "StatusCheckFailed"
"statistics" = toset([
"Maximum",
])
},
])
"name" = "AWS/EC2"
"resource_discovery_tag_filter" = tolist([
{
"key" = "k8s.io/cluster-autoscaler/enabled"
"value" = "true"
},
])
"scrape_interval_seconds" = 300
"tags_to_add_to_metrics" = toset([
"eks:cluster-name",
])
},
])
"stack_id" = "1"
}
scrape_job_data = {
"aws_account_resource_id" = "2"
"custom_namespace" = tolist([
{
"metric" = tolist([
{
"name" = "CoolMetric"
"statistics" = toset([
"Maximum",
"Sum",
])
},
])
"name" = "CoolApp"
"scrape_interval_seconds" = 300
},
])
"disabled_reason" = "disabled_by_user"
"enabled" = false
"export_tags" = true
"id" = "1:my-cloudwatch-scrape-job"
"name" = "my-cloudwatch-scrape-job"
"regions" = toset([
"eu-west-3",
"us-east-2",
])
"regions_subset_override_used" = true
"role_arn" = "arn:aws:iam<removed for PR text>"
"service" = tolist([
{
"metric" = tolist([
{
"name" = "CPUUtilization"
"statistics" = toset([
"Average",
])
},
{
"name" = "StatusCheckFailed"
"statistics" = toset([
"Maximum",
])
},
])
"name" = "AWS/EC2"
"resource_discovery_tag_filter" = tolist([
{
"key" = "k8s.io/cluster-autoscaler/enabled"
"value" = "true"
},
])
"scrape_interval_seconds" = 300
"tags_to_add_to_metrics" = toset([
"eks:cluster-name",
])
},
])
"stack_id" = "1"
}