文档

etcd组件监控

更新时间:

本文主要介绍etcd组件的指标清单、对应大盘的使用指导以及常见指标异常的问题解析。

指标清单

指标是组件对外透出状态和参数的方式之一,etcd组件使用的指标清单如下。

指标

类型

说明

cpu_utilization_core

Gauge

CPU使用量,单位:核(Core)。

cpu_utilization_ratio

Gauge

CPU使用率=CPU使用量/内存资源上限,百分比形式。

etcd_server_has_leader

Gauge

etcd member是否有Leader。

  • 1:表示有主节点。

  • 0:表示没有主节点。

etcd_server_is_leader

Gauge

etcd member是否是Leader。

  • 1:表示是。

  • 0:表示不是。

etcd_server_leader_changes_seen_total

Counter

etcd member过去一段时间切主次数。

etcd_mvcc_db_total_size_in_bytes

Gauge

etcd member db总大小。

etcd_mvcc_db_total_size_in_use_in_bytes

Gauge

etcd member db实际使用大小。

etcd_disk_backend_commit_duration_seconds_bucket

Histogram

etcd backend commit延时。

Bucket列表为:[0.001 0.002 0.004 0.008 0.016 0.032 0.064 0.128 0.256 0.512 1.024 2.048 4.096 8.192]

etcd_debugging_mvcc_keys_total

Gauge

etcd keys总数。

etcd_server_proposals_committed_total

Gauge

raft proposals commit提交总数。

etcd_server_proposals_applied_total

Gauge

raft proposals apply总数。

etcd_server_proposals_pending

Gauge

raft proposals排队数量。

etcd_server_proposals_failed_total

Counter

raft proposals失败数量。

memory_utilization_byte

Gauge

内存使用量,单位:字节(Byte)。

memory_utilization_ratio

Gauge

内存使用率=内存使用量/内存资源上限,百分比形式。

大盘使用指导

大盘基于组件指标和相关PromQL绘制,大盘可观测性展示和功能解析如下。

可观测性展示

etcd

功能解析

名称

PromQL

说明

etcd存活状态

  • etcd_server_has_leader

  • etcd_server_is_leader == 1

  • etcd member是否存活,正常值为3。

  • etcd member是否是主节点,正常情况下,必须有一个Member为主节点。

过去一天切主次数

changes(etcd_server_leader_changes_seen_total{job="etcd"}[1d])

过去一天内etcd集群切主次数。

内存使用量

memory_utilization_byte{container="etcd"}

内存使用量,单位:字节。

CPU使用量

cpu_utilization_core{container="etcd"}*1000

CPU使用量,单位:毫核。

内存使用率

memory_utilization_ratio{container="etcd"}

内存使用率,百分比。

CPU使用率

cpu_utilization_ratio{container="etcd"}

CPU使用率,百分比。

磁盘大小

  • etcd_mvcc_db_total_size_in_bytes

  • etcd_mvcc_db_total_size_in_use_in_bytes

  • etcd backend db总大小。

  • etcd backend db实际使用大小。

kv总数

etcd_debugging_mvcc_keys_total

etcd集群kv对总数。

backend commit延迟

histogram_quantile(0.99, sum(rate(etcd_disk_backend_commit_duration_seconds_bucket{job="etcd"}[5m])) by (instance, le))

db commit时延。

raft proposal情况

  • rate(etcd_server_proposals_failed_total{job="etcd"}[1m])

  • etcd_server_proposals_pending{job="etcd"}

  • etcd_server_proposals_committed_total{job="etcd"} - etcd_server_proposals_applied_total{job="etcd"}

  • raft proposal failed速率(分钟)。

  • raft proposal pending总数。

  • commit-apply差值。

常见指标异常

etcd存活状态

正常情况

异常情况

异常说明

3个etcd member都有Leader,且其中之一必须为Leader。即sum(etcd_server_has_leader)=3,且有一个member etcd_server_is_leader == 1

单个Member异常

对应的member etcd_server_has_leader!=1,不影响整体etcd集群对外提供服务。

大于1个Member异常

多个member etcd_server_has_leader!=1,Member异常大于1,此时etcd集群无法对外提供服务。

同时观察是否存在Member的etcd_server_is_leader == 1,如没有,则etcd处于无主状态,无法对外提供服务。

backend commit时延

正常情况

异常情况

异常说明

该指标应该处于几十ms级别。

长时间出现几百ms甚至秒级别的延迟。

说明此时磁盘读写有异常。

raft proposal情况

正常情况

异常情况

异常说明

raft proposal failed速率为0。

raft proposal failed大于0。

表明Raft协议提交有失败,如遇到此值很大,则需进一步排查。

raft proposal pending总数为0。

raft proposal pending总数大于0。

表明Raft协议提交有积压,一般是Apply慢,可结合backend commit时延进行分析。

commit-apply差值为0。

commit - apply差值大于0。

表明此时etcd压力大,客户端请求过多。

若此值大于5000,etcd则会拒绝接后续的请求,并返回too many request。直到将积压的Proposals处理完毕。

  • 本页导读 (1)
文档反馈