AWS Fargate CloudWatch告警显示数据不足问题排查求助
ECS/Fargate CloudWatch告警「数据不足」问题排查与解决
核心问题:维度配置缺失与指标规则不匹配
1. ECS服务指标的维度遗漏
你当前的告警使用AWS/ECS命名空间的CPUUtilization指标,仅配置了Cluster和Service维度,但Fargate场景下必须添加LaunchType维度。AWS对Fargate的ECS原生指标有明确要求:只有同时指定Cluster、Service、LaunchType=FARGATE三个维度,CloudWatch才能匹配到对应的数据点,否则会返回「数据不足」。
2. ELB指标数据不足的原因
- ELB的默认指标上报周期是300秒(5分钟),但你的告警
Period设为60秒,时间粒度不匹配,导致CloudWatch找不到对应周期的数据; - 如果ELB没有实际流量,
TargetResponseTime这类依赖请求的指标不会生成数据,也会显示「数据不足」。
3. Container Insights与ECS原生指标的区别
你在Container Insights中能看到CPU、内存数据,是因为它用的是ECS/ContainerInsights命名空间,和AWS/ECS原生指标是两套独立的数据源:
- Container Insights通过CloudWatch Agent上报,维度灵活,支持按服务、任务细分;
AWS/ECS原生指标由ECS服务直接上报,维度规则更严格,Fargate场景必须加LaunchType维度。
修正后的告警配置
给CloudFormation配置添加LaunchType维度,调整后的代码如下:
ServerEndpointCPUAlarm: Type: AWS::CloudWatch::Alarm Properties: AlarmDescription: Server endpoint CPU high AlarmName: ServerEndpointCPUHigh AlarmActions: - !Ref AlertTopic ComparisonOperator: GreaterThanOrEqualToThreshold Namespace: AWS/ECS MetricName: CPUUtilization Statistic: Maximum DatapointsToAlarm: 3 EvaluationPeriods: 5 Period: 60 Threshold: 80 Unit: Percent Dimensions: - Name: Cluster Value: !Ref Cluster - Name: Service Value: !Ref ServerEndpointService - Name: LaunchType Value: FARGATE
验证步骤
- 打开CloudWatch控制台的指标浏览器,选择
AWS/ECS命名空间,添加Cluster、Service、LaunchType=FARGATE三个维度,确认是否能看到CPUUtilization的历史数据; - 针对ELB告警,将
Period改为300秒,或先查看ELB的监控图表确认数据是否存在。
内容的提问来源于stack exchange,提问作者Nicklas Karlsson
相关产品推荐
相关产品推荐

