问题描述
当出于某种原因尝试使用Terraform设置某些CloudWatch警报时,它找不到指标,并且警报仍然停留在数据不足的状态.Terraform不会输出任何错误,如果我在AWS中手动搜索,我可以找到指标.我在这里想念什么?
When trying to setup some CloudWatch alarms using Terraform for some reason it doesn't find the metrics and the alarm remains stuck in insufficient data. Terraform doesn't output any errors and I can find the metrics if I search manually in AWS. What am I missing here?
以简单的健康主机警报点为目标组的示例:
Example a simple healthy host alarm point to a target group:
#healthy host alarm
resource "aws_cloudwatch_metric_alarm" "health" {
alarm_name = "${var.tag_app}_healthy_host"
comparison_operator = "LessThanThreshold"
evaluation_periods = "1"
metric_name = "HealthyHostCount"
namespace = "AWS/ApplicationELB"
period = "60"
statistic = "Maximum"
threshold = "1"
alarm_description = "Healthy host count for EC2 machine"
alarm_actions = ["${data.aws_sns_topic.blabla.arn}"]
ok_actions = ["${data.aws_sns_topic.blabla.arn}"]
dimensions = {
TargetGroup = "${aws_lb_target_group.alb_target.arn_suffix}"
}
}
当我选择另一个资源(EC2,RDS)和另一个指标时,我收到一个CloudWatch警报,指向正确的指标,并且它不会因数据不足而停留.
When I select another resource (EC2, RDS) and another metric I get a CloudWatch alarm pointing to the right metric and it doesn't remain stuck at insufficient data.
推荐答案
HealthyHostCount
指标仅在 TargetGroup,LoadBalancer
维度或 TargetGroup,AvailabilityZone,LoadBalancer中可用
,因此您至少还需要添加 LoadBalancer
维度才能访问此指标.
The HealthyHostCount
metric is only available under either the TargetGroup, LoadBalancer
dimensions or the TargetGroup, AvailabilityZone, LoadBalancer
so you need to at least add the LoadBalancer
dimension as well to access this metric.
因此,您的Terraform代码应改为:
So your Terraform code should instead be:
#healthy host alarm
resource "aws_cloudwatch_metric_alarm" "health" {
alarm_name = "${var.tag_app}_healthy_host"
comparison_operator = "LessThanThreshold"
evaluation_periods = "1"
metric_name = "HealthyHostCount"
namespace = "AWS/ApplicationELB"
period = "60"
statistic = "Maximum"
threshold = "1"
alarm_description = "Healthy host count for EC2 machine"
alarm_actions = ["${data.aws_sns_topic.blabla.arn}"]
ok_actions = ["${data.aws_sns_topic.blabla.arn}"]
dimensions = {
LoadBalancer = "${aws_lb.example.arn_suffix}"
TargetGroup = "${aws_lb_target_group.alb_target.arn_suffix}"
}
}
这篇关于使用Terraform的CloudWatch指标警报的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!