トラブルシューティング

このページには、Trace のトラブルシューティング情報が記載されています。

既知の問題

このセクションでは、既知の問題について説明します。

  • Telemetry API を使用して Google Cloud プロジェクトに書き込まれたスパンは、Cloud Trace API からアクセスできません。たとえば、これらのトレースを一覧表示しようとすると、コマンドは 404 Not Found エラーで失敗します。

[Trace エクスプローラ] ページのトラブルシューティング

このセクションでは、[トレース エクスプローラ] ページの使用時に発生する問題のトラブルシューティング方法について説明します。

[Trace エクスプローラ] ページにデータがない

[Trace エクスプローラ] ページを使用しているが、トレースデータがあるはずなのに Google Cloud プロジェクトでトレースを表示できない。

次の手順をお試しください。

  1. Cloud Trace API が有効になっており、データがプロジェクトに書き込まれていることを確認します。

    1. Google Cloud コンソールで、[有効な API とサービス] ページに移動します。

      [有効な API とサービス] に移動

    2. Cloud Trace API が一覧表示されている場合は、次のステップに進みます。それ以外の場合は、API を有効にします。

      API を有効にするには、[API とサービスを有効にする] をクリックし、「Cloud Trace API」を検索してオプションを選択し、[有効にする] をクリックします。

  2. [有効な API とサービス] ページで、[Cloud Trace API] というラベルの付いた行を見つけます。

  3. [エラー] 列にゼロ以外の値が表示されている場合、Cloud Trace API を介したトレースデータの読み取りまたは書き込みでエラーが発生しています。エラーの原因の詳細を確認するには、[Cloud Trace API] を選択し、[指標] タブを選択して、[API メソッド別のエラー数] というラベルの付いたグラフを見つけます。

    • 書き込みが失敗した場合は、認証情報を提供するサービス アカウントに Cloud Trace エージェントのロール(roles/cloudtrace.agent)を付与します。このロールには、権限 cloudtrace.traces.patch が含まれています。この権限により、アプリケーションがスパンデータを Google Cloud プロジェクトに書き込むことができます。

      詳しくは、Cloud Trace IAM のロールをご覧ください。

    • 読み取りが失敗する場合は、 Google Cloud プロジェクトの IAM ロールに Cloud Trace ユーザーロール(roles/cloutrace.user)の権限が含まれていることを確認します。このロールの権限の一覧については、Cloud Trace の IAM ロールをご覧ください。

  4. [リクエスト] 列には、Cloud Trace API に送信されたリクエストの数が表示されます。この列がゼロの場合、その API を介してトレースデータが送信されていません。

    App Engine、Cloud Run、Cloud Run functions は、Cloud Trace API を使用せずにトレースデータを送信します。これらのサービスのみを使用する場合は、次のステップに進みます。

    Cloud Trace API を介してトレースデータを送信しているアプリケーションがあり、リクエスト列がゼロの場合は、アプリケーションとプロキシを確認して、トレースが正しいプロジェクトに送信されるように構成されていることを確認します。

  5. [Trace エクスプローラ] ページで、トレース ストレージが初期化されていることを確認します。

    1. Google Cloud コンソールで、[Trace エクスプローラ] ページに移動します。

      [Trace エクスプローラ] に移動

      このページは、検索バーを使用して見つけることもできます。

    2. トレース ストレージが初期化されていない場合、[Trace エクスプローラ] ページに次のテキストを含むバナーが表示されます。

      Trace storage is not initialized in this project. Enable trace storage to begin collecting trace data.
      

      トレース ストレージを初期化するには、バナーで [有効にする] をクリックします。通常、初期化は数分以内に完了します。

      初期化が成功すると、通知バナーが表示されます。Trace は、過去 1 時間に送信されたトレースデータを取得します。このデータは以前にバッファに保存されていました。数分後に更新すると、Trace エクスプローラにデータが表示されます。

      初期化が失敗したことを示すエラー メッセージが表示された場合は、 Google Cloud サポートチームのメンバーが手動で問題を解決する必要があります。このプロセスを開始するには、[チケットを送信] をクリックします。

  6. [Trace エクスプローラ] ページで、現在のプロジェクトのトレースデータが検索されていることを確認します。ツールバーで [範囲] 要素に移動し、[範囲を絞り込む] メニューを開いて [現在のプロジェクト] を選択し、[適用] を選択します。

特定のトレースの検索が失敗する

[Trace エクスプローラ] ページにトレース ID を入力します。トレースが見つからず、次のようなメッセージが表示されます。

The select trace with ID abcde does not exist or is older than 30 days and has been deleted per our retention policy.

この問題を解決するには、次のことを試してください。

  1. トレース ID に関連付けられたタイムスタンプが保持期間内であることを確認します。

  2. トレースを保存する Google Cloud プロジェクトを特定し、 Google Cloud コンソールのリソース選択ツールでこのプロジェクトが選択されていることを確認します。デフォルトでは、[Trace エクスプローラ] ページは、選択したプロジェクトに保存されているトレースデータにのみアクセスできます。

[Trace エクスプローラ] ページに古いデータが表示されない

[Trace エクスプローラ] ページを使用しており、最近のデータは表示されるが、期間セレクタを 30 日またはそれ以上の値に設定すると、古いデータが表示されない。

[Trace エクスプローラ] ページには、Cloud Trace のデータ保持期間(30 日)を超える期間のデータは表示されません。

期間セレクタが 30 日以下の場合は、欠落しているデータは、[Trace エクスプローラ] ページのクエリによってクエリされたデータベースが、期間設定よりも最近作成されたことを示します。たとえば、この値を 20 日に設定しても、最新の 10 日間のデータしか表示されない場合は、データベースが 10 日前に作成されたことになります。また、このデータベースには、データベースの作成後に Google Cloud プロジェクトに送信されたトレースのみが含まれます。

トレースにスパンがない

[Trace エクスプローラ] ページを開き、表示するスパンを選択します。[詳細] フライアウトにトレースが表示されますが、一部のスパンが欠落しています。

スパンが欠落している原因として、次のことが考えられます。

  • [Trace エクスプローラ] ページで、トレースのスパンデータを保存するすべての Google Cloud プロジェクトが検索されない。

  • トレースのスパンデータを保存する Google Cloud プロジェクトの IAM ロールに、トレースデータを表示するために必要な権限が含まれていません。

  • 計測に関する問題があります。たとえば、トレースの一部のスパンのみが Google Cloud プロジェクトに送信された場合などです。

これらの問題を解決するには、次の操作を行います。

  1. [Trace エクスプローラ] ページで、[スコープ] 要素が、選択したトレースのスパンを保存するプロジェクトを一覧表示するトレース スコープに設定されていることを確認します。

    前の手順で特定したプロジェクトを含むトレース スコープがない場合は、既存のトレース スコープを作成または変更します。詳細については、トレース スコープの作成と管理をご覧ください。

  2. スパンデータを保存するプロジェクトに Cloud Trace ユーザー ロール(roles/cloudtrace.user)があることを確認します。

トレースデータを表示する権限がありません

[Trace エクスプローラ] ページに次の通知が表示されます。

You don't have the required permissions to view trace data for one or more projects listed in the trace scope.

このメッセージを解決するには、ツールバーで次の操作を行います。

  1. [Scope] 要素を開き、選択したトレース スコープを確認します。
  2. [範囲を絞り込む] フライアウトで、[範囲を管理] を選択します。
  3. 最初の手順で特定したトレース スコープを見つけて、詳細を開き、 Google Cloud プロジェクトのリストを表示します。
  4. トレース スコープ内の各 Google Cloud プロジェクトで、Cloud Trace ユーザー(roles/cloudtrace.user)のロールがあることを確認します。プロジェクトにそのロールがない場合は、管理者またはプロジェクト オーナーにそのロールの付与を依頼してください。

トレース ストレージの初期化が失敗する

[トレース エクスプローラ] に表示されるバナーの [有効にする] をクリックしてトレース ストレージを初期化しようとすると、次のエラーが表示されます。

Initializing trace storage has failed for an unexpected reason. Please file a support ticket for assistance.

ストレージの初期化に失敗した場合は、 Google Cloud サポートチームのメンバーが手動で問題を解決する必要があります。サポートを利用するには、[File a ticket] をクリックします。

トレースにスパン ID メッセージが見つからない

トレースに「スパン ID が見つかりません」というメッセージが含まれています。

分散トレース システムでは、不完全なトレースが想定されます。サンプリングされたスパンに、受信されていない別のスパンへの参照が含まれている場合、トレースは不完全です。未解決の参照は、次の理由で発生する可能性があります。

  • 参照されたスパンがサンプリングされていません。
  • 参照されたスパンがサンプリングされましたが、Cloud Trace でまだ受信されていないか、スパンを受信したが保存されていません。

不完全なトレースを表示すると、Cloud Trace のトレースの詳細ペインに「Missing span ID」というメッセージが表示されます。

「スパン ID がありません」というメッセージが常に表示される場合は、次のことをお試しください。

  • 管理するコンポーネントについては、このフィールドが存在する場合、ヘッダーの sampled フラグ フラグを尊重して伝播するようにします。この設定は、リクエストをサンプリングするように子コンポーネントにヒントを与えます。トレース ヘッダーの詳細については、コンテキスト伝播のプロトコルをご覧ください。

    通常、Google Cloud サービスでは、このヒントが尊重されます。ただし、トレースデータの書き込みレートも制限します。

  • Cloud Service Mesh を使用している場合は、それらの構成におけるトレース コンテキストの伝播についてのガイダンスに従ってください。Cloud Service Mesh のガイダンスについては、トレース コンテキストの伝播をご覧ください。

OpenTelemetry を使用するように Go アプリを更新した後のトレースデータがない

アプリケーションがトレースをキャプチャするためにクライアント ライブラリを使用しており、OpenTelemetry を使用するようにアプリケーションを更新した後、Cloud Trace データが表示されなくなった。

Go 用の Cloud クライアント ライブラリの一部は OpenCensus と統合されているため、OpenCensus ブリッジを使用する必要があります。ブリッジで解決される問題の詳細については、OpenCensus Bridge をご覧ください。

Go 用 Cloud クライアント ライブラリの更新については、問題 #4237 をご覧ください。