従来の 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 ミリ秒かかることになります。