amazon-web-services - 关于 Cloudwatch 警报的困惑

标签 amazon-web-services amazon-cloudwatch

我有一个 Cloudwatch 警报,它从 Canary 接收数据。我的金丝雀尝试访问一个网站,如果网站正常运行并有响应,则数据点为 0,如果服务器返回某种错误,则数据点为 1。我希望这是非常标准的金丝雀。此金丝雀每 30 分钟运行一次。

我的Cloudwatch报警配置如下: enter image description here

如果我的金丝雀连续 3 次无法访问该网站,那么警报应该响起。

不幸的是,这不是正在发生的事情。以下金丝雀数据触发了我的警报:

enter image description here

  1. 2 月 8 日晚上 7:51(MST)
  2. 2 月 8 日晚上 8:22(MST)
  3. 2 月 8 日晚上 9:52(MST)

这三个数据点怎么可能触发我的警报?

我实际收到的邮件是这样的:

您收到这封电子邮件是因为您在美国西部(俄勒冈)区域的 Amazon CloudWatch 警报“....”已进入警报状态,因为“已超过阈值:最近 3 个数据点中有 3 个 [1.0 (09/02/21 04:23:00), 1.0 (09/02/21 02:53:00), 1.0 (09/02/21 02:23:00)] 大于或等于阈值 (1.0) ( OK -> ALARM 转换至少有 3 个数据点)。”在“UTC 时间 2021 年 2 月 9 日星期二 04:53:30”。

我更加困惑,因为这些数据点上的时间不一致。如果我将这些时间转换为 MST,我们有:

  1. 2 月 8 日晚上 7:23
  2. 2 月 8 日晚上 7:53
  3. 2 月 8 日晚上 9:23

报告数据点的时间范围是两个小时的窗口,我明确指定我的评估期为 1.5 小时。

如果我在 cloudwatch 中查看警报的“指标”图表,它就更没有意义了:

enter image description here

这张图中的点如图所示:

  1. 2 月 9 日 @ 2:30 UTC
  2. 2 月 9 日 3:00 UTC
  3. 2 月 9 日 @ 4:30 UTC

同样,这似乎是一个 2 小时的评估期。

帮助?我不明白这一点。

如果我的 Canary 连续 3 次无法访问该网站(两次检查之间等待 30 分钟),我该如何配置警报?

最佳答案

我有两件事要回答这个问题:

  1. 每次金丝雀运行时,都会将 1 个数据点发送到 cloudwatch。因此,如果您在 30 分钟内检查 3 次失败以触发警报,那么您的金丝雀应该每隔 10 分钟运行一次。所以在 30 分钟内 3 个数据点和所有 3 个失败的数据点都会触发警报。

  2. 由于某些原因,统计数据对我不起作用,所以我使用了计数选项。也许这会有所帮助。

我建议每 5 分钟运行一次金丝雀。所以在 30 分钟内有 6 个数据点并为 count=4 创建警报。

关于amazon-web-services - 关于 Cloudwatch 警报的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66123607/

相关文章:

amazon-cloudwatch - 如何在 CloudWatch 订阅中分配特定的 Kinesis 碎片

performance - Spark 流吞吐量监控

python - 无法从 FARGATE 任务内访问实例元数据

node.js - 在亚马逊 lambda 中,并行异步调整多个缩略图大小会引发错误 : Stream yields empty buffer

amazon-web-services - 带有 ConditionExpression 的 DynamoDb

node.js - 在 AWS Cloudwatch 中查找 lambda 函数错误的日志?

javascript - AWS Beanstalk 使用 perl 脚本运行 web 应用程序

amazon-web-services - 将日志发送到AWS ElasticSearch

amazon-web-services - CloudWatch 代理每个实例流

amazon-web-services - CloudWatch 中的自定义指标