客户端指标说明
多个 Bigtable 客户端库均支持客户端指标。本页面详细介绍了每个客户端指标。
对于 Go、C++ 和 Node.js,这些指标在受支持的版本中默认处于启用状态。对于 Java 客户端库,指标可以作为可选功能提供,也可以默认提供,具体取决于客户端库版本。如需了解具体版本,请参阅每项指标的“客户端库支持”部分。
如需了解如何设置和配置客户端指标,请参阅设置客户端指标。如需查看概览,请参阅客户端指标概览。
指标会发布到适用的 Bigtable 集群的区域。如果 Bigtable 无法解析指标的集群(例如操作失败),则指标将发布到全局区域,并且 cluster 标记的值为 unspecified。
将客户端指标与服务器端指标结合使用以进行性能调试。如需查看 Bigtable 服务器端和客户端指标的完整列表,请参阅指标。
操作延迟时间
下表显示了操作延迟时间指标的属性和详细信息。
| 属性 | 说明 |
|---|---|
| 完整指标 | bigtable.googleapis.com/client/operation_latencies |
| 定义 | 与 Bigtable 操作相关的所有 RPC 尝试的总端到端延迟时间。此指标衡量从客户端到 Bigtable 再返回客户端的操作的往返次数,包括所有重试。 对于 ReadRows 请求,操作延迟时间包括每条返回消息的应用处理时间。 |
| 支持的 Bigtable 操作 |
|
| 类型 | 分布 |
| 可用维度 |
|
客户端库支持
下表显示了使用操作延迟时间指标所需的最低客户端库版本。
| 语言 | 客户 | 版本(选择启用) | 版本(默认处于启用状态) |
|---|---|---|---|
| Java | java-bigtable |
2.16.0 | 2.38.0 |
java-bigtable-hbase |
2.6.4 | 2.14.1 | |
| Go | 1.27.0 | ||
| Node.js | 6.2.0(ReadRows 和 ReadRow 操作)、6.3.0(其他操作) |
||
| C++ | 2.40.0 | ||
尝试延迟时间
下表显示了尝试延迟时间指标的属性和详细信息。
| 属性 | 说明 |
|---|---|
| 完整指标 | bigtable.googleapis.com/client/attempt_latencies |
| 定义 | 客户端远程过程调用 (RPC) 尝试的延迟时间。 在正常情况下,此值与 operation_latencies 相同。但是,如果客户端收到暂时性错误,则 operation_latencies 是所有 attempt_latencies 与指数延迟的总和。 |
| 支持的 Bigtable 操作 |
|
| 类型 | 分布 |
| 可用维度 |
|
客户端库支持
下表显示了使用尝试延迟时间指标所需的最低客户端库版本。
| 语言 | 客户 | 版本(选择启用) | 版本(默认处于启用状态) |
|---|---|---|---|
| Java | java-bigtable |
2.16.0 | 2.38.0 |
java-bigtable-hbase |
2.6.4 | 2.14.1 | |
| Go | 1.27.0 | ||
| Node.js | 6.2.0(ReadRows 和 ReadRow 操作)、6.3.0(其他操作) |
||
| C++ | 2.40.0 | ||
重试次数
下表显示了重试次数指标的属性和详细信息。
| 属性 | 说明 |
|---|---|
| 完整指标 | bigtable.googleapis.com/client/retry_count |
| 定义 | 记录操作需要完成的尝试次数的计数器。正常情况下,此值为空。 |
| 支持的 Bigtable 操作 |
|
| 类型 | INT64 |
| 可用维度 |
|
客户端库支持
下表显示了使用重试次数指标所需的最低客户端库版本。
| 语言 | 客户 | 版本(选择启用) | 版本(默认处于启用状态) |
|---|---|---|---|
| Java | java-bigtable |
2.16.0 | 2.38.0 |
java-bigtable-hbase |
2.6.4 | 2.14.1 | |
| Go | 1.27.0 | ||
| Node.js | 6.2.0(ReadRows 和 ReadRow 操作)、6.3.0(其他操作) |
||
| C++ | 2.40.0 | ||
应用阻塞延迟时间
下表显示了应用阻塞延迟时间指标的属性和详细信息。
| 属性 | 说明 |
|---|---|
| 完整指标 | bigtable.googleapis.com/client/application_blocking_latencies |
| 定义 | 从客户端收到请求响应到应用读取响应的时间。此指标与 ReadRows 请求相关性最高。此指标的开始时间和停止时间取决于您发送读取请求的方式;如需了解详情,请参阅应用阻塞延迟计时器示例。 |
| 支持的 Bigtable 操作 |
|
| 类型 | 分布 |
| 可用维度 |
|
客户端库支持
下表显示了使用应用阻塞延迟时间指标所需的最低客户端库版本。
| 语言 | 客户 | 版本(选择启用) | 版本(默认处于启用状态) |
|---|---|---|---|
| Java | java-bigtable |
2.16.0 | 2.38.0 |
java-bigtable-hbase |
2.6.4 | 2.14.1 | |
| Go | 1.38.0 | ||
| Node.js | 6.3.0(ReadRows 操作) |
||
| C++ | 2.41.0 | ||
应用阻塞延迟时间计时器示例
ReadRows 请求通常以三种方式之一发送:迭代、异步或未来调用。以下示例演示了每种类型的 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 |
| 类型 | 分布 |
| 可用维度 |
|
客户端库支持
下表显示了使用“首次响应延迟时间”指标所需的最低客户端库版本。
| 语言 | 客户 | 版本(选择启用) | 版本(默认处于启用状态) |
|---|---|---|---|
| Java | java-bigtable |
2.16.0 | 2.38.0 |
java-bigtable-hbase |
2.6.4 | 2.14.1 | |
| Go | 1.27.0 | ||
| Node.js | 6.2.0(ReadRows 和 ReadRow 操作)、6.3.0(其他操作) |
||
| C++ | 2.40.0 | ||
服务器延迟时间
下表显示了服务器延迟时间指标的属性和详细信息。
| 属性 | 说明 |
|---|---|
| 完整指标 | bigtable.googleapis.com/client/server_latencies |
| 定义 | Google 前端接收远程过程调用 (RPC) 与发送响应的第一个字节之间的延迟时间。 |
| 支持的 Bigtable 操作 |
|
| 类型 | 分布 |
| 可用维度 |
|
客户端库支持
下表显示了使用服务器延迟时间指标所需的最低客户端库版本。
| 语言 | 客户 | 版本(选择启用) | 版本(默认处于启用状态) |
|---|---|---|---|
| Java | java-bigtable |
2.16.0 | 2.38.0 |
java-bigtable-hbase |
2.6.4 | 2.14.1 | |
| Go | 1.27.0 | ||
| Node.js | 6.2.0(ReadRows 和 ReadRow 操作)、6.3.0(其他操作) |
||
| C++ | 2.41.0 | ||
连接错误数
下表显示了连接错误数指标的属性和详细信息。
| 属性 | 说明 |
|---|---|
| 完整指标 | bigtable.googleapis.com/client/connectivity_error_count |
| 定义 | 无法连接 Google 网络的请求数。一般情况下,此数字为 0。如果数字不为 0,则表示应用和 Google 网络之间可能存在连接问题。 |
| 支持的 Bigtable 操作 |
|
| 类型 | 分布 |
| 可用维度 |
|
客户端库支持
下表显示了使用连接错误次数指标所需的最低客户端库版本。
| 语言 | 客户 | 版本(选择启用) | 版本(默认处于启用状态) |
|---|---|---|---|
| Java | java-bigtable |
2.16.0 | 2.38.0 |
java-bigtable-hbase |
2.6.4 | 2.14.1 | |
| Go | 1.38.0 | ||
| Node.js | 6.2.0(ReadRows 和 ReadRow 操作)、6.3.0(其他操作) |
||
| C++ | 2.41.0 | ||
客户端阻塞延迟时间
下表显示了客户端阻塞延迟时间指标的属性和详细信息。
| 属性 | 说明 |
|---|---|
| 完整指标 | bigtable.googleapis.com/client/client_blocking_latencies |
| 定义 | 由于客户端在批量操作中待处理的请求过多,导致客户端阻止向服务器发送更多请求时出现的延迟。 对于 2.21.0 及更高版本,此指标还包括客户端创建渠道时在 gRPC 渠道上排队的请求的延迟时间。 |
| 支持的 Bigtable 操作 |
|
| 类型 | 分布 |
| 可用维度 |
|
客户端库支持
下表显示了使用客户端阻塞延迟时间指标所需的最低 Java 客户端库版本。
| 语言 | 客户 | 版本(选择启用) | 版本(默认处于启用状态) |
|---|---|---|---|
| Java | java-bigtable |
2.16.0 | 2.38.0 |
java-bigtable-hbase |
2.6.4 | 2.14.1 |