Cloudwatchアラームの欠損データの扱い

Cloudwatch アラームは実は評価期間よりも多くの範囲のデータを取得した上でアラーム有無を判定する。

例えば、アラームを発生させるデータポイント数が3・評価期間が3とする。 ここで、実は3以上の期間を取得してきていて(この範囲を評価範囲という)、次の場合分けが発生している。

  • 評価範囲にデータが欠落していない場合は、最新のデータポイント3つを用いて評価する
  • 評価範囲にデータが欠落しているが、データポイントが評価期間数以上である:実在するデータポイントを用いて評価される。欠損データは無視される
  • 評価範囲にデータが欠落しているが、データポイントが評価期間数未満である:ここで初めて欠損データをどう扱うか?が関係してくる(MISSING, IGNORE, BREACHING, NOT BREACHING)

であるので、アラームを作成する際に欠損データが出たことをトリガーにしたい場合には、別途FILL()関数を用いて固定値で埋め込む必要がある(負の値を入れるなど、メトリクスの性質で変えると良い)

欠損データを"BREACHING"で捉えようとすると、タイムラグが発生してしまうので意図したタイミングでは発砲されない。

参考