このページでは、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 クライアント ライブラリを使用してトレースデータの収集を開始します。
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 エクスプローラの使用方法について詳しくは、トレースを検索して調査するをご覧ください。