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

クライアントサイドの指標は、Java 用 Bigtable クライアント ライブラリまたは Java 用 Bigtable HBase クライアントを使用している場合に利用できます。このページでは、各クライアント サイドの指標について詳しく説明します。

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

指標は、対象となる 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
  • メソッド名
  • 最終オペレーションのステータス
  • ストリーミング オペレーション
  • クライアント名

試行レイテンシ

属性 説明
完全な指標 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
  • メソッド名
  • 試行ステータス
  • ストリーミング オペレーション
  • クライアント名

再試行回数

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

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

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

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

ReadRows リクエストは通常、反復的、非同期的、今後の呼び出しの 3 つの方法のいずれかで送信されます。次の例は、各タイプの 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
  • メソッド名
  • 最終オペレーションのステータス
  • クライアント名

サーバーのレイテンシ

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

接続エラー数

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

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

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

次のステップ