クライアントサイドの指標の説明
クライアントサイドの指標は、Java 用 Bigtable クライアント ライブラリまたは Java 用 Bigtable HBase クライアントを使用している場合に利用できます。このページでは、各クライアント サイドの指標について詳しく説明します。
クライアント サイドの指標を設定して構成する方法については、クライアント サイド指標の設定をご覧ください。概要については、クライアントサイドの指標の概要をご覧ください。
指標は、対象となる Bigtable クラスタのリージョンに公開されます。オペレーションが失敗した場合など、Bigtable で指標のクラスタを解決できない場合、指標はグローバル リージョンに公開され、cluster
タグの値は unspecified
になります。
パフォーマンス指標のデバッグを行うには、クライアントサイドの指標をサーバーサイドの指標と組み合わせて使用します。Bigtable サーバー サイドとクライアント サイドの指標の包括的なリストについては、指標をご覧ください。
オペレーション レイテンシ
属性 | 説明 |
---|---|
完全な指標 | bigtable.googleapis.com/client/operation_latencies |
定義 | Bigtable オペレーションに関連するすべての RPC 試行におけるエンドツーエンドの合計レイテンシ。この指標は、クライアントから Bigtable へのオペレーションの往復を測定し、すべての再試行を含みます。ReadRows リクエストの場合、オペレーションのレイテンシには、返された各メッセージのアプリケーション処理時間が含まれます。 |
サポートされている Bigtable オペレーション |
|
型 | 分布 |
利用可能な分割項目 |
|
試行レイテンシ
属性 | 説明 |
---|---|
完全な指標 | bigtable.googleapis.com/client/attempt_latencies |
定義 | クライアント RPC 試行のレイテンシ。 通常、この値は operation_latencies と同じです。ただし、クライアントが一時的なエラーを受け取った場合は、operation_latencies がすべての attempt_latencies と指数的遅延の合計になります。 |
サポートされている Bigtable オペレーション |
|
型 | 分布 |
利用可能な分割項目 |
|
再試行回数
属性 | 説明 |
---|---|
完全な指標 | bigtable.googleapis.com/client/retry_count |
定義 | オペレーションの完了に必要な試行回数を記録するカウンタ。通常の状況では、この値は空です。 |
サポートされている Bigtable オペレーション |
|
型 | 分布 |
利用可能な分割項目 |
|
アプリケーション ブロックのレイテンシ
属性 | 説明 |
---|---|
完全な指標 | bigtable.googleapis.com/client/application_blocking_latencies |
定義 | クライアントがリクエストへのレスポンスを受信してからアプリケーションがレスポンスを読み取るまでの時間。この指標は、ReadRows リクエストに最も関連しています。この指標の開始時刻と停止時間は、読み取りリクエストの送信方法によって異なります。詳しくは、アプリケーション ブロックのレイテンシ タイマーの例をご覧ください。 |
サポートされている Bigtable オペレーション |
|
型 | 分布 |
利用可能な分割項目 |
|
アプリケーション ブロックのレイテンシ タイマーの例
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 |
型 | 分布 |
利用可能な分割項目 |
|
サーバーのレイテンシ
属性 | 説明 |
---|---|
完全な指標 | bigtable.googleapis.com/client/server_latencies |
定義 | Google フロントエンドが RPC を受信してからレスポンスの最初のバイトを送信するまでのレイテンシ。 |
サポートされている Bigtable オペレーション |
|
型 | 分布 |
利用可能な分割項目 |
|
接続エラー数
属性 | 説明 |
---|---|
完全な指標 | bigtable.googleapis.com/client/connectivity_error_count |
定義 | Google のネットワークにアクセスできなかったリクエストの数。通常の場合、この数は 0 です。この数値が 0 でない場合は、アプリケーションと Google ネットワーク間の接続に問題がある可能性があります。 |
サポートされている Bigtable オペレーション |
|
型 | 分布 |
利用可能な分割項目 |
|
クライアント ブロック レイテンシ
属性 | 説明 |
---|---|
完全な指標 | bigtable.googleapis.com/client/client_blocking_latencies |
定義 | 一括オペレーションで保留中のリクエストが多すぎるため、クライアントがサーバーへのリスエスト送信をさらにブロックした場合に発生するレイテンシ。バージョン 2.21.0 以降の場合、この指標には gRPC チャネルでキューに登録されたリクエストのレイテンシも含まれます。 |
サポートされている Bigtable オペレーション |
|
型 | 分布 |
利用可能な分割項目 |
|