Я создал сигнал тревоги, чтобы остановить экземпляр, и отправил мне электронное письмо, если он бездействовал слишком долго (средняя загрузка ЦП <2% в течение 3 часов). Однако в ходе тестирования я заметил, что экземпляр был остановлен через 1 час. Прилагаю отчет из электронного письма:
Alarm Details:
Name: Stop
Description: Created from EC2 Console
State Change: INSUFFICIENT_DATA -> ALARM
Reason for State Change: Threshold Crossed: 2 datapoints were less than the threshold (2.0).
The most recent datapoints: http:// 0.0425, 0.038363636363636364.
Timestamp: Thursday 14 March, 2013 22:20:11 UTC
AWS Account: xxxxxxxxxxxx
Threshold:
The alarm is in the ALARM state when the metric is LessThanThreshold 2.0 for 3600 seconds.
Monitored Metric:
MetricNamespace: AWS/EC2
MetricName: CPUUtilization
Dimensions: InstanceId = i-xxxxxxx
Period: 3600 seconds
Statistic: Average
Unit: not specified
State Change Actions:
OK:
ALARM: arn:aws:sns:us-east-1:xxxxxxxxxxxx:NotifyMe
INSUFFICIENT_DATA:
Я не понимаю, почему он переходит в состояние ALARM всего через 1 час (3600 с), когда я устанавливаю его на 3 часа (10800 с). Для моего теста экземпляр был остановлен на весь день. Как только я создал будильник, я запустил его и ничего не сделал с экземпляром. Учитывает ли он все эти часы простоя при вычислении средней загрузки ЦП за 3 часа?
Я хотел бы, чтобы сигнал тревоги позволял экземпляру оставаться в живых в течение 3 часов, прежде чем он остановит экземпляр. Есть лучший способ сделать это?
В вашем электронном письме четко указано, что ваш будильник срабатывает через 3600 секунд.
Порог: сигнал тревоги находится в состоянии СИГНАЛИЗАЦИЯ, когда метрика меньше порога 2,0 в течение 3600 секунд.
Должна быть возможность установить "EvaluationPeriods". При этом сигнализатор сообщает, сколько раз нужно оценить конкретную метрику, которую вы хотите проверить. Поэтому в вашем случае вы должны установить это значение на 3, и будильник будет проверять каждый час, чтобы узнать, является ли метрика LessThanThreshold 2.0. Тревога сработает, если в течение 3 часов подряд среднее значение из 3 взятых баллов будет меньше 2.0.
Также следует отметить, что состояние вашего сигнала тревоги изменилось с INSUFFICIENT_DATA -> ALARM. Я заметил эту активность с некоторыми сигналами тревоги, над которыми я работаю.
В моем случае:
Чтобы смягчить это, я настроил сценарий так, чтобы всякий раз, когда экземпляр запускался, тревога создавалась с ним, и когда когда-либо срабатывала тревога, она удалялась после остановки экземпляра, которому он назначен.
Похоже, вы неправильно настроили сигнализацию, как указано в письме выше, вы настроили его для срабатывания, если LessThanThreshold 2.0 в течение 3600 секунд.
Чтобы решить эту проблему, сделайте следующее: -
В консоли CloudWatch Management просто выберите сигнал тревоги, вы найдете ниже пороговое значение, объяснение которого показано на изображении ниже порогового значения: CPUUtilization> = 70 в течение 5 минут.
Щелкните правой кнопкой мыши по сигналу тревоги и измените его в соответствии с вашими потребностями.