Cloud Trace について

Google Cloud の分散トレース システムである Cloud Trace を使用すると、ユーザーや他のアプリケーションからの受信リクエストをアプリケーションが処理するのにかかる時間や、リクエストの処理時に実行されるオペレーション(RPC 呼び出しなど)が完了するのにかかる時間を知ることができます。

Cloud Trace は、App EngineHTTP(S) ロードバランサCloud Trace API でインストゥルメントされたアプリケーションからレイテンシ データを収集するため、以下の疑問の解決に役立ちます。

  • アプリケーションがリクエストを処理するのにどのくらい時間がかかるか?
  • アプリケーションがリクエストを処理するのになぜそんなに時間がかかるのか?
  • 一部のリクエストが他のリクエストより時間がかかるのはなぜか?
  • アプリケーションへのリクエストの全体的なレイテンシは?
  • アプリケーションのレイテンシは時間とともに増加しているのか、減少しているのか?
  • アプリケーションのレイテンシを小さくするにはどうすればよいか?
  • アプリケーションにどのような依存関係があるか?

アプリケーションのデバッグとプロファイリングについては、Cloud DebuggerCloud Profiler をご覧ください。

環境サポート

Cloud Trace は、次の環境の Linux 上で動作します。

Cloud Trace には、アプリケーションをインストゥルメント化してトレース情報をキャプチャするためのクライアント ライブラリが用意されています。言語別の設定手順については、Cloud Trace の設定をご覧ください。

自動トレースを使用した構成

一部の構成では、トレースデータが自動的に取得されます。

  • App Engine スタンダード環境

    Java 8、Python 2、PHP 5 のアプリケーションでは、Cloud Trace クライアント ライブラリを使用する必要はありません。これらのランタイムは、アプリケーション URI へのリクエストのレイテンシ データを自動的に Cloud Trace に送信します。リクエストには、App Engine サービスへのラウンドトリップ RPC 呼び出しに関するレイテンシ データが含まれます。Cloud Trace は、Cloud SQL を除いたすべての App Engine Admin API と連携します。

  • Cloud Functions と Cloud Run

    受信 HTTP リクエストと送信 HTTP リクエストでは、レイテンシ データが自動的に収集されます。

言語対応

次の表は、Trace クライアント ライブラリの可用性、Stackdriver エクスポーターを含む、OpenCensus ライブラリの可用性、およびCloudTraceへのエクスポーターを含む OpenTelemetry ライブラリの可用性をまとめたものです。

言語 クライアント ライブラリ
利用可能
OpenCensus
ライブラリが利用可能
OpenTelemetry
ライブラリが利用可能
C# ASP.NET Core × ×
C# ASP.NET × ×
Go
Java
Node.js
PHP ×
Python
Ruby × ×

OpenTelemetry および OpenCensus ライブラリは、対応する Cloud Trace クライアント ライブラリの複雑さの一部を隠しているため、より簡単に使用できます。これらのライブラリを使用する場合は、Cloud Trace エクスポータを使用するようにアプリケーションをインストゥルメント化します。

一般的な設定手順については、Cloud Trace の設定をご覧ください。

コンポーネント

Cloud Trace は、トレースを収集して Google Cloud プロジェクトに送信するトレース クライアントで構成されます。データが送信されると、Google Cloud Console で、エージェントによって収集されたデータを表示および分析できます。

1 件のトレースは、アプリケーションが 1 つのオペレーションを完了するまでにかかる時間を表します。各トレースは、1 つ以上のスパンから構成されます。1 つのスパンは、1 つのサブオペレーション全体の実行にかかる時間を表します。たとえば、ユーザーから受信リクエストを処理してレスポンスを返すまでにかかる時間を 1 件のトレースで表すことができます。スパンは、特定の RPC 呼び出しに必要な時間を表す場合もあります。詳細については、Cloud Trace のデータモデルをご覧ください。

トレース クライアント

OpenCensus ライブラリがご使用のプログラミング言語で利用できる場合は、OpenCensus を使用してトレースデータの作成と送信が簡単に処理できます。OpenCensus は、簡単に使用できるだけでなく、バッチ処理を実装してパフォーマンスを向上させることができます。

OpenCensus ライブラリが存在しない場合は、Trace SDK ライブラリをインポートし、Cloud Trace API を使用してコードをインストゥルメント化します。Cloud Trace API はトレースデータを収集して、Google Cloud プロジェクトに送信します。

トレース インターフェース

エージェントが収集したトレースデータを、ほぼリアルタイムで Cloud Trace インターフェースに表示して分析できます。このインターフェースには、[概要]、[トレースリスト]、[分析レポート] という 3 つのページがあります。

Cloud Trace の使用を開始するには、Cloud Console のナビゲーション ペインで [トレース] を選択するか、次のボタンをクリックします。

[トレース] に移動

トレースデータを受信する Google Cloud プロジェクトへのアクセス権がなければ、Trace コンソールにデータは表示されません。

概要

[概要] ページには、アプリケーションの要約情報が表示されます。

Cloud Trace の概要ページ

該当する場合は、[分析情報] ペインに、アプリケーションのパフォーマンス分析情報のリストが表示されます。このペインでは、アプリケーションでの一般的な問題がハイライト表示されます。たとえば、関数の連続呼び出しを一括処理することで効率が高まる可能性があるなどです。

[最近のトレース] ペインには、直近のトレースが表示されます。それぞれについて、レイテンシ、URI、時間が表示されます。この要約を使用して、アプリケーションでの現在のアクティビティを理解できます。

[頻度が高い URI] と [頻度が高いリモート プロシージャ コール] には、前日の最も頻度の高い URI(および RPC)が平均レイテンシとともに表示されます。これらの表でリンクをクリックすると、一致するリクエスト を表示するように事前構成された [トレースリスト] ウィンドウが開きます。[トレースリスト] ページを使用すると、レイテンシを時間の関数として表示し、個々のトレースの詳細を調べることができます。

[課金対象のトレーススパン] ペインには、現在のカレンダー月に取り込まれたスパンの数と前月の合計が表示されます。この情報を使用して、Cloud Trace の使用による費用をモニタリングできます。費用の詳細については、このページの料金セクションをご覧ください。

[日次分析レポート] ペインには、前日のレイテンシ データが表示され、7 日前のレイテンシ データと比較されます。 このデータを使用して、レイテンシの動作が時間とともに変化しているかどうかを確認できます。このページのレポートの形式は変更できません。ただし、カスタム分析レポートを作成できます。

Cloud Trace の [概要] ページの詳細については、Cloud Console でのトレースの表示をご覧ください。

トレースリスト

[トレースリスト] ページでは、個々のトレースを詳しく調査できます。デフォルトでは、このビューには、すべてのトレースのレイテンシのプロットが表示され、最新のトレースが表に示されます。

調べる特定のトレースを選択すると、2 つの新しいペインが開きます。これらはトレース内のすべてのスパンを表示するペインと、選択したスパンに関する詳細を表示する情報ペインです。デフォルトでは、ルートスパンが選択され、詳細にはリクエストに関する概要情報が含まれます。調査のためにトレースを見つけるには、フィルタを使用します。

トレース詳細のフィルタリングと表示について詳しくは、トレースの検索と表示トレース詳細の表示をご覧ください。

分析レポート

[分析レポート] ページでは、カスタム レポートを作成できます。これらのレポートには、すべてのトレースを含めるか、フィルタを指定してトレースのサブセットのみを含めることができます。また、2 つの異なるレイテンシ データを比較するレポートを作成することもできます。詳細については、分析レポートの作成をご覧ください。

データ セキュリティ

Cloud Trace は、VPC Service Controls でサポートされるサービスです。詳しくは、VPC Service Controls のドキュメントをご覧ください。

次のステップ