2時間ごとに実行されるバックアップスクリプトがあります。CloudWatchを使用して、このスクリプトの正常な実行を追跡し、CloudWatchのアラームを使用して、スクリプトで問題が発生したときに通知を受け取りたいと思います。
スクリプトは、バックアップが成功するたびにCloudWatchメトリクスにデータポイントを配置します。
mon-put-data --namespace Backup --metric-name $metric --unit Count --value 1
メトリックの統計「合計」が6時間で2未満になると、アラーム状態になるアラームがあります。
この設定をテストするために、1日後、メトリックへのデータの入力を停止しました(つまり、mon-put-dataコマンドをコメントアウトしました)。よし、最終的にアラームはALARM状態になり、期待どおりに電子メール通知を受け取りました。
問題は、しばらくすると、アラームがOK状態に戻りますが、メトリックに新しいデータが追加されていないことです。
2つの遷移(OK => ALARM、次にALARM => OK)がログに記録されており、この質問でログを再現します。どちらも「期間:21600」(つまり6時間)を示していますが、2番目はstartDateとqueryDateの間の12時間の期間を示していることに注意してください。これが移行の説明になるかもしれませんが、CloudWatchが6時間の統計を計算するために12時間の期間を検討している理由がわかりません。
ここで何が欠けていますか?私が望むことを達成するためにアラームを設定する方法(つまり、バックアップが作成されていない場合に通知を受け取る)?
{
"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"
}
私が単純に理解できない2番目のもの:
{
"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"
}