2時間ごとに実行されるバックアップスクリプトがあります。私はこのスクリプトの成功した実行とCloudWatchのアラームを追跡するためにCloudWatchを使用して、スクリプトが問題に遭遇するたびに通知を受けたいと思います。Strange CloudWatchアラーム動作
スクリプトが成功するたびにバックアップした後、CloudWatchのメトリックにデータポイントを置く:メトリックの統計「和」は中2未満である時はいつでも私がALARM状態になり、アラームを持って
mon-put-data --namespace Backup --metric-name $metric --unit Count --value 1
6時間
この設定をテストするために、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"
}
興味深い。しかし、私はこの「機能」がどこに書類でもない(それともそれはないのだろうか?また、提案するアーキテクチャーはうまくいっていません。データポイントがない場合に通知されるという考え方は、通知が失敗した場合に警告を発することです(つまり、バックアップを作成するサーバーが死んだとします。問題など)。お返事をありがとうございます!そのことを念頭に置いて、私ができることを見ていきます。 –
メトリックデータポイントがない場合、アラームはALARM状態ではなくINSUFFICIENT_DATA状態に移行します。したがって、ジョブが実行されていない場合に通知を受けたい場合は、INSFUCCIENT_DATAにアクションを指定する必要があります。しきい値を比較するために使用可能なデータポイントがある場合、アラームはALARM状態に遷移するだけです。 – Wal
したがって、ジョブが成功した場合に値1を発行し、ジョブが失敗した場合(ジョブが実行されていても正常に完了していない場合)、そして最後にINSFUCCIENT_DATA状態が発行されている) – Wal