このページでは、Cloud Storage クライアント ライブラリを使用して Cloud Storage とやり取りするときに、OpenTelemetry でクライアントサイドのトレースを有効にする方法について説明します。トレースデータを収集して表示するには、サポートされている次の Cloud Storage クライアント ライブラリを使用します。
概要
Cloud Storage クライアント ライブラリでトレースを有効にすると、パフォーマンスをモニタリングし、レイテンシの問題を特定して、Cloud Storage リクエストのデバッグをすばやく実行できます。トレースを使用すると、完了したリクエストのシーケンスを確認できます。これにより、リクエストが Cloud Storage によってどのように受信、管理、応答されたのかを把握できます。1 つのトレースは複数のスパンで構成されます。スパンは、Cloud Storage リクエスト全体でアプリケーションが実行した各関数またはオペレーションの詳細を含むタイムスタンプ付きレコードです。
利点
トレースデータの収集と伝播は、アプリケーションに対して次の利点があります。
パフォーマンスの可視性の向上: トレースデータは、Cloud Storage が各リクエストを完了するときにほぼリアルタイムで生成されるため、パフォーマンスのボトルネックをすばやく特定し、レイテンシの問題を検出できます。
エラー処理: トレースで提供される Cloud Storage リクエストに関する情報により、問題が発生した場所を特定し、根本原因の分析を迅速に行い、ダウンタイムを短縮できます。
クライアントサイド トレースの仕組み
以降のセクションでは、トレース収集の仕組みについて詳しく説明します。
OpenTelemetry でのトレース収集の仕組み
Cloud Storage クライアント ライブラリは、OpenTelemetry SDK を使用してトレースデータの収集をサポートし、トレースデータの収集と伝播に必要な次のコンポーネントを設定します。
トレース プロバイダ: Cloud Storage クライアント ライブラリで使用されるトレース プロバイダは、アプリケーション内のトレースやスパンの生成と管理など、トレース システムの作成と管理を行います。
トレース エクスポーター: OpenTelemetry SDK で使用されるトレース エクスポーターは、トレースデータを Cloud Trace などのバックエンド オブザーバビリティ プラットフォームに送信し、トレースデータの分析と可視化ができるようにします。トレース エクスポーターの詳細については、トレース エクスポーターの仕組みをご覧ください。
トレース エクスポーターの仕組み
OpenTelemetry SDK を使用してトレースを構成するには、分析、保存、可視化を行う場所にデータをエクスポートするオブザーバビリティ バックエンドを選択します。トレースデータを任意のオブザーバビリティ バックエンドにエクスポートできますが、Cloud Trace を使用することをおすすめします。これは、 Google Cloud コンソールからアクセスでき、他の Google Cloud サービスと統合できます。
トレース プロバイダとトレース エクスポーターを構成して有効にすると、各 Cloud Storage リクエストに対してトレースとスパンが生成されるため、トレースデータを準リアルタイムで表示できます。
Google Cloud コンソールの Cloud Trace エクスプローラを使用すると、次のものを含むトレースを表示できます。
Cloud Storage リクエストのエンドツーエンドの概要。
複数のスパン。各スパンは、Cloud Storage リクエスト内で実行された単一オペレーションをタイムスタンプ付きでキャプチャします。
トレースとスパンの詳細については、OpenTelemetry ドキュメントでトレースとスパンの説明をご覧ください。
料金
トレースデータは有料です。Cloud Trace によって取り込まれ、スキャンされたトレーススパンの数に基づいて課金されます。課金対象のトレーススパンと料金の例の詳細については、Cloud Trace の費用をご覧ください。
始める前に
Cloud Storage API の使用状況のトレースを収集する前に、次の手順を完了する必要があります。
-
Enable the Cloud Trace API.
Cloud Storage API を有効にします。
必要なロール
Cloud Trace にトレースを書き込むために必要な権限を取得するには、クライアントが使用するプロジェクトに対する Cloud Trace エージェント(roles/coudtrace.agent
)IAM ロールを付与するよう管理者に依頼してください。
この事前定義ロールには、Cloud Trace にトレースを書き込むために必要な cloudtrace.traces.patch
権限が含まれています。
事前定義ロールを使用してこれらの権限を取得することもできます。また、カスタムロールを作成して特定の権限を付与することもできます。プロジェクトにロールを付与する手順については、ロールの付与または取り消しをご覧ください。Cloud Trace エージェントのロールの詳細については、Identity and Access Management(IAM)のドキュメントをご覧ください。
アプリケーションのトレースを構成する
次の手順でトレースを構成し、Cloud Storage クライアント ライブラリを使用してトレースデータの収集を開始します。
C++
次のバージョンをインストールします。
C++ クライアント ライブラリ バージョン v2.16.0 以降
C++ バージョン 14 以降
C++ クライアント ライブラリで OpenTelemetry トレース計測を有効にするには、CMake または Bazel のビルドシステム構成を更新します。
OpenTelemetry トレースを有効にして Cloud Storage クライアントのインスタンスを作成します。
Java
次の Cloud Storage Java クライアント ライブラリ バージョンをインストールします。
com.google.cloud:google-cloud-storage:2.47.0
以降com.google.cloud:libraries-bom:26.53.0
以降
OpenTelemetry 用 Cloud Trace エクスポーターをインストールします。任意のエクスポーターを使用することもできます。
Cloud Trace プロパゲーターをインストールします。
OpenTelemetry トレースを有効にして Cloud Storage クライアントのインスタンスを作成します。
Python
Cloud Storage Python クライアント ライブラリをインストールします。
pip install google-cloud-storage[tracing]>=2.18.0
Cloud Trace エクスポーターとプロパゲータをインストールします。任意のエクスポーターを使用することもできます。
pip install opentelemetry-exporter-gcp-trace opentelemetry-propagator-gcp
OpenTelemetry リクエスト計測をインストールして、基盤となる HTTP リクエストをトレースします。
pip install opentelemetry-instrumentation-requests
Python ストレージ クライアントのトレースを個別に有効にするように環境変数を設定します。
export ENABLE_GCS_PYTHON_CLIENT_OTEL_TRACES=True
トレース エクスポーターとトレース プロバイダを構成します。
トレースを表示する
Cloud Trace エクスプローラを使用して、 Google Cloud コンソールでトレースデータを表示します。
-
Google Cloud コンソールで、[Trace エクスプローラ] ページに移動します。
このページは、検索バーを使用して見つけることもできます。
[Trace エクスプローラ] ページの散布図で特定のトレースをタップして、トレースの詳細を表示します。
[トレースの詳細] ペインには、トレーススパンの表が表示されます。
省略可: スパンの行をクリックすると、特定のスパンに関する次のような詳細情報が表示されます。
属性: スパンに関する追加情報を提供する Key-Value ペア。
ログとイベント: スパンに関連付けられているログエントリ。
スタック トレース: スパンに関連付けられているスタック トレース。
メタデータとリンク: スパンに関連付けられている他のサービスへのリンク。 Google Cloud
Cloud Trace エクスプローラの使用方法について詳しくは、トレースを検索して調査するをご覧ください。