Сигнал тревоги CloudWatch возвращается в состояние ОК на основе исторических c данных - PullRequest
0 голосов
/ 04 августа 2020

У меня есть CloudWatch Alarm, который проверяет все точки данных в течение 60-минутного окна, и если в 5 из этих точек данных есть проблемы, то CloudWatch Alarm переводится в состояние тревоги. Это работает правильно, и выходные данные CloudWatch показывают, в каких точках данных возникли проблемы:

Message = {"AlarmName":"Test Alarm","AlarmDescription":"Test Alarm","AWSAccountId":"xxxxxxxxxx","NewStateValue":"ALARM","NewStateReason":"Threshold Crossed: 5 out of the last 5 datapoints were greater than or equal to the threshold (1.0). The most recent datapoints which crossed the threshold: [1.0 (02/08/20 10:11:00), 4.0 (02/08/20 09:56:00), 2.0 (02/08/20 09:41:00), 2.0 (02/08/20 09:26:00), 1.0 (02/08/20 09:11:00)] (minimum 5 datapoints for OK -> ALARM transition).","StateChangeTime":"2020-08-02T10:26:48.505+0000","Region":"Asia Pacific (Sydney)","AlarmArn":"xxxxxxx","OldStateValue":"OK","Trigger":{"MetricName":"Problem","Namespace":"xxxxx","StatisticType":"Statistic","Statistic":"MAXIMUM","Unit":null,"Dimensions":[{"value":"default","name":"environment"}],"Period":900,"EvaluationPeriods":5,"ComparisonOperator":"GreaterThanOrEqualToThreshold","Threshold":1.0,"TreatMissingData":"- TreatMissingData: missing","EvaluateLowSampleCountPercentile":""}}

Проблема, с которой я столкнулся, заключается в переходе обратно в состояние ОК. Посмотрев на вывод CloudWatch при переходе обратно к ОК, он показывает следующее:

{"AlarmName":"Test Alarm","AlarmDescription":"Test Alarm","AWSAccountId":"xxxxxxxxx","NewStateValue":"OK","NewStateReason":"Threshold Crossed: 1 out of the last 5 datapoints [0.0 (02/08/20 09:27:00)] was not greater than or equal to the threshold (1.0) (minimum 1 datapoint for ALARM -> OK transition).","StateChangeTime":"2020-08-02T10:27:48.489+0000","Region":"Asia Pacific (Sydney)","AlarmArn":"xxxxxxxx","OldStateValue":"ALARM","Trigger":{"MetricName":"Problem","Namespace":"xxxxxxx","StatisticType":"Statistic","Statistic":"MAXIMUM","Unit":null,"Dimensions":[{"value":"default","name":"environment"}],"Period":900,"EvaluationPeriods":5,"ComparisonOperator":"GreaterThanOrEqualToThreshold","Threshold":1.0,"TreatMissingData":"- TreatMissingData: missing","EvaluateLowSampleCountPercentile":""}}

Бит, который выделяется здесь, это:

Threshold Crossed: 1 out of the last 5 datapoints [0.0 (02/08/20 09:27:00)] was not greater than or equal to the threshold (1.0)

Я понимаю это, чтобы означает, что, если какая-либо из последних 5 точек данных не пересекла пороговое значение, переведите сигнал тревоги обратно в состояние ОК. Это не то, как я бы хотел, чтобы мой будильник вел себя.

Я бы хотел, чтобы он вернулся в состояние ОК, только если НОВЫЕ точки данных не превышают пороговое значение проблемы.

1 Ответ

0 голосов
/ 04 августа 2020

Если я не ошибаюсь, ваш будильник будет смотреть только на точки данных в течение 60 минут. Итак, как только это окно будет завершено, начнется новое, и если вы не перенесете старую точку данных в новое окно, сигнал тревоги переключится на ОК, потому что ни одна из новых точек данных этого нового временного окна не пересечет порог

...