INSUFFICIENT_DATA の状態になっている Amazon CloudWatch アラームのトラブルシューティングを行いたいと考えています。
解決策
CloudWatch アラームを作成すると、アラームはINSUFFICIENT_DATA 状態で開始されます。CloudWatch アラームは、モニタリング対象のメトリクスを評価するまで INSUFFICIENT_DATA 状態のままになります。その後、アラームは作成後数分以内に INSUFFICIENT_DATA の状態から移行します。
アラームが INSUFFICIENT_DATA 状態のままの場合は、次のアクションを実行してください。
データポイントの欠落
インフラストラクチャの変更、ネットワークの障害、サービスの停止などのイベントを監視するメトリクスがある場合、そのメトリクスは定期的にはデータポイントを報告しません。アラームに指定された期間のメトリクスデータポイントがない場合、そのデータポイントは CloudWatch から欠落しています。その後、アラームは INSUFFICIENT_DATA 状態のままになります。
この問題を解決するには、CloudWatch アラームが欠落しているデータポイントを処理する方法を設定してください。
メトリクスパラメータの設定ミス
名前空間、メトリクス名、および最大 30 のディメンションを使用してメトリクスを定義できます。CloudWatch がデータポイントを正常に取得するには、タイムスタンプを指定する必要があります。さらに、単位も指定できます。これらのパラメータのいずれかに誤って値を指定すると、CloudWatch は存在しないメトリクスを取得しようとし、空のデータセットが取得されます。
注: データポイントは通常、単一単位のメトリクスにプッシュされます。アラームを作成するときに単位を指定する必要はありません。メトリクスのデータポイントに複数の単位がある場合は、正しい単位を使用するのがベストプラクティスです。
この問題を解決するには、次の手順を実行します。
- DescribeAlarms API オペレーションを実行すると、監視対象メトリクスのパラメータの完全なリストが表示されます。
- ListMetrics API オペレーションを実行して、ListMetrics の出力を監視対象メトリクスのパラメータのリストと比較します。
- メトリクスパラメータにスペルミスがないか、ディメンションが間違っていたり欠落していないかを確認します。
アラーム期間の設定ミス
必要な頻度でデータポイントを取得するようにアラームを設定できます。ただし、サービスまたはソースが使用している期間よりも短い期間を使用すると、望ましくないアラームの状態が発生する可能性があります。この問題を解決するには、アラームの期間を、メトリクスのデータポイントがプッシュされる期間と同じかそれ以上になるように設定します。また、「N 個のうち M 個」の設定を使用するようにアラームを設定することもできます。詳細については、「Evaluating an alarm」(アラームの評価) を参照してください。
データポイントの配信遅延
標準のアラーム設定では、アラームは 1 分ごとにメトリクスを評価します。CloudWatch がメトリクスを評価すると、アラームは設定されたメトリクスから利用可能なデータポイントを取得します。アラームがメトリクスを評価するときに接続が確立されていない場合、アラームはデータポイントを取得できず、INSUFFICIENT_DATA 状態に移行します。
接続を回復すると、AWS サービスはタイムスタンプ付きのデータポイントのバックログを CloudWatch に送信します。アラームは、指定した期間と評価期間に基づいて最近のデータポイントを取得します。CloudWatch アラームが時間枠を評価し、アラーム履歴にINSUFFICIENT_DATA 状態が示された場合、次のようなエラーメッセージが表示されます。
"stateValue": "INSUFFICIENT_DATA", "stateReason": "Insufficient Data: 2 datapoints were unknown."
この問題を解決するには、CloudWatch アラームが欠落データを処理する方法を設定します。