Amazon CloudWatch アラームが ALARM 状態に変わりました。監視対象のメトリクスを確認しましたが、CloudWatch グラフに違反データポイントは表示されません。なのに、「アラーム履歴」のエントリには違反データポイントがあります。CloudWatch アラームが発生した原因を把握しようと思います。
簡単な説明
CloudWatch アラームでは、すぐに使用可能なデータポイントに基づいて、メトリクスを評価します。アラームの履歴には、そのタイムスタンプでアラーム評価が行われたデータポイントの記録が表示されます。ただし、アラーム評価が行われた後、CloudWatch で新しいサンプルが公開されます。新しいサンプルは、CloudWatch でメトリクスデータを集計する際に計算される値に影響することがあります。
解決策
違反データポイントを検出する
CloudWatch グラフに違反データポイントが表示されない場合、そのデータポイントはアラーム評価時間外に発生しています。
たとえば、アラーム評価が行われると、X 個のサンプルが使用可能になります。X 個のサンプルだと、集計値は A になります。この後に、新しいサンプルがポストされます。そうすると、同じタイムスタンプで Y 個のサンプルが取得されます。この Y 個のサンプルが足されると、集計値は B となります。
次の例では、アラームが前述のパラメーターで設定されています。
- Namespace: Web_App
- Metric: ResponseTime
- Dimension: host,h_04254448d4e964956
- Statistic: Average
- Threshold: 0.005
- ComparisonOperator: GreaterThanThreshold
- Period: 60 seconds (1 minute)
- Evaluation Period: 1
アラームで評価する期間が 12:00:00~12:01:00 UTC の場合、メトリクスでは次のような値が取得されます。
Sample-1: 12:00:00 UTC, numeric value: 0.00675
Sample-2: 12:00:00 UTC, numeric value: 0.00789
Sample-3: 12:00:00 UTC, numeric value: 0.00421
これらの値の平均は 0.006283333 なので、平均でしきい値の 0.005 秒を超えており、アラームは ALARM 状態に変わります。アラームの履歴には、しきい値を超えている集計値が表示されます。
ホストで一時的にでもパフォーマンスの問題が発生すると、メトリクス公開の役割を担うクライアントアプリケーションに影響します。結果として、ホストからはデータポイントが等間隔でポストされない場合があります。この場合、12:00 のサンプルは、アラーム評価が行われてから公開されます。
次の例では、12:00 タイムスタンプのすべてのサンプルを表示しています。
Sample-1: 12:00:00 UTC, numeric value: 0.00675
Sample-2: 12:00:00 UTC, numeric value: 0.00789
Sample-3: 12:00:00 UTC, numeric value: 0.00421
Sample-4: 12:00:00 UTC, numeric value: 0.00002
Sample-5: 12:00:00 UTC, numeric value: 0.00007
アラームによるアラートを受信したら、CloudWatch グラフを生成し、メトリクスの動作を確認します。CloudWatch では、12:00:00~12:01:00 UTC のサンプルを 5 つ取得し、それらを集計して平均 0.003788 とします。そのため、値は前に計算された値から変更され、しきい値を下回っています。アラーム評価が行われてから、さらにサンプルがポストされた場合、時間範囲内での違反データポイントが表示されません。
アラーム評価間隔を延長する
[アラームするデータポイント] を設定すると、評価間隔が延長されることがあります。メトリクスの遅延が原因で、アラームから誤アラートが生成されると、評価間隔が延長され、データポイント遅延がアラーム評価に含まれます。データポイント遅延が含まれると、誤アラートの数が減ります。
評価間隔を長くするには、次のオプションのいずれかを使用します。
期間を延長します。次の例では、期間が 5 分に延長されます。
Namespace: Web_App
Metric: ResponseTime
Dimension: host,h_04254448d4e964956
Statistic: Average
Threshold: 0.005
ComparisonOperator: GreaterThanThreshold
Period: 300 seconds (5 minutes)
Evaluation Period: 1
または、N 個のデータポイントのうち M 個を [アラームするデータポイント] に設定します。次の例では、N 個のデータポイントのうちの M 個の設定は、3 個のデータポイントのうちの 2 個となっています。
Namespace: Web_App
Metric: ResponseTime
Dimension: host,h_04254448d4e964956
Statistic: Average
Threshold: 0.005
ComparisonOperator: GreaterThanThreshold
Period: 60 seconds (1 minute)
Evaluation Period (N): 3
Datapoints To Alarm (M): 2
[評価期間] と [アラームするデータポイント] とで値の設定が異なっていると、M out of N アラームが設定されます。[アラームするデータポイント] は M 個に設定され、[評価期間] は N 個に設定されます。たとえば、5 つのデータポイントのうち 4 つを期間 1 分で設定した場合、評価間隔は 5 分です。3 つのデータポイントのうち 3 つを期間 10 分で設定した場合、評価間隔は 30 分です。
[アラームするデータポイント] をさまざまな値に設定すると、CloudWatch アラームで評価するデータポイント数が増えます。CloudWatch アラームでは、一連のデータポイントに違反したデータポイントの数が最小の場合にも、アラームの状態が変わります。パラメーターでは、データポイントが 1 つでもアラームがアクティブになるよう調整することも、ALARM 状態に移行するのには多数のデータポイントを要するよう調整することもできます。
詳細については、「静的しきい値に基づいて CloudWatch アラームを作成する」と「CloudWatch アラームの欠落データの処理の設定」を参照してください。
関連情報
CloudWatch アラームトリガーに関する SNS 通知が届かない理由を教えてください。
CloudWatch アラームが INSUFFICIENT_DATA 状態になっている場合のトラブルシューティング方法を教えてください。
違反したデータポイントが 1 つしかなくても CloudWatch アラームの通知が送信されてくる理由を教えてください。