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