Terraform创建的CloudWatch指标告警显示数据不足,UI创建则正常
问题原因及解决方案
核心问题:维度配置错误
你遇到的问题根源在于CloudWatch指标维度不匹配:TotalBackupStorageBilled是Amazon Aurora的集群级指标,对应的维度应该是DBClusterIdentifier,而非Terraform代码中使用的DBInstanceIdentifier。
Aurora的备份存储用量是按集群整体统计的,单个实例维度下不存在这个指标数据,所以Terraform创建的告警找不到对应数据,一直处于Insufficient Data状态;而你在控制台创建时,大概率选择了Aurora集群作为监控对象,控制台自动匹配了正确的DBClusterIdentifier维度,因此能正常获取数据,状态显示为OK。
修正后的Terraform代码
将dimensions块中的DBInstanceIdentifier替换为DBClusterIdentifier,并填入你的Aurora集群ID:
resource "aws_cloudwatch_metric_alarm" "storage_alarm" { alarm_name = "rds-storage-alarm" comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 # 建议用数字类型,而非字符串,避免类型转换问题 metric_name = "TotalBackupStorageBilled" namespace = "AWS/RDS" period = 300 # 同上,数字类型更规范 statistic = "average" # 针对存储用量这类Gauge指标,用average更合适 threshold = 30 # 数字类型 dimensions = { DBClusterIdentifier = "your-aurora-cluster-id" # 替换为你的集群ID } }
额外优化建议
- 将
evaluation_periods、period、threshold从字符串改为数字类型:虽然Terraform会自动进行类型转换,但直接使用数字更符合HCL规范,避免潜在的类型兼容问题。 - 调整统计量为
average:TotalBackupStorageBilled是代表当前备份存储用量的Gauge指标,使用average统计量能更准确反映周期内的实际用量;sum更适合累计类的Counter指标。
内容的提问来源于stack exchange,提问作者user21060710
相关产品推荐
相关产品推荐

