CloudWatch アラームの状態が INSUFFICIENT_DATA になっているのはなぜですか?

所要時間1分
0

Amazon CloudWatch アラームが INSUFFICIENT_DATA 状態です。原因を調べるにはどうすればよいですか?

簡単な説明

INSUFFICIENT_DATA 状態は、次のいずれかを示します。

  • Amazon CloudWatch アラームが始まったばかりです。
  • メトリクスを使用できません。
  • 名前空間、メトリクス名、ディメンションなどのメトリクスパラメータが正しく設定されていません。
  • メトリクスがアラームの状態を判断するのに十分なデータがありません。

アラームが予期せず INSUFFICIENT_DATA 状態になった場合は、次のトラブルシューティング手順で最も一般的な原因を確認してください。

解決方法

通常のメトリクスの動作

CloudWatch アラームを作成すると、デフォルトではその最初の状態は INSUFFICIENT_DATA です。モニタリング対象のメトリクスの最初の評価が完了するまで、この状態のままになります。通常、アラームは作成後数分以内に INSUFFICIENT_DATA から移行します。

INSUFFICIENT_DATA 状態のアラームは、メトリクスの正常な動作を反映している場合があります。CloudWatch にプッシュされる方法に基づいて、期間駆動型とイベント駆動型の 2 種類のメトリクスがあります。一部のサービスでは、規則的な間隔で、データポイントをメトリクスに定期的に送信します。他のサービスは、特定のイベントによってトリガーされたときにメトリクスデータをプッシュし、データポイントのない期間がある場合があります。

期間駆動型メトリクスの例として、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのデフォルトの CPUUtilization メトリクスがあります。このメトリクスには、5 分ごとにデータポイントがあります。しかし、インスタンスを停止した場合、サービスはそのインスタンスにデータポイントをプッシュしません。イベント駆動型メトリクスの例として、Application Load Balancer の HTTPCode_ELB_5XX_Count メトリクスがあります。ELB から 5XX 応答があった場合、Elastic Load Balancing (ELB) サービスは、このメトリクスにデータポイントを送信します。期間中に発生した 5XX エラーがない場合、結果は (ゼロ値ではなく) 空の期間になります。

アラームが指定された一定期間中にデータポイントのないメトリクスをモニタリングしていて、欠落しているデータが欠落として扱われている場合、その期間中のアラームの状態は INSUFFICIENT_DATA になります。アラームを強制的に ALARM または OK 状態にするには、アラームがデータポイントなしでこれらの期間を処理する方法を設定します。

CloudWatch アラーム設定が正しくない

各メトリクスは、名前空間、メトリクス名、および最大 10 個のディメンションで定義されます。データポイントを取得するときは、タイムスタンプ (および任意の単位) を指定する必要があります。これらのパラメータの 1 つに正しくない値を指定すると、CloudWatch は存在しないメトリクスを取得しようとします。結果は空のデータセットです。

注意: データポイントは通常、単一の単位を使用してメトリクスにプッシュされますが、アラームの作成時に単位を指定する必要はありません。単位を指定しない場合、間違った単位設定に関連する問題は発生しません。しかし、メトリクスのデータポイントに複数の単位がある場合は、正しい単位を使用することをお勧めします。

DescribeAlarms API を使用して、モニタリングされるメトリクスのパラメータの詳細リストを取得します。これを ListMetrics 出力と比較できます。次のパラメータを確認します。

  • スペルミスや大文字と小文字の間違った使用。名前空間、メトリクス名、ディメンションキー/値では大文字と小文字が区別されます。
  • ディメンションが正しく指定されていないか、ディメンションがありません。

アラーム期間が正しく設定されていない

必要な頻度でデータポイントを取得するようにアラームを設定できます。しかし、アラームが、サービス (またはソース) がデータポイントをメトリクスに送信するために使用する期間よりも短期間を使用する場合、望ましくない状態になる可能性があります。不要な INSUFFICIENT_DATA 状態を避けるには、アラームの期間を、メトリクスのデータポイントがプッシュされる期間と等しいかそれ以上になるように設定することをお勧めします。アラームに N 個中の M 個の設定を使用することもできます。

データポイントの遅延配信

CloudWatch に送信されるデータポイントによっては、メトリクスをモニタリングするアラームで予期しない INSUFFICIENT_DATA 状態が発生する場合があります。

たとえば、EC2 インスタンスにデプロイされたソフトウェアからカスタムメトリクスにデータポイントを送信するカスタムアプリケーションがあるとします。データが失われないように、失敗した API コールを再試行するようにアプリケーションを設定するとします。しかし、外部要素 (VPC 設定の変更など) により、インスタンスは CloudWatch との接続を失います。このシナリオでも、環境ではデータが生成されます。しかし、送信されるデータポイントは、外部の問題が修正されるまで失敗します。

標準アラームを設定している場合、アラームは 1 分ごとにメトリクスを評価します。評価中、アラームは設定されたメトリクスから最新の利用可能なデータポイントを取得します。接続されていないこの期間中も、アラームはメトリクスを評価しています。データポイントが CloudWatch に正常に配信されていないため、アラームはこれらの評価期間中のデータポイントを取得できません。これにより、INSUFFICIENT_DATA 状態がトリガーされます。

接続を復旧した後、アプリケーションはデータポイントのバックログを送信し、各データポイントに独自のタイムスタンプを付けます。この遅延の後にデータポイントが送信されるため、アラームは、指定した期間と評価期間に基づいて最新のデータポイントを取得できるようになりました。この時点で、データポイントが CloudWatch に保存されるようになったため、メトリクスに空白は表示されません。しかし、アラームはその時間枠をすでに評価しているため、アラーム履歴には引き続き次のようなメッセージが表示されます。

[...] 
   "stateValue": "INSUFFICIENT_DATA",
   "stateReason": "Insufficient Data: 2 datapoints were unknown.",
   [...]

アラームが INSUFFICIENT_DATA 状態になることを防ぎたい場合は、アラームで不足データを処理する方法を変更できます。


AWS公式
AWS公式更新しました 2年前
コメントはありません