このページでは、OpenTelemetry によるトレース収集の概要について説明します。Spanner リクエストをモニタリングしてデバッグするには、Spanner クライアント ライブラリでトレースを有効にします。クライアントサイド トレースやエンドツーエンド トレースを使用すると、パフォーマンスをモニタリングし、問題をデバッグできます。
トレースでは、クライアントからのリクエストごとに次のような関連情報を提供します。
クライアントが RPC リクエストを送信した時点やクライアントが RPC レスポンスを受信した時点のタイムスタンプを含むスパンで、ネットワークとクライアント システムによって発生したレイテンシが含まれます。
クライアントとその構成に関する情報を提供する属性(Key-Value ペア)。
スパンの重要なイベントを含むアノテーション。
スパンと属性の詳細については、OpenTelemetry ドキュメントのスパンと属性をご覧ください。
エンドツーエンドのトレース
クライアントサイド トレースに加えて、エンドツーエンド トレース(プレビュー)を有効にすることもできます。エンドツーエンド トレースは、次のような Spanner に固有のレイテンシの問題を理解してデバッグするのに役立ちます。
レイテンシがアプリケーションと Spanner 間のネットワーク レイテンシによるものなのか、Spanner 内で発生しているものなのかを特定します。
アプリケーション リクエストがルーティングされる Google Cloud リージョンと、クロスリージョン リクエストがあるかどうかを特定します。通常、クロスリージョン リクエストは、アプリケーションと Spanner 間のレイテンシの増加を意味します。
OpenTelemetry
Spanner クライアント ライブラリは、OpenTelemetry API を使用したトレース収集をサポートしています。OpenTelemetry はオープンソースのオブザーバビリティ フレームワークです。OpenTelemetry には、特定のバックエンド用のエクスポータ、サンプリング比率、スパンの上限など、幅広い構成が用意されています。
エクスポータとコレクタを使用してトレースをエクスポートする
構成の一環として、トレースをオブザーバビリティ バックエンドにエクスポートできます。ほとんどのオブザーバビリティ サービス プロバイダは、トレース エクスポータなど、使用できるエクスポータを提供しています。
OpenTelemetry では、エクスポータに加えて、コレクタ を設定することをおすすめします。コレクタにより、サービスがデータを迅速にオフロードできるようになります。また、コレクタが再試行、バッチ処理、暗号化などの追加処理を行うことができます。コレクタはアプリケーションとともに実行されます。コレクタは OTLP メッセージを受信して処理し、オブザーバビリティ バックエンドにエクスポートします。
制限事項
Spanner トレースには次の制限があります。
- トレーススパンは、Java クライアント ライブラリと Go クライアント ライブラリでのみ使用できます。
- エンドツーエンド トレースは Cloud Trace にのみエクスポートできます。
課金
トレースを行うと、Spanner の使用量に加えてオブザーバビリティ バックエンドから費用が発生する場合があります。
トレーススパンのオブザーバビリティ バックエンドへの取り込みは課金対象です。たとえば、バックエンドとして Cloud Trace を使用する場合は、Cloud Trace の料金に従って課金されます。
課金について把握するには、トラフィックに基づいて小さなトレース サンプリング比率から始めます。
次のステップ
クライアントサイドとエンドツーエンドのトレースを設定するには、OpenTelemetry を使用してトレース収集を設定するをご覧ください。