You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Terraform创建含多指标与多表达式的AWS EFS CloudWatch告警?

解决EFS吞吐量利用率CloudWatch告警的Insufficient Data问题

核心逻辑梳理

EFS吞吐量利用率的计算依赖两个指标的数学组合:

  • TotalIOBytes:统计周期内的总IO字节数,需用Sum聚合
  • ThroughputCapacity:EFS的实时吞吐量容量,需用Average聚合
    最终公式:(TotalIOBytes总和 / ThroughputCapacity平均值) * 100

正确的Terraform配置示例

不能嵌套metric_query块,每个指标和表达式都要作为独立块,用id关联:

resource "aws_cloudwatch_metric_alarm" "efs_throughput_utilization" {
  alarm_name          = "EFS-Throughput-Utilization-Alarm"
  comparison_operator = "GreaterThanThreshold"
  evaluation_periods  = 2
  threshold           = 80 # 阈值可按需调整
  alarm_description   = "EFS吞吐量利用率超过80%时触发告警"
  alarm_actions       = [aws_sns_topic.efs_alerts.arn] # 替换为你的告警接收SNS Topic

  # 定义TotalIOBytes指标,仅用于后续计算
  metric_query {
    id          = "total_io"
    return_data = false
    metric {
      namespace   = "AWS/EFS"
      metric_name = "TotalIOBytes"
      dimensions = {
        FileSystemId = aws_efs_file_system.my_efs.id # 替换为你的EFS实例ID
      }
      stat   = "Sum"
      period = 60
    }
  }

  # 定义ThroughputCapacity指标,仅用于后续计算
  metric_query {
    id          = "throughput_capacity"
    return_data = false
    metric {
      namespace   = "AWS/EFS"
      metric_name = "ThroughputCapacity"
      dimensions = {
        FileSystemId = aws_efs_file_system.my_efs.id
      }
      stat   = "Average"
      period = 60
    }
  }

  # 计算最终利用率的表达式,作为告警依据
  metric_query {
    id          = "utilization"
    return_data = true
    expression  = "(total_io / throughput_capacity) * 100"
    label       = "Throughput Utilization (%)"
  }
}

Insufficient Data问题排查清单

  1. 维度匹配错误:检查FileSystemId是否和目标EFS实例的ID完全一致,大小写敏感
  2. 聚合方式错误:TotalIOBytes必须用Sum,ThroughputCapacity必须用Average,错用会导致无有效数据
  3. return_data配置错误:只有最终表达式块设为true,前置指标块必须设为false,否则CloudWatch会尝试单独返回这些指标,引发数据异常
  4. 表达式ID引用错误:表达式里的total_io、throughput_capacity必须和对应metric_query的id完全一致
  5. EFS实例状态:确认EFS处于运行状态且有实际IO操作,空实例不会上报指标
  6. 数据延迟:新创建的EFS实例通常需要5-15分钟才会开始向CloudWatch上报指标,耐心等待后再查看告警状态

内容的提问来源于stack exchange,提问作者striker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 15:42:06