如何设置CloudWatch告警以监控多个指标的组合

80次阅读
没有评论

问题描述

想要设置一个CloudWatch告警,以监控以下指标的组合:
– 发送的消息数量(Number of messages sent)
– 删除的消息数量(Number of messages deleted)

用户希望当这个组合的值大于等于6时,触发一个CloudWatch告警。并且,如果告警触发,希望能够触发AWS Lambda函数。

用户还提到,他希望能够获取队列中当前可用消息数量的指标,但是目前没有这样的指标。

用户还提到,纯粹的指标通常不足以设置告警,需要构建和导出中间量到CloudWatch,例如一组指标的最大值、指标的变化率、与目标值的差值等。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

对于用户的整体目标,我们可以设置一个基于CloudWatch的告警,监控SQS的ApproximateNumberOfMessagesVisible指标。根据CloudWatch关于SQS的文档ApproximateNumberOfMessagesVisible指标表示队列中可供检索的消息数量。

以下是设置告警的步骤:
1. 打开CloudWatch控制台。
2. 在导航栏中,选择Alarms
3. 单击Create alarm
4. 在Create Alarm页面,选择Select metric
5. 在Browse选项卡中,选择SQS
6. 在Queue Metrics下,选择ApproximateNumberOfMessagesVisible
7. 在Conditions部分,设置条件为GreaterThanOrEqualToThreshold,并将阈值设置为6。
8. 在Actions部分,选择要触发的操作,例如触发AWS Lambda函数。
9. 单击Create alarm

请注意,ApproximateNumberOfMessagesVisible指标是近似值,因为指标是定期获取的,无法保证在获取和显示之间队列中没有变化。

方案2

最近AWS刚刚推出了CloudWatch Metric Math,这应该适用于您的用例。

您可以参考以下文档:
Amazon CloudWatch Adds Metric Math to Enable Custom Operations on Metrics
Create a CloudWatch Alarm Based on a Metric Math Expression

请注意,使用CloudWatch API获取和推送指标会产生费用,当请求数超过每月100万次时,会有额外的费用。还有其他一些限制需要注意,以避免超出预算或工作流程的限制。

以上是两种解决方案,您可以根据您的具体需求选择适合您的方案。

正文完