旧版 HBase 客户端指标
本页面介绍了一组已替换为 内置的客户端指标此页面作为 仍在使用旧版指标的开发者参考。
建议您使用 客户端指标概览(而非 本页面介绍的旧版指标。
启用指标
此信息面向使用旧版指标的客户提供。如需启用较新的内置客户端指标,请参阅设置客户端指标。
Java 版 Cloud Bigtable HBase 客户端使用 Dropwizard 指标来收集和报告客户端指标。由于收集指标的过程会为每个请求增加极为少量的延迟(几微秒),因此,默认情况下不会启用指标。以下部分介绍了如何启用旧版客户端指标。
使用 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) 的累积计数。
- 计量器:计数信息外加吞吐量信息(每最后一分钟的计数、每 5 分钟的计数或每 15 分钟的计数)
- 计时器:计量器信息外加延迟信息(比如中间值、平均值和第 95 百分位数)
系统仅会针对每种类型的请求收集特定指标。如需查看在执行 Put
请求期间收集的指标示例,请参阅“示例:适用于 Put
请求的指标”。
通道级指标
类型 | 名称 | 说明 |
---|---|---|
计数器 | google-cloud-bigtable.sessions.active |
已打开的 BigtableSession 数量。每个 HBase Connection 都有一个 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
:实现放置和删除方法。MutateRows
:实现批量写入方法。CheckAndMutateRow
:实现 HBase 的checkAnd*
方法。ReadModifyWrite
:实现 HBase 的Append
和Increment
方法。SampleRowKeys
:检索用于 MapReduce 操作的区域信息。
类型 | 名称 | 说明 |
---|---|---|
计时器 | google-cloud-bigtable.grpc.method.[METHOD_TYPE].operation.latency |
单个操作耗费的时长。操作耗费的时间包含执行的所有 RPC 耗费的总延迟时间。(通常只执行一个 RPC。如果发生暂时性错误,则在客户端执行重试时,可能会导致同一 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 |
由于重试失败次数过多而导致重试被中止的次数。 |
批量指标
为返回多个响应的方法(例如批量写入)提供了批量指标。
类型 | 名称 | 说明 |
---|---|---|
计量器 | 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 毫秒)的时间。假设整个 Put
操作包含约 1 KB 数据,该操作所需的时间可以低至 2 到 3 毫秒。