従来の HBase クライアント サイドの指標
このページでは、クライアント サイドの組み込み指標に置き換えられた一連のクライアント サイドの指標について説明します。このページは、引き続き以前の指標を使用するデベロッパー向けの参考資料として提供されています。
このページで説明する以前の指標ではなく、クライアント サイドの指標の概要で説明されているクライアント サイドの組み込み指標を使用することをおすすめします。
指標を有効にする
この情報は、以前の指標を使用しているお客様向けのものです。新しい組み込みのクライアント サイドの指標を有効にするには、クライアント サイドの指標を設定するをご覧ください。
Java 用の Cloud Bigtable HBase クライアントは、Dropwizard Metrics を使用して、クライアント側指標を収集および報告します。指標の収集によって各リクエストにわずかなレイテンシ(10 マイクロ秒未満)が生じる可能性があるため、指標はデフォルトでは有効になっていません。以降のセクションでは、従来のクライアント サイドの指標を有効化する方法について説明します。
Log4j レポーターを使用する
従来のクライアント サイドの指標を有効にする最も簡単な方法は、Log4j 構成ファイルに次の行を追加する方法です。
log4j.category.com.google.cloud.bigtable.metrics=DEBUG
この構成設定によって、指標収集が有効になり、SLF4J ロガーを使用して Bigtable 指標が収集されます。
その他のレポーターを使用する
アプリケーションのコードを更新して、その他のタイプのレポーターを使用できます。たとえば、Graphite サーバーに指標を送信するレポーターがあります。
Graphite pickledGraphite = new PickledGraphite(new InetSocketAddress("graphite.example.com", 2004));
DropwizardMetricRegistry registry = new DropwizardMetricRegistry();
GraphiteReporter reporter =
GraphiteReporter.forRegistry(registry.getRegistry())
.convertRatesTo(TimeUnit.SECONDS)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.filter(MetricFilter.ALL)
.build(pickledGraphite);
reporter.start(1, TimeUnit.MINUTES);
BigtableClientMetrics.setMetricRegistry(registry);
Dropwizard Metrics は、JMX、コンソール ロギング、SLF4J、CSV のレポーターを提供しています。また、さまざまなサードパーティ レポーターも利用可能です。
利用可能な指標
このセクションでは、従来の HBase クライアント サイドの指標が有効になっている場合に使用可能な指標について説明します。各指標は、次のいずれかのタイプに該当します。
- カウンタ: Java 仮想マシン(JVM)あたりの累積数。
- メーター: カウント情報とスループット情報(最後の 1 分、5 分、15 分あたりのカウント)
- タイマー: メーター情報とレイテンシ情報(中央値、平均値、95 パーセンタイルなど)
リクエストのタイプごとに特定の指標のみが収集されます。Put
リクエスト中に収集される指標の例については「例: Put
リクエストの指標」をご覧ください。
チャネルレベルの指標
タイプ | 名前 | 説明 |
---|---|---|
カウンタ | google-cloud-bigtable.sessions.active |
オープンされている BigtableSession の数。各 HBase Connection には 1 つの BigtableSession があります。 |
カウンタ | google-cloud-bigtable.grpc.channel.active |
開かれた下位レベル gRPC/Netty チャンネルの数。各 BigtableSession には多数の gRPC チャネルがあります。 |
一般 RPC 指標
タイプ | 名前 | 説明 |
---|---|---|
カウンタ | google-cloud-bigtable.grpc.rpc.active |
現在アクティブなリモート プロシージャ コール(RPC)の数。 |
メーター | google-cloud-bigtable.grpc.rpc.performed |
RPC スループット。 |
データメソッド指標
データメソッド指標は、次のデータメソッドについて収集されます。
ReadRows
: 取得とスキャンを実装します。MutateRow
: Put と削除を実装します。MutateRows
: バルク書き込みを実装します。CheckAndMutateRow
: HBase のcheckAnd*
メソッドを実装します。ReadModifyWrite
: HBase のAppend
メソッドとIncrement
メソッドを実装します。SampleRowKeys
: MapReduce オペレーションに使用されるリージョン情報を取得します。
タイプ | 名前 | 説明 |
---|---|---|
タイマー | google-cloud-bigtable.grpc.method.[METHOD_TYPE].operation.latency |
個々のオペレーションにかかる時間の長さ。オペレーションには、実行されるすべての RPC のレイテンシの合計が含まれています(通常、RPC が 1 回だけ行われます。一時的なエラーがある場合、クライアント側の再試行によって同じ RPC が複数回行われることがあります)。 |
タイマー | google-cloud-bigtable.grpc.method.ReadRows.firstResponse.latency |
スキャン リクエストへの最初のレスポンスの受信にかかる時間の長さ。 |
メーター | google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.performed |
実施された再試行の回数。 |
メーター | google-cloud-bigtable.grpc.method.[METHOD_TYPE].failures |
再試行不可能な障害の数。 |
メーター | google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.exhausted |
再試行の失敗数が上限に達し、再試行が中止された回数。 |
バルク指標
バルク指標は、bulk write など、複数のレスポンスを返すメソッドに提供されます。
タイプ | 名前 | 説明 |
---|---|---|
メーター | google-cloud-bigtable.scanner.results |
スキャンによって返された個々の行のスループット。 |
メーター | google-cloud-bigtable.bulk-mutator.mutations.added |
各 MutateRows リクエストに追加された個々のミューテーションのスループット。 |
メーター | google-cloud-bigtable.bulk-mutator.mutations.retried |
時間をかけて再試行されたミューテーションの数。 |
Bigtable テーブル指標
Bigtable オブジェクトを HBase オブジェクトに変換すると、リクエストのレイテンシが増える可能性があります。次のタイマーは、変換のコストを測定するため、指定された *.operation.latency
タイマーと関連付けることができます。
タイプ | 名前 | 説明 |
---|---|---|
タイマー | google-cloud-bigtable.table.put.latency |
個々の Put オペレーションにかかる時間の長さ。google-cloud-bigtable.grpc.method.MutateRow.operation.latency と関連しています。 |
タイマー | google-cloud-bigtable.table.get.latency |
個々の Get オペレーションにかかる時間の長さ。google-cloud-bigtable.grpc.method.ReadRows.operation.latency と関連しています。 |
例: Put
リクエストの指標
クライアント側の指標が有効になっている場合、再試行されていない成功した Put
リクエストについて、次の指標が収集されます。
- カウンタ:
google-cloud-bigtable.grpc.rpc.active
- メーター:
google-cloud-bigtable.grpc.rpc.performed
- タイマー:
google-cloud-bigtable.grpc.method.MutateRow.operation.latency
- タイマー:
google-cloud-bigtable.table.put.latency
これらの指標の収集によって、Put
オペレーションが約 1 マイクロ秒(1/1000 ミリ秒)増える可能性があります。対象となるデータの量が約 1 KB の場合、Put
オペレーション全体では 2~3 ミリ秒かかることになります。