Google Cloudの分散トレース システムである Cloud Trace を使用すると、ユーザーや他のアプリケーションからの受信リクエストをアプリケーションが処理するのにかかる時間や、リクエストの処理時に実行されるオペレーション(RPC 呼び出しなど)が完了するのにかかる時間を知ることができます。トレース機能は、サービスの開発時や障害のトラブルシューティング時にも役立ちます。たとえば、複雑なマイクロサービス アーキテクチャでリクエストがどのように処理されるかを理解したり、調査するログを特定したりするのに役立ちます。
Trace は、App Engine などの一部のサービスと Cloud Trace API で計測されたアプリケーションからレイテンシ データを受信するため、次の質問に答えるうえで役立ちます。 Google Cloud
- アプリケーションがリクエストを処理するのにどのくらい時間がかかるか?
- アプリケーションがリクエストを処理するのになぜそんなに時間がかかるのか?
- 一部のリクエストが他のリクエストより時間がかかるのはなぜか?
- アプリケーションへのリクエストの全体的なレイテンシは?
- アプリケーションのレイテンシは時間とともに増加しているのか、減少しているのか?
- アプリケーションのレイテンシを小さくするにはどうすればよいか?
- アプリケーションにどのような依存関係があるか?
Trace を使用してアプリケーションを管理する方法については、分散アプリケーションのトラブルシューティング: トレースとログを組み合わせて根本原因分析を実行するというブログをご覧ください。
アプリケーションのプロファイリングについては、Cloud Profiler をご覧ください。
環境サポート
Trace は、次の環境の Linux 上で動作します。
- Compute Engine
- Google Kubernetes Engine(GKE)
- App Engine フレキシブル環境
- App Engine スタンダード環境
- Cloud Run
- Google Cloud 以外の環境
Trace には、アプリケーションを計装可能にしてトレース情報をキャプチャするためのクライアント ライブラリが用意されています。言語別の設定手順については、Trace 用の計測をご覧ください。
自動トレースのある構成
構成によっては、トレースデータが自動的にキャプチャされることもあります。
App Engine スタンダード環境
Java 8、Python 2、PHP 5 アプリケーションで Trace クライアント ライブラリを使用する必要はありません。これらのランタイムは、アプリケーション URI へのリクエストのレイテンシ データを自動的に Trace に送信します。リクエストには、App Engine サービスへのラウンドトリップ RPC 呼び出しに関するレイテンシ データが含まれます。Trace は、Cloud SQL を除いたすべての App Engine Admin API と連携します。
Cloud Run functions と Cloud Run
受信および送信 HTTP リクエストで、レイテンシ データが自動的に Trace に送信されます。
言語サポート
次の表は、Trace クライアント ライブラリと、Trace へのエクスポータがある OpenTelemetry ライブラリの可用性をまとめたものです。
言語 | クライアント ライブラリ 利用可能 |
OpenTelemetry lib/exporter が利用可能 |
---|---|---|
C++ | ○ | ○ |
C# ASP.NET Core | ○ | × |
C# ASP.NET | ○ | × |
Go | ○ | ○ |
Java | ○ | ○ |
Node.js | ○ | ○ |
PHP | ○ | × |
Python | ○ | ○ |
Ruby | ○ | ○ |
OpenTelemetry ライブラリは、対応する Trace API の複雑さの一部を隠蔽しているため、Trace クライアント ライブラリよりも簡単に使用できます。計測手法の推奨事項については、計測方法を選択するをご覧ください。
コンポーネント
トレースは、トレースを収集してプロジェクトに送信するトレース クライアントで構成されます。 Google Cloud データが送信されると、Google Cloud コンソールで、エージェントによって収集されたデータを表示および分析できます。データモデルの詳細については、トレースとスパンをご覧ください。
トレース クライアント
OpenTelemetry ライブラリがご使用のプログラミング言語で利用できる場合は、OpenTelemetry を使用してトレースデータの作成と送信が簡単に処理できます。OpenTelemetry は、簡単に使用できるだけでなく、バッチ処理を実装してパフォーマンスを向上させることができます。
OpenTelemetry ライブラリが存在しない場合は、Trace SDK ライブラリをインポートし、Cloud Trace API を使用してコードを計測します。Cloud Trace API はトレースデータを Google Cloud プロジェクトに送信します。
トレース インターフェース
トレースデータを、ほぼリアルタイムで Trace インターフェースに表示して分析できます。
[Trace エクスプローラ] ページには、トレースデータに関する集計情報が表示されます。また、個々のトレースを詳しく調査することもできます。集計されたレイテンシ データがヒートマップに表示され、ポインタで探索できます。表示されるデータを制限するには、フィルタを追加します。このページでは、個々のスパンとトレースを表示して確認することもできます。
- 複数のプロジェクトに保存されているトレースデータを表示する方法については、トレース スコープの作成と管理をご覧ください。
- トレースデータのフィルタリングと表示については、トレースを検索して調査するをご覧ください。
VPC Service Controls のサポート
Trace は、VPC Service Controls でサポートされるサービスです。トレース サービス名は cloudtrace.googleapis.com
です。Trace サービスに作成した VPC Service Controls の制限は、そのサービスにのみ適用されます。これらの制限は、トレースデータを取り込むことができる telemetry.googleapis.com
サービスなど、他のサービスには適用されません。
詳しくは以下をご覧ください。
料金
Cloud Trace の料金については、Google Cloud Observability の料金をご覧ください。
次のステップ
クイックスタートをお試しください。
割り当てと上限については、割り当てと上限をご覧ください。
DevOps に関するリソースをご覧ください。また、DevOps Research and Assessment 研究プログラムについても確認してください。