Databend Meta 性能指标
性能指标
性能指标用于实时监控 Meta 服务。
查看指标最简单的方式是使用 cURL 调用 HTTP API HTTP_ADDRESS:HTTP_PORT/v1/metrics,结果将以 Prometheus 格式返回。
所有性能指标前缀为 metasrv。
服务器
这些指标体现服务器的状态, 前缀为 metasrv_server_。
| 名称 | 描述 | 类型 |
|---|---|---|
| current_leader_id | 集群当前 leader 的 ID,0表示没有 leader。 | Gauge |
| is_leader | 此节点是否为当前 leader。 | Gauge |
| node_is_health | 此节点是否健康。 | Gauge |
| leader_changes | Leader更改次数。 | Counter |
| applying_snapshot | 状态机器是否在应用快照。 | Gauge |
| proposals_applied | 已应用的共识提案总数。 | Gauge |
| last_log_index | 上条日志索引。 | Gauge |
| current_term | 当前周期。 | Gauge |
| proposals_pending | 待处理的提案总数 | Gauge |
| proposals_failed | 失败的提案总数。 | Counter |
| watchers | 活跃的观察者总数。 | Gauge |
current_leader_id 表示当前群组leader 的 ID,0表示没有 leader。 如果集群没有 leader,该参数不可用。
is_leader 表示当前 Metasrv 是否为集群 leader。leader_changes 表示自从集群启动以来 leader 变化次数。Leader 变化频繁会影响 metasrv 的性能,也表示该集群不稳定。
当一个节点状态是 Follower 或 Leader , 其 node_is_health 值为1,否则为 0。
proposals_applied 记录已应用的写入请求的总数。
last_log_index 记录上一条被添加到 Raft 节点的日志的索引,current_term 记录 Raft 节点的最新周期。
proposals_pending 表示当前提交的建议已排队多少次。 该参数值升高表示负载过大,或者该成员不能提交建议。
proposals_failed 显示了写入请求失败的总数。 它通常与两个问题有关:leader 选举导致的临时失败,或该集群法定人数损失而造成的较长停顿时间。
watchers 为目前活跃的观察者总数。
Raft 网络
这些指标体现 metasrv 中 Raft 节点的网络状态, 前缀为 metasrv_raft_network_。
| 名称 | 描述 | 标签 | 类型 |
|---|---|---|---|
| active_peers | 当前群组节点之间的活动连接数。 | id(node id),address(peer address) | Gauge |
| fail_connect_to_peer | 当前群组节点之间的失败连接数。 | id(node id),address(peer address) | Counter |
| sent_bytes | 发送给其他节点的字节总数。 | to(node id) | Counter |
| recv_bytes | 收到其他节点发送的字节总数。 | from(remote address) | Counter |
| sent_failures | 发送至其他节点的失败次数。 | to(node id) | Counter |
| snapshot_send_success | 成功发送快照的次数。 | to(node id) | Counter |
| snapshot_send_failures | 快照发送失败的次数。 | to(node id) | Counter |
| snapshot_send_inflights | 正在发送的快照个数。 | to(node id) | Gauge |
| snapshot_sent_seconds | 快照发送延迟分布。 | to(node id) | Histogram |
| snapshot_recv_success | 成功接收快照的次数。 | from(remote address) | Counter |
| snapshot_recv_failures | 快照接收失败的次数。 | from(remote address) | Counter |
| snapshot_recv_inflights | 正在接收的快照个数。 | from(remote address) | Gauge |
| snapshot_recv_seconds | 快照接收延迟分布。 | from(remote address) | Histogram |
active_peers 表示集群成员之间有多少活跃的连接;fail_connect_to_peer 表示失败的连接数。 每个项目都有标签:id(node id) 和 address (peer address)。
sent_bytes and recv_bytes 记录与其他节点之间的发送和接收的字符数。sent_failure 记录发送给其他节点的失败次数。
snapshot_send_success 和 snapshot_send_failure 表示发送的快照成功和失败次数。snapshot_send_inflights 表示正在发送的快照个数。每次发送快照,此字段数值会加1;发送完成后再减掉。
snapshot_sent_seconds 表示快照发送的总延迟分布。
snapshot_recv_success 和 snapshot_recv_failures 表示接收的快照成功和失败次数。snapshot_recv_inflights 表示正在接收的快照个数。每次接收快照,此字段数值会加1;接收完成后再减掉。
snapshot_recv_seconds 表示快照接收的总延迟分布。
Raft 存储
这些指标体现 metasrv 中 Raft 节点的存储状态, 前缀为 metasrv_raft_storage_。
| 名称 | 描述 | 标签 | 类型 |
|---|---|---|---|
| raft_store_write_failed | Raft 存储写入失败总数。 | func(function name) | Counter |
| raft_store_read_failed | Raft 存储读取失败总数。 | func(function name) | Counter |
raft_store_write_failed 和 raft_store_read_failed 分别表示 Raft 存储写入和读取失败的总数。
Meta 网络
这些指标体现 metasrv 中的 Meta 网络状态, 前缀为 metasrv_meta_network_。
| 名称 | 描述 | 类型 |
|---|---|---|
| sent_bytes | 发送到 Meta grpc 客户端的字节数。 | Counter |
| recv_bytes | Meta grpc 客户端接收字节数。 | Counter |
| inflights | 正在传送的 Meta grpc 请求数。 | Gauge |
| req_success | 来自 Meta grpc 客户端的成功请求总数。 | Counter |
| req_failed | 来自 Meta grpc 客户端的失败请求总数。 | Counter |
| rpc_delay_seconds | Meta 服务 API 的延迟分布,以秒计。 | Histogram |