このドキュメントでは、OpenCensus を使用してカスタム クライアントサイド指標をキャプチャする方法について説明します。カスタム クライアントサイド指標を使用すると、システムのレイテンシの原因を特定できます。詳細については、レイテンシ ポイントを特定するをご覧ください。
Spanner クライアント ライブラリは、OpenCensus オブザーバビリティ フレームワークを使用して統計情報とトレースも提供します。デフォルトでは、フレームワークは無効になっています。
カスタム指標をキャプチャする前に、OpenCensus に関連するカスタム指標をよく理解し、OpenCensus 指標ライブラリと Google Cloud Observability エクスポータをアプリケーションで使用できるようにする必要があります。
クライアントの往復レイテンシをキャプチャする
クライアントのラウンドトリップ レイテンシは、クライアントがデータベースに送信する Spanner API リクエストの最初のバイトと、クライアントがデータベースから受信したレスポンスの最後のバイトの間の時間(ミリ秒単位)です。API リクエストは、Google Front End(GFE)または Cloud Spanner API フロントエンド経由で送信できます。
クライアントの往復レイテンシは、次のコードを使用してキャプチャできます。
Java
Go
このコードサンプルでは、Cloud Monitoring にエクスポートするときに、指標名に文字列 roundtrip_latency
を追加します。この指標は、追加された文字列を使用して Cloud Monitoring で検索できます。
GFE レイテンシをキャプチャする
GFE レイテンシは、Google ネットワークがクライアントからリモート プロシージャ コールを受信してから、GFE がレスポンスの最初のバイトを受信するまでの時間(ミリ秒単位)です。
GFE レイテンシをキャプチャするには、次のコードを使用します。
Java
Go
このコードサンプルでは、Cloud Monitoring にエクスポートするときに、指標名に文字列 spanner/gfe_latency
を追加します。この指標は、追加された文字列を使用して Cloud Monitoring で検索できます。
Cloud Spanner API リクエストのレイテンシをキャプチャする
Cloud Spanner API リクエストのレイテンシは、Cloud Spanner API フロントエンドが受信したクライアント リクエストの最初のバイトから、Cloud Spanner API フロントエンドが送信したレスポンスの最後のバイトまでの時間(秒単位)です。
このレイテンシ指標は、Cloud Monitoring の Spanner 指標の一部として利用できます。
クエリのレイテンシをキャプチャする
クエリのレイテンシは、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
: クエリ レイテンシ指標。
指標を選択して [適用] をクリックします。
指標のグループ化または集計の詳細については、メニューを使用してクエリを作成するをご覧ください。
次のステップ
OpenCensus の詳細について学びます。
指標を使用してレイテンシを診断する方法を学習する。