このドキュメントでは、OpenTelemetry を使用してカスタム クライアント指標をキャプチャする方法について説明します。カスタム クライアント指標は、Java クライアント ライブラリと Go クライアント ライブラリを使用して利用できます。
カスタム クライアントサイド指標を使用すると、システムのレイテンシの原因を特定できます。詳細については、Spanner リクエストのレイテンシ ポイントをご覧ください。
Spanner クライアント ライブラリは、OpenTelemetry オブザーバビリティ フレームワークを使用して統計情報とトレースも提供します。詳細については、OpenTelemetry を使用してトレースの収集を設定するをご覧ください。
OpenTelemetry は、トレース、指標、ログなどのテレメトリー データを作成して管理できるオープンソースのオブザーバビリティ フレームワークとツールキットです。
始める前に
テレメトリー データをエクスポートするには、適切なオプションを使用して OpenTelemetry SDK を構成する必要があります。OpenTelemetry プロトコル(OTLP)エクスポータを使用することをおすすめします。
OpenTelemetry を使用してカスタム クライアントサイド指標を設定するには、OpenTelemetry SDK と OTLP エクスポータを構成する必要があります。
次のコードを使用して、必要な依存関係をアプリケーションに追加します。
OTLP エクスポータを使用して OpenTelemetry オブジェクトを作成し、
SpannerOptions
を使用して Spanner に挿入します。
GFE レイテンシをキャプチャする
Google Front End(GFE)レイテンシは、Google ネットワークがクライアントからリモート プロシージャ コールを受信してから、GFE がレスポンスの最初のバイトを受信するまでの時間(ミリ秒単位)です。
GFE レイテンシをキャプチャするには、次のコードを使用します。
このコードサンプルでは、Cloud Monitoring にエクスポートするときに、指標名に文字列 spanner/gfe_latency
を追加します。この指標は、追加された文字列を使用して Cloud Monitoring で検索できます。
Cloud Spanner API リクエストのレイテンシをキャプチャする
Cloud Spanner API リクエストのレイテンシは、Cloud Spanner API フロントエンドが受信したクライアント リクエストの最初のバイトから、Cloud Spanner API フロントエンドが送信したレスポンスの最後のバイトまでの時間(秒単位)です。
このレイテンシ指標は、Cloud Monitoring の指標の一部として利用できます。
クライアントの往復レイテンシをキャプチャする
クライアントのラウンドトリップ レイテンシは、クライアントが GFE と Cloud Spanner API フロントエンドの両方からデータベースに送信する Cloud Spanner API リクエストの最初のバイトと、クライアントがデータベースから受信したレスポンスの最後のバイトの間の時間(ミリ秒単位)です。
OpenTelemetry では、Spanner クライアントのラウンドトリップ レイテンシ指標はサポートされていません。代わりに、オペレーション レイテンシのクライアントサイド指標を表示できます。詳細については、クライアントサイドの指標の説明をご覧ください。
ブリッジを使用して OpenCensus で指標を計測し、データを OpenTelemetry に移行することもできます。
クエリのレイテンシをキャプチャする
クエリのレイテンシは、Spanner データベースで SQL クエリを実行するのにかかる時間(ミリ秒単位)です。
クエリのレイテンシをキャプチャするには、次のコードを使用します。
このコードサンプルでは、Cloud Monitoring にエクスポートするときに、指標名に文字列 spanner/query_stats_elapsed
を追加します。この指標は、追加された文字列を使用して Cloud Monitoring で検索できます。
Metrics Explorer で指標を表示する
Google Cloud コンソールで、[Metrics Explorer] ページに移動します。
プロジェクトを選択します。
[指標を選択] をクリックします。
次の文字列を使用して、レイテンシ指標を検索します。
roundtrip_latency
: クライアントのラウンドトリップ レイテンシ指標。spanner/gfe_latency
: GFE レイテンシ指標。spanner/query_stats_elapsed
: クエリ レイテンシ指標。
指標を選択して [適用] をクリックします。
指標のグループ化または集計の詳細については、メニューを使用してクエリを作成するをご覧ください。
次のステップ
- OpenTelemetry の詳細を確認する。
- OpenTelemetry SDK を構成する方法を確認する。
- OpenTelemetry に移行する方法を確認する。
- 指標を使用してレイテンシを診断する方法を学習する。