例如,我要针对以下事件触发CloudWatch警报:

Number of messages sent-Number of messages deleted> = 6

以上内容适用于AWS SQS指标。而且我希望该指标在触发警报时触发AWS Lambda。

我有什么办法可以做到?如果不是,那么是否有任何变通办法[针对无服务器范式]

[我想要这样做,因为没有度量标准可以告诉我队列中当前(可用)的消息数]。
所以,如果有一个指标可以给我带来帮助,那将是非常有用的

评论

这是一个很好的问题,但是在大多数情况下,纯指标不足以设置警报,并且需要构建中间数量并将其导出到CloudWatch。例如一组指标的最大值,指标的变化率,相对于目标值的差值。

#1 楼

对于最后一个总体目标,我将在SQS上的Cloudwatch文档中的ApproximateNumberOfMessagesVisible上设置警报,该警报是:


可从队列中检索的消息数。

单位:计数

有效统计数据:平均值,最小值,最大值,总和,数据样本
(在Amazon SQS控制台中显示为样本计数)



对于更通用的计算指标问题,我将使用lambda优先运行,从cloudwatch收集指标,进行数学运算并推回cloudwatch。从Cloudwatch收集数据以推动Elasticsearch。通过文档中的示例,您应该能够从lambda推回指标。

请注意,当您每月收到超过100万个请求时,调用cloudwatch API来收集和推送指标会产生成本。其他注意事项,以免破坏您的预算/工作流程。

评论


谢谢(+1)。几分钟后,我想出了:D。但是,我不确定其中的“近似”一词。为什么能估算出可用消息的确切数量?

– Dawny33♦
17 Mar 2 '17 at 10:22

由于指标是定期提取的,因此它们不能保证在收集时间和演示时间之间队列没有变化。

–滕西拜
17 Mar 2 '17 at 10:34

#2 楼

最近,AWS刚刚发布了适用于您的用例的CloudWatch Metric Math。

参考:-


Amazon CloudWatch添加了Metric Math以启用对Metrics的自定义操作
基于度量数学表达式创建CloudWatch警报