如何在AWS CDK中为已存在的CloudWatch指标创建告警?
在AWS CDK中为API Gateway的CloudWatch指标配置告警
API Gateway的CloudWatch指标默认归属AWS/ApiGateway命名空间,4XXError和5XXError是平台自动生成的现成指标,不需要额外"导入"操作,直接通过CDK的Metric类指定正确的参数就能关联这些指标并创建告警。
以下是针对API Gateway 5XXError指标的告警配置示例,你可以根据需求替换为4XXError:
import { Alarm, Metric, Duration } from 'aws-cdk-lib/aws-cloudwatch'; import { SnsAction } from 'aws-cdk-lib/aws-cloudwatch-actions'; // 假设你已提前定义好告警通知用的SNS Topic const alertsTopic = ...; // 创建API Gateway 5XX错误告警 const apiGateway5xxAlarm = new Alarm(this, 'ApiGateway5xxErrorAlarm', { alarmDescription: 'API Gateway出现5XX服务器错误时触发告警', metric: new Metric({ namespace: 'AWS/ApiGateway', // API Gateway指标的固定命名空间 metricName: '5XXError', // 目标指标名称,替换为4XXError可监控客户端错误 statistic: 'Sum', // 统计方式:Sum统计总错误数,Average统计错误率,按需选择 period: Duration.minutes(1), dimensionsMap: { ApiName: 'YourApiName', // 替换为你的API名称 Stage: 'prod' // 替换为你的API部署阶段,比如prod、test // 可选维度:Resource(特定API资源路径)、Method(HTTP方法),用于更细粒度监控 }, label: 'API Gateway 5XX错误总数', }), threshold: 3, // 阈值:比如1分钟内出现3次及以上错误触发告警 evaluationPeriods: 1, datapointsToAlarm: 1, }); // 绑定告警动作:触发时发送通知到指定SNS Topic apiGateway5xxAlarm.addAlarmAction(new SnsAction(alertsTopic));
关键参数说明
- 命名空间:必须指定为
AWS/ApiGateway,这是API Gateway指标在CloudWatch中的固定归属空间 - 维度配置:根据监控粒度选择,常用维度包括
ApiName(区分不同API)、Stage(区分部署环境),添加Resource和Method可以精准监控某个接口的错误情况 - 统计方式:如果关注错误总数选
Sum,关注错误率则选Average(此时阈值需设为0.01这类比例值)
内容的提问来源于stack exchange,提问作者Myra Faisal
相关产品推荐
相关产品推荐

