Странное поведение будильника CloudWatch
У меня есть скрипт резервного копирования, который запускается каждые 2 часа. Я хочу использовать CloudWatch, чтобы отслеживать успешное выполнение этого скрипта, и сигналы тревоги CloudWatch, чтобы получать уведомления, когда скрипт сталкивается с проблемами.
Сценарий помещает точку данных в метрику CloudWatch после каждого успешного резервного копирования:
mon-put-data --namespace Backup --metric-name $metric --unit Count --value 1
У меня есть сигнал тревоги, который переходит в состояние ТРЕВОГА всякий раз, когда статистика «Сумма» в метрике меньше 2 за 6-часовой период.
Чтобы протестировать эту настройку, через день я перестал помещать данные в метрику (т. Е. Закомментировал команду mon-put-data). Хорошо, в конце концов сигнал тревоги перешел в состояние ALARM, и я получил уведомление по электронной почте, как и ожидалось.
Проблема в том, что через некоторое время сигнал тревоги вернулся в состояние ОК, однако в метрику не добавляются новые данные!
Два перехода (OK => ALARM, затем ALARM => OK) были записаны в журнал, и я воспроизвожу журналы в этом вопросе. Обратите внимание, что, хотя оба показывают «period: 21600» (то есть, 6h), второй показывает 12-часовой промежуток времени между startDate и queryDate; Я вижу, что это может объяснить переход, но я не могу понять, почему CloudWatch рассматривает 12-часовой промежуток времени для расчета статистики с 6-часовым периодом!
Что мне здесь не хватает? Как настроить сигналы тревоги для достижения того, что я хочу (т.е. получать уведомления, если резервные копии не выполняются)?
{
"Timestamp": "2013-03-06T15:12:01.069Z",
"HistoryItemType": "StateUpdate",
"AlarmName": "alarm-backup-svn",
"HistoryData": {
"version": "1.0",
"oldState": {
"stateValue": "OK",
"stateReason": "Threshold Crossed: 1 datapoint (3.0) was not less than the threshold (3.0).",
"stateReasonData": {
"version": "1.0",
"queryDate": "2013-03-05T21:12:44.081+0000",
"startDate": "2013-03-05T15:12:00.000+0000",
"statistic": "Sum",
"period": 21600,
"recentDatapoints": [
3
],
"threshold": 3
}
},
"newState": {
"stateValue": "ALARM",
"stateReason": "Threshold Crossed: 1 datapoint (1.0) was less than the threshold (2.0).",
"stateReasonData": {
"version": "1.0",
"queryDate": "2013-03-06T15:12:01.052+0000",
"startDate": "2013-03-06T09:12:00.000+0000",
"statistic": "Sum",
"period": 21600,
"recentDatapoints": [
1
],
"threshold": 2
}
}
},
"HistorySummary": "Alarm updated from OK to ALARM"
}
Второй, который я просто не могу понять:
{
"Timestamp": "2013-03-06T17:46:01.063Z",
"HistoryItemType": "StateUpdate",
"AlarmName": "alarm-backup-svn",
"HistoryData": {
"version": "1.0",
"oldState": {
"stateValue": "ALARM",
"stateReason": "Threshold Crossed: 1 datapoint (1.0) was less than the threshold (2.0).",
"stateReasonData": {
"version": "1.0",
"queryDate": "2013-03-06T15:12:01.052+0000",
"startDate": "2013-03-06T09:12:00.000+0000",
"statistic": "Sum",
"period": 21600,
"recentDatapoints": [
1
],
"threshold": 2
}
},
"newState": {
"stateValue": "OK",
"stateReason": "Threshold Crossed: 1 datapoint (3.0) was not less than the threshold (2.0).",
"stateReasonData": {
"version": "1.0",
"queryDate": "2013-03-06T17:46:01.041+0000",
"startDate": "2013-03-06T05:46:00.000+0000",
"statistic": "Sum",
"period": 21600,
"recentDatapoints": [
3
],
"threshold": 2
}
}
},
"HistorySummary": "Alarm updated from ALARM to OK"
}