AWS Cloudwatch - 在 15 分钟的 lambda 超时时不发送警报邮件
Posted
技术标签:
【中文标题】AWS Cloudwatch - 在 15 分钟的 lambda 超时时不发送警报邮件【英文标题】:AWS Cloudwatch - No Alarm-Mail send on lambda timeout of 15 min 【发布时间】:2021-01-07 05:24:12 【问题描述】:我有一个奇怪的问题,我不明白。 我创建了一个 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 Forum 中提出了这个问题,但还没有答案。
谁能建议我做错了什么?
问候汉尼斯
【问题讨论】:
【参考方案1】:根据有关 Lambda function metrics 的 AWS 文档,指标上的时间戳反映了调用函数的时间。根据执行的持续时间,这可能会在指标发出前几分钟。
例如,如果您的函数有 15 分钟超时,您应该查看过去 15 分钟以上的准确指标。由于 AWS 在绝对时间发送警报之前轮询指标状态,您应该将警报参数 EvaluationPeriods 设置为高于 1,然后设置 DatapointsToAlarm和 Period 参数,具体取决于您的 lambda 超时时间以及您希望在发出通知之前对 CloudWatch 中的警报状态进行采样的频率。有关这些参数的更多详细信息可以找到here。
【讨论】:
以上是关于AWS Cloudwatch - 在 15 分钟的 lambda 超时时不发送警报邮件的主要内容,如果未能解决你的问题,请参考以下文章
是否可以确定在 cloudwatch aws 上发送警报的时间?
如何将 AWS Cloudwatch 资源指标数据点保存在其他数据库中
针对 Auto Scaling 组的每个实例的 AWS Cloudwatch 警报
是否有工具可以使用CloudWatch putMetric API将整个内容从AWS QLDB表发布到Cloudwatch?