避免 Cloudwatch 中的数据不足?
Avoiding INSUFFICIENT DATA in Cloudwatch?
我设置了警报,当我的负载均衡器使用 HTTPCode_Backend_5XX
指标和 sum
统计数据抛出 5xxs 时通知我。问题是 sum
将 0 注册为没有数据点,因此当没有抛出 5xxs 时,警报被视为数据不足。这尤其令人沮丧,因为我有 SNS 设置,每当我们收到太多 5xx(警报状态)以及一切恢复正常时都会通知我。令人讨厌的是,0 5xxs 意味着我们处于 INSUFFICIENT DATA
状态,但 1 5xx 意味着我们处于 OK
状态,因此 1 5xx 会触发每个人都收到通知,一切正常。有没有办法解决?理想情况下,我只想让任何东西的 0 显示为零数据点,而不是根本没有数据(数据不足)。
我两年前在 AWS 论坛上问过这个:-(
https://forums.aws.amazon.com/thread.jspa?threadID=153753&tstart=0
遗憾的是,您无法根据特定的状态更改创建通知(在您的情况下,您希望在状态从 ALARM 更改为 OK 时收到通知,而不是在状态从 INSUFFICIENT 更改为 OK 时收到通知)。只能建议大家也求一下,希望最后能加上。
对于经常处于 INSUFFICIENT 状态的指标,我通常只是为 ALARMS 创建通知,我没有关于这些指标的 OK 通知 - 如果我想确认一切正常,我使用 AWS 移动应用程序来检查事情,看看他们是否已经解决。
我们的一些警报也遇到了类似的问题。如果你真的想处理开销,你实际上可以通过一些工作来避免这种行为。
我们所做的是,我们没有将 SNS 通知直接发送到电子邮件,而是创建了一个 lambda 函数,并在 SNS 主题中收到通知后触发它。
这样,一旦触发警报,您就可以更好地控制可以采取的操作。因为上下文也会为您提供旧状态值。
好消息是,已经有一个 lambda 模板可以开始使用。
https://aws.amazon.com/blogs/aws/new-slack-integration-blueprints-for-aws-lambda/
只需选择旨在将 cloudwatch 警报发送到 slack 的那个。然后,您可以根据需要修改代码,要么忽略 slack 部分,只使用电子邮件,要么保留 slack。 (这就是我们所做的,而且效果很好)
自 March 2017 起,您可以将缺失数据视为可接受的。这将防止警报被标记为不足。
您也可以使用 TreatMissingData 属性 在 CloudFormation 中进行设置。例如:
TreatMissingData: notBreaching
我设置了警报,当我的负载均衡器使用 HTTPCode_Backend_5XX
指标和 sum
统计数据抛出 5xxs 时通知我。问题是 sum
将 0 注册为没有数据点,因此当没有抛出 5xxs 时,警报被视为数据不足。这尤其令人沮丧,因为我有 SNS 设置,每当我们收到太多 5xx(警报状态)以及一切恢复正常时都会通知我。令人讨厌的是,0 5xxs 意味着我们处于 INSUFFICIENT DATA
状态,但 1 5xx 意味着我们处于 OK
状态,因此 1 5xx 会触发每个人都收到通知,一切正常。有没有办法解决?理想情况下,我只想让任何东西的 0 显示为零数据点,而不是根本没有数据(数据不足)。
我两年前在 AWS 论坛上问过这个:-( https://forums.aws.amazon.com/thread.jspa?threadID=153753&tstart=0
遗憾的是,您无法根据特定的状态更改创建通知(在您的情况下,您希望在状态从 ALARM 更改为 OK 时收到通知,而不是在状态从 INSUFFICIENT 更改为 OK 时收到通知)。只能建议大家也求一下,希望最后能加上。
对于经常处于 INSUFFICIENT 状态的指标,我通常只是为 ALARMS 创建通知,我没有关于这些指标的 OK 通知 - 如果我想确认一切正常,我使用 AWS 移动应用程序来检查事情,看看他们是否已经解决。
我们的一些警报也遇到了类似的问题。如果你真的想处理开销,你实际上可以通过一些工作来避免这种行为。
我们所做的是,我们没有将 SNS 通知直接发送到电子邮件,而是创建了一个 lambda 函数,并在 SNS 主题中收到通知后触发它。
这样,一旦触发警报,您就可以更好地控制可以采取的操作。因为上下文也会为您提供旧状态值。
好消息是,已经有一个 lambda 模板可以开始使用。 https://aws.amazon.com/blogs/aws/new-slack-integration-blueprints-for-aws-lambda/
只需选择旨在将 cloudwatch 警报发送到 slack 的那个。然后,您可以根据需要修改代码,要么忽略 slack 部分,只使用电子邮件,要么保留 slack。 (这就是我们所做的,而且效果很好)
自 March 2017 起,您可以将缺失数据视为可接受的。这将防止警报被标记为不足。
您也可以使用 TreatMissingData 属性 在 CloudFormation 中进行设置。例如:
TreatMissingData: notBreaching