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