クライアントサイドの指標の説明

クライアントサイドの指標は、複数の Bigtable クライアント ライブラリで使用できます。このページでは、各クライアント サイドの指標について詳しく説明します。

Go、C++、Node.js の場合、これらの指標はサポートされているバージョンでデフォルトで有効になっています。Java クライアント ライブラリの場合、指標はクライアント ライブラリのバージョンに応じて、オプトイン機能またはデフォルトで使用できます。特定のバージョンについては、各指標の「クライアント ライブラリのサポート」セクションをご覧ください。

クライアント サイドの指標を設定して構成する方法については、クライアント サイド指標の設定をご覧ください。概要については、クライアントサイドの指標の概要をご覧ください。

指標は、対象となる Bigtable クラスタのリージョンに公開されます。オペレーションが失敗した場合など、Bigtable で指標のクラスタを解決できない場合、指標はグローバル リージョンに公開され、cluster タグの値は unspecified になります。

パフォーマンス指標のデバッグを行うには、クライアントサイドの指標をサーバーサイドの指標と組み合わせて使用します。Bigtable サーバー サイドとクライアント サイドの指標の包括的なリストについては、指標をご覧ください。

オペレーション レイテンシ

次の表に、オペレーション レイテンシ指標の属性と詳細を示します。

属性 説明
完全な指標 bigtable.googleapis.com/client/operation_latencies
定義 Bigtable オペレーションに関連するすべての RPC 試行におけるエンドツーエンドの合計レイテンシ。この指標は、クライアントから Bigtable へのオペレーションのラウンドトリップを測定します。これには、すべての再試行が含まれます。

ReadRows リクエストの場合、オペレーションのレイテンシには、返された各メッセージのアプリケーション処理時間が含まれます。
サポートされている Bigtable オペレーション
  • ReadRow
  • ReadRows
  • MutateRow
  • MutateRows
  • SampleRowKeys
  • CheckAndMutateRow
  • BulkReadRows
  • BulkMutateRows
分布
利用可能な分割項目
  • プロジェクト ID
  • インスタンス ID
  • テーブル
  • クラスタ
  • ゾーン
  • アプリ プロファイル ID
  • メソッド名
  • 最終オペレーションのステータス
  • ストリーミング オペレーション
  • クライアント名

クライアント ライブラリのサポート

次の表に、オペレーション レイテンシ指標を使用するために必要な最小クライアント ライブラリ バージョンを示します。

言語 クライアント バージョン(オプトイン) バージョン(デフォルトで有効)
Java java-bigtable 2.16.0 2.38.0
java-bigtable-hbase 2.6.4 2.14.1
Go 1.27.0
Node.js 6.2.0(ReadRows および ReadRow オペレーション)、6.3.0(その他のオペレーション)
C++ 2.40.0

試行レイテンシ

次の表に、試行レイテンシ指標の属性と詳細を示します。

属性 説明
完全な指標 bigtable.googleapis.com/client/attempt_latencies
定義 クライアント RPC 試行のレイテンシ。

通常、この値は operation_latencies と同じです。ただし、クライアントが一時的なエラーを受け取った場合は、operation_latencies がすべての attempt_latencies と指数的遅延の合計になります。
サポートされている Bigtable オペレーション
  • ReadRow
  • ReadRows
  • MutateRow
  • MutateRows
  • SampleRowKeys
  • CheckAndMutateRow
  • BulkReadRows
  • BulkMutateRows
分布
利用可能な分割項目
  • プロジェクト ID
  • インスタンス ID
  • テーブル
  • クラスタ
  • ゾーン
  • アプリ プロファイル ID
  • メソッド名
  • 試行ステータス
  • ストリーミング オペレーション
  • クライアント名

クライアント ライブラリのサポート

次の表に、試行レイテンシ指標を使用するために必要なクライアント ライブラリの最小バージョンを示します。

言語 クライアント バージョン(オプトイン) バージョン(デフォルトで有効)
Java java-bigtable 2.16.0 2.38.0
java-bigtable-hbase 2.6.4 2.14.1
Go 1.27.0
Node.js 6.2.0(ReadRows および ReadRow オペレーション)、6.3.0(その他のオペレーション)
C++ 2.40.0

再試行回数

次の表に、再試行回数指標の属性と詳細を示します。

属性 説明
完全な指標 bigtable.googleapis.com/client/retry_count
定義 オペレーションの完了に必要な試行回数を記録するカウンタ。通常の状況では、この値は空です。
サポートされている Bigtable オペレーション
  • ReadRow
  • ReadRows
  • MutateRow
  • MutateRows
  • SampleRowKeys
  • CheckAndMutateRow
  • BulkReadRows
  • BulkMutateRows
INT64
利用可能な分割項目
  • プロジェクト ID
  • インスタンス ID
  • テーブル
  • クラスタ
  • ゾーン
  • アプリ プロファイル ID
  • メソッド名
  • 最終オペレーションのステータス
  • クライアント名

クライアント ライブラリのサポート

次の表に、再試行回数指標を使用するために必要な最小クライアント ライブラリ バージョンを示します。

言語 クライアント バージョン(オプトイン) バージョン(デフォルトで有効)
Java java-bigtable 2.16.0 2.38.0
java-bigtable-hbase 2.6.4 2.14.1
Go 1.27.0
Node.js 6.2.0(ReadRows および ReadRow オペレーション)、6.3.0(その他のオペレーション)
C++ 2.40.0

アプリケーション ブロックのレイテンシ

次の表に、アプリケーション ブロッキング レイテンシ指標の属性と詳細を示します。

属性 説明
完全な指標 bigtable.googleapis.com/client/application_blocking_latencies
定義 クライアントがリクエストへのレスポンスを受信してからアプリケーションがレスポンスを読み取るまでの時間。この指標は、ReadRows リクエストに最も関連性のある指標です。この指標の開始時刻と停止時間は、読み取りリクエストの送信方法によって異なります。詳しくは、アプリケーション ブロックのレイテンシ タイマーの例をご覧ください。
サポートされている Bigtable オペレーション
  • ReadRow
  • ReadRows
  • MutateRow
  • MutateRows
  • SampleRowKeys
  • CheckAndMutateRow
  • BulkReadRows
  • BulkMutateRows
分布
利用可能な分割項目
  • プロジェクト ID
  • インスタンス ID
  • テーブル
  • クラスタ
  • ゾーン
  • アプリ プロファイル ID
  • メソッド名
  • クライアント名

クライアント ライブラリのサポート

次の表に、アプリケーション ブロッキング レイテンシ指標を使用するために必要なクライアント ライブラリの最小バージョンを示します。

言語 クライアント バージョン(オプトイン) バージョン(デフォルトで有効)
Java java-bigtable 2.16.0 2.38.0
java-bigtable-hbase 2.6.4 2.14.1
Go 1.38.0
Node.js 6.3.0(ReadRows オペレーション)
C++ 2.41.0

アプリケーション ブロックのレイテンシ タイマーの例

ReadRows リクエストは通常、反復的、非同期的、今後の呼び出し、のいずれかの方法で送信されます。次の例は、各タイプの ReadRows オペレーションに対するアプリケーション ブロックのレイテンシの開始時間と停止時間を示しています。

反復処理

long totaLatency=0;
ServerStream<Row> stream = bigtableDataClient.readRows(query);

for (Row row : stream) {
   timer.start();
   // Do something with row
   timer.stop();
   totalLatency += timer.elapsed();
}

非同期

client.readRowsAsync(query, new ResponseObserver<Row>() {
    @Override
    public void onStart(StreamController streamController) {

    }

    @Override
    public void onResponse(Row row) {
        timer.start();
        // Do something with the row
        timer.stop();
        totalLatency += timer.elapsed();
    }

    @Override
    public void onError(Throwable throwable) {
        // Do something with the error
    }

    @Override
    public void onComplete() {
    }
});

今後の呼び出し

このタイプの ReadRows リクエストでは、アプリケーションをブロックするレイテンシは約 0(タイマーなし)である必要があります。

List<Row> rows = bigtableDataClient.readRowsCallable().all().call(query);

最初のレスポンスのレイテンシ

次の表に、初回応答レイテンシ指標の属性と詳細を示します。

属性 説明
完全な指標 bigtable.googleapis.com/client/first_response_latencies
定義 クライアントがリクエストを送信してからレスポンスの最初の行を受け取るまでのレイテンシ。
サポートされている Bigtable オペレーション ReadRows
分布
利用可能な分割項目
  • プロジェクト ID
  • インスタンス ID
  • テーブル
  • クラスタ
  • ゾーン
  • アプリ プロファイル ID
  • メソッド名
  • 最終オペレーションのステータス
  • クライアント名

クライアント ライブラリのサポート

次の表に、初回応答レイテンシ指標を使用するために必要なクライアント ライブラリの最小バージョンを示します。

言語 クライアント バージョン(オプトイン) バージョン(デフォルトで有効)
Java java-bigtable 2.16.0 2.38.0
java-bigtable-hbase 2.6.4 2.14.1
Go 1.27.0
Node.js 6.2.0(ReadRows および ReadRow オペレーション)、6.3.0(その他のオペレーション)
C++ 2.40.0

サーバーのレイテンシ

次の表に、サーバー レイテンシ指標の属性と詳細を示します。

属性 説明
完全な指標 bigtable.googleapis.com/client/server_latencies
定義 Google フロントエンドが RPC を受信してからレスポンスの最初のバイトを送信するまでのレイテンシ。
サポートされている Bigtable オペレーション
  • ReadRow
  • ReadRows
  • MutateRow
  • MutateRows
  • SampleRowKeys
  • CheckAndMutateRow
  • BulkReadRows
  • BulkMutateRows
分布
利用可能な分割項目
  • プロジェクト ID
  • インスタンス ID
  • テーブル
  • クラスタ
  • ゾーン
  • アプリ プロファイル ID
  • メソッド名
  • 試行ステータス
  • ストリーミング オペレーション
  • クライアント名

クライアント ライブラリのサポート

次の表に、サーバー レイテンシ指標を使用するために必要な最小クライアント ライブラリ バージョンを示します。

言語 クライアント バージョン(オプトイン) バージョン(デフォルトで有効)
Java java-bigtable 2.16.0 2.38.0
java-bigtable-hbase 2.6.4 2.14.1
Go 1.27.0
Node.js 6.2.0(ReadRows および ReadRow オペレーション)、6.3.0(その他のオペレーション)
C++ 2.41.0

接続エラー数

次の表に、接続エラー数の指標の属性と詳細を示します。

属性 説明
完全な指標 bigtable.googleapis.com/client/connectivity_error_count
定義 Google のネットワークにアクセスできなかったリクエストの数。通常の場合、この数は 0 です。この値が 0 でない場合は、アプリケーションと Google ネットワーク間の接続に問題がある可能性があります。
サポートされている Bigtable オペレーション
  • ReadRow
  • ReadRows
  • MutateRow
  • MutateRows
  • SampleRowKeys
  • CheckAndMutateRow
  • BulkReadRows
  • BulkMutateRows
分布
利用可能な分割項目
  • プロジェクト ID
  • インスタンス ID
  • テーブル
  • クラスタ
  • ゾーン
  • アプリ プロファイル ID
  • メソッド名
  • 試行ステータス
  • クライアント名

クライアント ライブラリのサポート

次の表に、接続エラー数の指標を使用するために必要な最小クライアント ライブラリ バージョンを示します。

言語 クライアント バージョン(オプトイン) バージョン(デフォルトで有効)
Java java-bigtable 2.16.0 2.38.0
java-bigtable-hbase 2.6.4 2.14.1
Go 1.38.0
Node.js 6.2.0(ReadRows および ReadRow オペレーション)、6.3.0(その他のオペレーション)
C++ 2.41.0

クライアント ブロック レイテンシ

次の表に、クライアント ブロック レイテンシ指標の属性と詳細を示します。

属性 説明
完全な指標 bigtable.googleapis.com/client/client_blocking_latencies
定義 一括オペレーションで保留中のリクエストが多すぎるため、クライアントがサーバーへのリスエスト送信をさらにブロックした場合に発生するレイテンシ。バージョン 2.21.0 以降の場合、この指標には、クライアントがチャネルを作成したときに gRPC チャネルでキューに登録されたリクエストのレイテンシも含まれます。
サポートされている Bigtable オペレーション
  • ReadRow
  • ReadRows
  • MutateRow
  • MutateRows
  • SampleRowKeys
  • CheckAndMutateRow
  • BulkReadRows
  • BulkMutateRows
分布
利用可能な分割項目
  • プロジェクト ID
  • インスタンス ID
  • テーブル
  • クラスタ
  • ゾーン
  • アプリ プロファイル ID
  • メソッド名
  • クライアント名

クライアント ライブラリのサポート

次の表に、クライアント ブロッキング レイテンシ指標を使用するために必要な Java クライアント ライブラリの最小バージョンを示します。

言語 クライアント バージョン(オプトイン) バージョン(デフォルトで有効)
Java java-bigtable 2.16.0 2.38.0
java-bigtable-hbase 2.6.4 2.14.1

次のステップ