トラブルシューティング

このページでは、Cloud Logging でログベースの指標を使用する際の一般的なシナリオのトラブルシューティング情報を説明します。

指標のログデータがない

ログベースの指標のデータが欠落している理由として、いくつかの可能性が考えられます。

  • 新しいログエントリが指標のログクエリと一致しない可能性があります。ログベースの指標は、指標が作成された後に受信した、一致するログエントリからデータを取得します。Logging では、以前のログエントリからの指標はバックフィルされません。

  • 新しいログエントリに正しいフィールドが含まれていないか、データが適切な形式で分布指標から抽出されないことがあります。フィールド名と正規表現が正しいことを確認してください。

  • 指標のカウントが遅れている。カウントできるログエントリがログ エクスプローラに表示されている場合でも、Cloud Monitoring でログベースの指標が更新されるまでに最大 10 分を要する場合があります。

  • タイムスタンプの時間との差が大きすぎるため、表示されているカウントが遅れているか、まったくカウントされていない可能性があります。ログエントリが過去 24 時間以上または未来に 10 分以上ずれて Cloud Logging に受信された場合、ログエントリはログベースの指標にカウントされません。

    システムログ ベースの指標 logging.googleapis.com/logs_based_metrics_error_count の各ログに対して、遅れて到着するエントリの数が記録されます。

    : ログベースの指標に一致するログエントリが遅れて到着したとします。それは、timestamp が 2020 年 2 月 20 日午後 2 時 30 分で、receivedTimestamp が 2020 年 2 月 21 日午後 2 時 45 分です。このエントリはログベースの指標にカウントされません。

誤検出のアラートまたはトリガーされないアラート

アラートの配置期間が短すぎるため、誤検出のアラートやログベースの指標からトリガーされないアラートが表示される可能性があります。アラートがロジック未満を使用する、またはアラートが配布指標のパーセンタイル条件に基づく場合、配置期間が短すぎる共通シナリオは、問題の原因になります。

ログエントリが Logging に遅れて送信される可能性があるため、誤検出のアラートが発生します。たとえば、ログフィールド timestampreceiveTimestamp には分単位の差分を指定できます。また、Logging がログを取り込むときに、Log エントリが生成されるときと、Logging が Log エントリを受け取るときの間に、固有の遅延があります。つまり、ログエントリが生成されてから少し後の時点まで、Logging は特定のログエントリの合計数を持たないことがあります。これが、アラートはロジック未満を使用する、またはアラートが配布指標のパーセンタイル条件に基づく場合に誤検出アラートが生成される理由です。

ただし、ログベースの指標は常に最終的には一貫しています。ログベースの指標と一致するログエントリが、ログの receiveTimestamp よりもかなり古い、もしくは新しい timestamp と一緒に Logging に送られるため、ログベースの指標は最終的には一貫しています。

つまり、同じタイムスタンプを持つ既存のログエントリが Logging で受信された後、ログベースの指標でタイムスタンプが古いログエントリを受信できます。したがって、指標値を更新する必要があります。

オンタイムのデータであってもアラートが正確であることを保証するため、ログベースの指標のアラートポリシーでは、配置期間と同じもしくは2分以上多くしたアラートの条件を使用する必要があります。Logging に送信されるログエントリの遅延時間を分単位で指定する場合、適時制と精度を調整するため、配置期間は 10 分が推奨されます。

指標の時系列が多すぎる

指標の時系列の数は、ラベル値の異なる組み合わせの数によって異なります。時系列の数は、指標のカーディナリティと呼ばれ、30,000 以下にする必要があります。

ラベル値のすべての組み合わせに対して時系列を生成できるため、値の数が多い 1 つ以上のラベルがあれば、30,000 時系列を超えることはあり得ます。高いカーディナリティの指標は避けます。

指標のカーディナリティが増加すると、指標が抑制され、指標にデータポイントが書き込まれない場合があります。グラフが処理する必要がある時系列が多数あるため、指標が表示されるグラフの読み込みが遅くなることがあります。また、時系列データを照会する API 呼び出しの費用が発生することもあります。詳細については、Cloud Monitoring の費用をご覧ください。

カーディナリティの高い指標を作成しないようにするには、次のことを行います。

  • ラベル フィールドとエクストラクタの正規表現が、限定されたカーディナリティを持つ値と一致することを確認します。

  • 無制限に変更可能なテキスト メッセージをラベル値として抽出しないようにします。

  • 無制限のカーディナリティを持つ数値を抽出しないようにします。

  • カーディナリティがわかっているラベルからのみ値を抽出します(たとえば、値の範囲が決まっているステータス コードなど)。

次の 2 つのシステムログ ベースの指標は、ラベルの追加や削除が指標のカーディナリティに及ぼす影響を測定するのに役立ちます。

これらの指標を確認すると、指標名で結果を絞り込むことができます。詳細については、指標の選択: フィルタリングをご覧ください。

指標名が無効

カウンタ指標または分布指標を作成するときは、プロジェクトのログベースの指標で一意の指標名を選択します。

指標名の文字列は 100 文字を超えてはならず、次の文字のみを含めることができます。

  • AZ
  • az
  • 09
  • 特殊文字 _-.,+!*',()%\/.

    スラッシュ文字(/)は指標名の部分の階層を示し、名前の先頭の文字にすることはできません。

ラベル値が切り捨てられる

ユーザー定義のラベルの値は、1,024 バイトを超えることはできません。