監視対象のメトリクスに違反データポイントはないのに CloudWatch アラームが発生したのはなぜですか?

所要時間2分
0

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 アラームの通知が送信されてくる理由を教えてください。

AWS公式
AWS公式更新しました 8ヶ月前
コメントはありません