每当SES电子邮件退回时,我都会发布一个SNS主题。我设置了CloudWatch警报,以便在过去一小时内超过通知阈值时触发。
在实践中,跳出很少见,并且由于SNS通知仅在电子邮件退回时发送,因此警报几乎全部花费在INSUFFICIENT_DATA
状态。
理想情况下,我希望将缺少SNS通知视为零值。在其他监测系统(如石墨/ grafana)中,这被认为是零。"
有没有办法以这种方式处理(缺少)通知,并使警报远离数据不足状态?
答案 0 :(得分:6)
当值为零时,Amazon SNS不会将指标数据发送到CloudWatch。这会导致警报INSUFFICIENT_DATA
,而不会发送电子邮件。但是,您的警报应该按照需要运行而不做任何更改。
INSUFFICIENT_DATA
消息来自两种情况:
如果过去一小时内至少有一个数据点,并且警报已存在至少一小时,则状态将为OK
或ALARM
。
因此,您应该将INSUFFICIENT_DATA
视为与OK
相同。(甚至可以根据进入INSUFFICIENT DATA
状态触发警报!)< / p>
另外,如果您还没有,请务必使用SUM
而不是AVERAGE
,因为您的用例涉及查看某段时间内的消息计数。我的测试表明,SUM
警报会立即触发,而AVERAGE
需要更多时间。
答案 1 :(得分:0)
一个愚蠢的错误,但希望可以对某人有所帮助。
我使用模板(从AWS站点复制)创建了警报。该模板用于EC2警报,我想将其用于RDS警报。警报一直处于“ INSUFFICIENT_DATA”状态,直到我意识到维度名称值对于RDS应该是“ DBInstanceIdentifier”而不对于EC2应该是“ InstanceID”;-)
“ StateValue”:“ INSUFFICIENT_DATA”, “尺寸”:[ { “ Name”:“ InstanceId ”, “值”:“数据库审核” } ]
应该是:
“尺寸”:[ { “ Name”:“ DBInstanceIdentifier ”, “值”:“数据库审核” } ]