【问题标题】:AWS CloudWatch Zero Queue Size For One Week alarmAWS CloudWatch 一周警报的零队列大小
【发布时间】:2017-05-05 21:16:12
【问题描述】:

我想知道是否有一种方法可以设置 CloudWatch 警报,如果 SQS 队列 7 天没有收到任何流量就会发出警报。我目前有一个每周在我的主机上运行一次的作业,它保证将消息添加到我的 SQS 队列中,如果作业没有运行,我已经有一种报警方式,但我也想报警,如果出于某种原因作业确实运行但没有向我的队列发送任何消息。我了解您可以设置的最长闹钟时间为 1 天。是否有另一种方法可以创建可以满足我要求的警报?

编辑: 由于我的工作每周运行一次,有没有办法设置一个警报,每隔 7 天监控一次指标,看看在 24 小时内是否有任何流量进入队列?看到这 6 天之间的时间更准确,我不期望也不关心是否有任何交通,只是第 7 天有交通。

【问题讨论】:

  • 如果您的队列在几个小时内完全处于非活动状态,SQS 会将其置于某种睡眠模式并停止向 CloudWatch 发送统计信息。所以你实际上可能有 2 个问题需要解决。
  • @Michael-sqlbot - 借助 CloudWatch 警报,您现在可以选择如何处理丢失的数据。您可以将其视为坏(超出阈值)、好(未超出)或忽略它:aws.amazon.com/about-aws/whats-new/2017/03/…
  • @Tartaglia 很棒。感谢您提请我注意。

标签: amazon-web-services amazon-cloudwatch amazon-cloudwatch-metrics


【解决方案1】:

CloudWatch 警报设置了 period * number_of_datapoints_to_watch 必须少于 24 小时的限制。据我所知,没有办法解决。

要获得您想要的行为,您可以自己计算 自上次活动以来的天数,将其发布为自定义指标并对此发出警报。

一种方法是:

  1. 例如,创建一个 lambda 函数并让它每小时触发一次。
  2. 在 lambda 中,为您要监控的 SQS 指标调用 CloudWatch GetMetricStatistics。
  3. 获取返回的值大于 0 的最新数据点,并计算现在与该数据点上的时间戳之间的差异。
  4. 使用 CloudWatch PutMetricData 将此值发布到您的新指标 days-since-last-activity
  5. 现在您可以在新指标的值超过 7 天时发出警报。

【讨论】:

    猜你喜欢
    • 2021-05-25
    • 2019-07-14
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多