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