[アップデート]AmazonCloudWatchalarmsで複数日にわたってメトリクスの評価ができるようになりました

[アップデート]AmazonCloudWatchalarmsで複数日にわたってメトリクスの評価ができるようになりました

AmazonCloudWatchalarmsで複数日にわたってメトリクスの評価ができるようになりました
Clock Icon2025.01.24

お疲れさまです。とーちです。

Amazon CloudWatch alarms(以後CloudWatchアラームと記載)にて複数日にわたってメトリクスの評価ができるようになりました。

https://aws.amazon.com/jp/about-aws/whats-new/2025/01/amazon-cloudwatch-allows-alarming-data-7-days-old/

とりあえずまとめ

  • CloudWatchアラームで最大7日間のデータを評価できるようになった
  • 「複数日アラーム」の場合、期間の設定は1時間以上にする必要がある
  • 「複数日アラーム」の場合、1時間に1回、アラート等の別の状態に状態遷移するかどうかの評価を行う
  • また「複数日アラーム」の場合、評価した時刻の"00分"までのメトリクスのみが対象となる

何が変わったのか

私自身、あまり気にしたことがなかったのですが、今までは最大でも24時間の期間でしか評価ができませんでした。これが今回のアップデートにより 最大7日間のデータを評価できるようになりました。
CloudWatchアラームは 評価期間 と (データポイント作成単位となる)期間 のかけ合わせでどのくらいの期間のメトリクスを見るのかが決まります。

例えば評価期間が5で期間が1時間の場合、「過去5時間」のデータをもとに評価します。
図にするとこんな感じです。

以前はこの「過去5時間」という部分が最大でも24時間までしか評価ができなかったというわけです。

さて、長期間のデータを監視できるようになるとどんないいことがあるでしょうか?
ユースケースを考えてみました。

  • ディスク容量の管理
    例えば、ディスク使用量が少しずつ増加している場合、1日単位では気づかなくても、7日間のデータを見れば明らかになります。
    具体的には、以下のような設定です。以下の設定だと1日単位でディスク使用量の平均を取り、7日間でディスク使用量が閾値を超えていたらアラートといったことが実現できます。

    期間:1日
    アラームをあげるデータポイント数 / 評価期間: 2/7
    メトリクス:例えばRDSのFreeLocalStorage等
    統計:Average
    閾値:過去実績に基づき設定
    
    
  • パフォーマンスの劣化
    アプリケーションのレスポンス時間が徐々に悪化している場合、長期間のデータを基にしたアラートで早期に対処可能です。
    この設定により、1週間のうち5日以上でレスポンス時間が通常値より30%以上悪化した場合にアラートを発生させることができます。

    期間:1日
    アラームをあげるデータポイント数 / 評価期間: 5/7
    メトリクス:例えばALBのTargetResponseTime等
    統計:p90 (※1)
    閾値:過去実績のレスポンスタイムの標準値の30%増しなどで設定
    
    

    ※1:90パーセンタイル:例えばメトリクスの期間を1日としたとき「平均」だと1日に記録されたすべての値の平均をメトリクスの値として記録するが、「p90」の場合、1日に記録されたすべての値のうち9割(90%)がメトリクスに記録された値より低いということを表すもの

注意点

  • 期間の設定について
    期間は最低でも1時間にする必要があります。期間を1時間以上にしない場合、以下のようにエラーメッセージが出て複数日アラームは設定出来ません
    image.png

  • 評価の頻度について
    評価期間の数と各評価期間の長さを掛けた値が1日を超える場合、アラームは「複数日アラーム」となり、1時間に1回の頻度でアラート等の別の状態に状態遷移するかどうかの評価を行います。

  • 評価タイミングの仕様
    複数日アラームでは、評価時刻の「:00分」までのメトリクスデータのみが考慮されます。例えば、10:03にアラームが評価される場合、10:00までのデータが使用されます。

図にすると以下のような形です。

具体的な複数日の監視の例については以下の公式ドキュメントに載っているのでこちらもご参照ください。

https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation

試してみた

実際にアラームを設定してみます。

以下のようなLambdaのDuration(実行時間)メトリクスがあります。

image.png

CloudWatchアラームの作成画面で期間を1時間単位にし、統計をp90にします。

image.png

アラームを実行するデータポイントを以下のように1/168(24時間*7日)と設定します。以前はここでいれる値は24時間を超えることはできなかったはずです。

image.png

これでしばらく待つと新しいデータポイントが作成され、アラート状態になることが確認できました。直近1日では閾値を超えていないのでちゃんと数日前のデータを見てアラートにできていますね。
CloudWatchアラームを設定したのが7:25頃で、1時間ほどしてから状態遷移の評価がされました。そのため次に評価されるのは9:23になるはずですね。

image.png

まとめ

CloudWatchアラームで最大7日間のデータを評価できるようになったことで、システム監視の幅が広がりました。特に以下のようなシナリオで活用できます。

  • 長期的なトレンドや異常を検出
  • 一時的なスパイクを無視した柔軟なアラート設定

この機会にシステム監視の設定を見直すのもいいかもしれませんね。

以上、とーちでした。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.