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 |