メトリクスに違反しているデータポイントがないのに CloudWatch アラームがトリガーされたのはなぜですか?

最終更新日: 2021 年 3 月 23 日

Amazon CloudWatch アラームが ALARM 状態に変化します。アラームのメトリクスを確認しても、データポイントの違反はまったく表示されません。ただし、アラームのイベント履歴には、データポイントの違反があったと表示されます。メトリクスに違反しているデータポイントがないのに CloudWatch アラームがトリガーされたのはなぜですか?

簡単な説明

CloudWatch のアラームは、特定の時点で利用可能なデータポイントに基づいてメトリクスを評価します。新しい値が CloudWatch メトリクスに流入し続けるため、後続の各アラーム評価では、異なる集計データポイントが使用される可能性があります。新たなデータが、まだメトリクスに到達していない場合、アラームをトリガーした違反データポイントを確認できない事があります。後でイベント履歴を確認すると、メトリクスに流入したデータポイントの完全なセットを確認できます。

解決方法

違反データポイントを見つける

CloudWatch アラーム内のメトリクスグラフで、違反データポイントを確認するには、 [Statistic] を [Minimum/Maximum] に変更し ます。

アラームの設定例

  • 標準間隔アラーム (1 分ごとにメトリクスを評価)
  • [Metric] で [CPUUtilization] を選択
  • [Threshold] を [65%] に設定
  • [Statistic] で [Average] を選択
  • [Period] を [60 seconds] に設定
  • [Evaluation Period] を [1] に設定
  • モニタリング対象の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで、Detailed Monitoringenabled に設定

アラーム評価期間の例 12:00:00~12:01:00 UTC が開始されると、メトリクスによって次の値が受信されました。

Sample-1: 12:00:07 UTC, numeric value: 89.76470588235294
Sample-2: 12:00:11 UTC, numeric value: 27.926666666666664
Sample-3: 12:00:19 UTC, numeric value: 54.57142857142857
Sample-4: 12:00:35 UTC, numeric value: 95.473333333333336

これらの値の平均は 66.934 であり、しきい値である 65% に違反しています。この違反により、ALARM 状態への変化がトリガーされます。アラームのイベント履歴には、状態変化の理由として、しきい値を超過していた集約値が一覧表示されます。

後でアラームが再び評価されると、12:00:00~12:01:00 UTC の 1 分間に、さらに値が流入しているのがわかります。例:

Sample-1: 12:00:07 UTC, numeric value: 89.76470588235294
Sample-2: 12:00:11 UTC, numeric value: 27.926666666666664
Sample-3: 12:00:19 UTC, numeric value: 54.57142857142857
Sample-4: 12:00:35 UTC, numeric value: 95.473333333333336
Sample-5: 12:00:37 UTC, numeric value: 15.18181818181819
Sample-6: 12:00:41 UTC, numeric value: 10.26490

新しい値を含む平均値は 48.864 で、65% のしきい値に違反していません。この場合、アラームは OK 状態に変化します。アラームのイベント履歴には、状態変化の理由として、しきい値以下であった集約値が一覧表示されます。

この時に、アラームがトリガーされていたとしても、CloudWatch メトリクスのグラフに、違反データポイントが表示されない場合があります。[CPUUtilization] メトリクスのグラフを表示すると、[Average] には、(66.934 ではなく) 48.864 と表示されます。これで、評価に関連するすべてのサンプルがメトリクスに流入しました。

CloudWatch メトリクスグラフの [Statistic] を [Maximum] に変更すると、12:00:00 UTC に、違反データポイント 95.473 があった事を確認できます。

注意: データがしきい値を下回った時にトリガーするようにアラームが設定されている場合、CloudWatch メトリクスグラフの [Statistic] を [Minimum] に変更します。

「N のうち M」アラームを設定

アラームが ALARM 状態に変化するのを防ぐには、Evaluation PeriodDatapoints to Alarm の値が異なる「N のうち M」アラームを設定します。この設定で、アラームはより集約されたデータポイントを評価し、特定のデータポイントのセット (N) で少なくとも特定の数のデータポイント (M) が違反した場合にのみアラーム状態が変化します。詳細については、「Create a CloudWatch alarm based on a static threshold」および「Configuring how CloudWatch alarms treat missing data」を参照してください。

アラームの設定例

  • 標準間隔アラーム (1 分ごとにメトリクスを評価)
  • [Metric] で [CPUUtilization] を選択
  • [Threshold] を [65%] に設定
  • [Statistic] で [Average] を選択
  • [Period] を [120 seconds] に設定
  • [Evaluation Period] で [2 out of 3] を選択
  • モニタリング対象の Amazon EC2 インスタンスで、Detailed Monitoringenabled に設定

アラーム設定の例は前の例と同様であることに注意してください。ただし、各評価期間において、対象となるデータポイント 3 個のうち 2個 をチェックした後、アラームをトリガーしている事に注意してください。また、評価期間が長くなったため、期間も短縮されています。

アラーム期間が 12:00:00 UTC に開始されると、以下の値がメトリクスによって受信されました。

Sample-1: 12:00:07 UTC, numeric value: 89.76470588235294
Sample-2: 12:00:11 UTC, numeric value: 27.926666666666664
Sample-3: 12:00:19 UTC, numeric value: 54.57142857142857
Sample-4: 12:00:35 UTC, numeric value: 95.473333333333336

評価期間が延長されているため、CloudWatch は 12:00:00 UTC より前のデータポイントを探します。

11:58:00 UTC, Average=41.874304539920
11:59:00 UTC, Average=5.230773650991253
12:00:00 UTC, Average=66.93403361344538

12:00:00 UTC に集約されたデータポイントがしきい値に違反しています。ただし、アラームの状態は OK のまま維持され、ALARM 状態に変化しません。この動作は、3 つのデータポイントのうち 1 つだけがしきい値に違反し、3 つのうちの2つがアラームをトリガーする必要があるために発生します。


この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?