クライアント側指標のレポート

Java 用の Cloud Bigtable HBase クライアントを使用すると、Cloud Bigtable のパフォーマンスのモニタリングを可能にするクライアント側指標を収集できます。他の Cloud Bigtable クライアント ライブラリは、クライアント側指標を提供しません。このページでは、Java 用 HBase クライアントでクライアント側指標を有効にし、利用可能な指標を一覧表示する方法について説明します。

指標の有効化

Java 用の Cloud Bigtable HBase クライアントは、Dropwizard Metrics を使用して、クライアント側指標を収集および報告します。指標の収集によって各リクエストにわずかなレイテンシ(10 マイクロ秒未満)が生じる可能性があるため、指標はデフォルトでは有効になっていません。次のセクションでは、クライアント側指標を有効化する方法について説明します。

Log4j レポーターの使用

指標を有効化する最も簡単な方法は、Log4j 構成ファイルに次の行を追加する方法です。

log4j.category.com.google.cloud.bigtable.metrics=DEBUG

この構成設定によって、指標収集が有効になり、SLF4J ロガーを使用して Cloud 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 のレポーターを提供しています。また、さまざまなサードパーティ レポーターも利用可能です。

利用可能な指標

このセクションでは、クライアント側指標が有効になっているときに使用できる指標を説明します。各指標は、次のいずれかのタイプに該当します。

  • カウンタ: 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: get と scan を実行します。
  • MutateRow: put と delete を実行します。
  • MutateRows: bulk write を実行します。
  • 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 時間をかけて再試行されたミューテーションの数。

Cloud Bigtable テーブル指標

HBase オブジェクトに Cloud Bigtable オブジェクトを変換すると、リクエストのレイテンシが増える可能性があります。次のタイマーは、変換のコストを測定するため、指定された *.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 ミリ秒かかることになります。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Bigtable ドキュメント