AWS中的API网关为CloudWatch中的不同API创建了4XXError和5XXError指标。我需要在CDK中为这些已经存在的指标设置警报。
我找不到如何在CDK中导入预先存在的CloudWatch指标。有人能帮我了解代码块的查找方式吗?
目前,代码看起来像这个
const externalPaymentFailedAlarm = new Alarm(
this,
`ExternalPaymentFailedAlarm`,
{
alarmDescription: `Alarm if external payment failed`,
metric: new Metric({
namespace: "v1/events",
statistic: "SampleCount",
metricName: "PUBLISH_SUCCESS",
period: Duration.minutes(1),
dimensionsMap: {
EventName: "external_payment_failed",
ServiceName: `${stage}-payment-failed`,
LogGroup: `${stage}-payment-failed`,
ServiceType: "AWS::Lambda::Function",
},
label: "External payment failed count",
}),
threshold: 1,
evaluationPeriods: 1,
datapointsToAlarm: 1,
}
);
externalPaymentFailedAlarm.addAlarmAction(new SnsAction(alertsTopic));
CloudWatch指标是一个非常;ephemereal";在AWS中,它们不存在于其数据点之外。
所以"导入";度量很简单,只需指定其名称空间、名称和维度,而不管它是否已经";存在";(即是否存在具有相同名称空间、名称和维度的数据点(。
因此,只要参数与AWS服务发出的数据点匹配,您在问题中的代码块中所做的正是所需的。
如果您的API是使用更高级别的L2构造在CDK中定义的,那么您可以使用所提供的抽象。例如,HttpApi.metricServerError()
将为您提供对特定API发出的度量的引用。
这是处理CDK中标准度量的首选方法。