1

我有一个奇怪的问题,我不明白。我创建了一个 cloudwatch 警报,它应该通知我 lambda 执行中的错误(包括超时)。

报警的相关参数如下:

period = "300"
datapoints_to_alarm = "1"
evaluation_periods = "1"
treat_missing_data = "notBreaching"
statistic = "Sum"
threshold = "0"
metric_name = "Errors"
namespace = "AWS/Lambda"
alarm_actions = http:// aws_sns_topic.alarm.arn

当我的 lambda 在 15 分钟(最大 Lambda 执行时间)后超时时,不会向我发送任何电子邮件。当我的 lambda 在 2、6、10 或 14 分钟后超时时,我将按预期收到通知电子邮件。即使在 14 分 30 秒时,也会发送邮件。超过 14:30 分钟,指标不会切换到警报状态。

有人知道为什么会这样吗?数据点(错误)在指标中正确显示。似乎该点(错误)设置为 lambda 的开始日期。这可能是问题吗?因为自 lambda 开始以来已经过去了 3 个评估期?但是为什么我在 14 分钟后超时运行时收到警报邮件(也是一个以上的评估期)。

已经在AWS 论坛中问过这个问题,但还没有答案。

谁能建议我做错了什么?

问候汉内斯

4

1 回答 1

1

根据有关Lambda 函数指标的 AWS 文档,指标上的时间戳反映了调用函数的时间。根据执行的持续时间,这可能是在发布指标之前的几分钟。

例如,如果您的函数有 15 分钟超时,您应该查看过去 15 分钟以上的准确指标。由于 AWS 在绝对时间发送警报之前轮询指标状态,因此您应该将警报参数EvaluationPeriods设置为高于 1,然后根据您的 lambda 超时设置DatapointsToAlarmPeriod参数以及您希望在 CloudWatch 中对警报状态进行采样的频率在发出通知之前。可以在此处找到有关这些参数的更多详细信息。

于 2020-11-22T15:34:20.050 回答