0

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

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

4

1 回答 1

2

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 天时发出警报。
于 2017-05-06T10:48:26.253 回答