Как избежать INSUFFICIENT_DATA аварийных сигналов CloudWatch в уведомлениях социальных сетей

У меня есть тема в социальных сетях, которая публикуется всякий раз, когда приходит электронное письмо SES. У меня есть будильник CloudWatch, который срабатывает при превышении порогового значения уведомлений за последний час.

На практике отказы редки, и поскольку уведомления SNS отправляются только тогда, когда электронное письмо возвращается, сигнал тревоги проводит почти все свое время в состоянии INSUFFICIENT_DATA.

В идеале я бы хотел, чтобы отсутствие уведомлений соцсетей трактовалось как нулевое значение. В других системах мониторинга (например, графит / графана) это считается «ноль как ноль».

Есть ли способ обработать (отсутствие) уведомлений таким образом и не допустить срабатывания сигнализации при недостаточном количестве данных?


person Joe Shaw    schedule 11.05.2016    source источник


Ответы (2)


Amazon SNS не отправляет метрические данные в CloudWatch, если значение равно нулю. Это приводит к INSUFFICIENT_DATA для сигналов тревоги, когда электронные письма не отправляются. Однако будильник должен работать без изменений.

Сообщение INSUFFICIENT_DATA возникает из двух ситуаций:

  • Аварийный сигнал не существовал в течение периода измерения (например, аварийный сигнал, который вычисляет общую сумму за 1-часовой период, должен существовать как минимум в течение 1 часа).
  • Нет данных за указанный период

Если есть хотя бы одна точка данных в течение последнего часа и сигнал тревоги существовал не менее часа, тогда состояние будет либо OK, либо ALARM.

Таким образом, вы должны обращаться с INSUFFICIENT_DATA так же, как с OK. (Можно даже вызвать тревогу при входе в состояние INSUFFICIENT DATA!)

Кроме того, если вы еще этого не сделали, обязательно используйте SUM, а не AVERAGE, поскольку ваш вариант использования включает просмотр количества сообщений за период. Мои тесты показывают, что сигнал тревоги SUM срабатывает немедленно, тогда как AVERAGE требуется больше времени.

person John Rotenstein    schedule 12.05.2016
comment
Спасибо. Я надеялся избежать переходов между OK и INSUFFICIENT_DATA, но из вашего ответа (и моих собственных исследований) я понимаю, что это невозможно. В идеале я бы хотел, чтобы отсутствие уведомлений SNS рассматривалось как 0, а не как отсутствие данных. - person Joe Shaw; 16.05.2016
comment
Моя метрика показывает точки данных за период (1 минута), а сигнал тревоги находился в режиме INSUFFICIENT_DATA несколько дней. Моя статистика SampleCount; не уверен, имеет ли это значение или нет ... - person weberc2; 02.10.2018
comment
Фу. Моя проблема заключалась в том, что SampleCount на самом деле не считает образцы, а возвращает ‹missing› каждый раз (по какой-то причине). Переход на Sum разрешил проблему. (Моя метрика произвела две выборки каждая со значением 1 за период - SampleCount говорит, что данных нет). - person weberc2; 02.10.2018

Глупая ошибка, но, надеюсь, кому-то поможет.

Я создал будильник по шаблону (скопирован с сайта AWS). Шаблон был для сигнализации EC2, и я хотел использовать его для сигнализации RDS. Аварийный сигнал оставался в состоянии «INSUFFICIENT_DATA» навсегда, пока я не понял, что значение «Имя измерения» должно быть «DBInstanceIdentifier» для RDS, а не «InstanceID» для EC2 ;-)

"StateValue": "INSUFFICIENT_DATA", "Dimensions": [{"Name": "InstanceId", "Value": "database-audit"}],

Должно быть:

"Параметры": [{"Имя": "DBInstanceIdentifier", "Значение": "database-audit"}],

person Hugo Mendes    schedule 03.10.2018