WuKongIM Docs

健康检查与监控

区分进程存活、集群就绪、指标、Top、实时监控和临时诊断。

编辑此页报告文档问题

健康检查负责自动准入,监控负责解释趋势,诊断负责回答一个有界问题。三者不能互相替代。

端点与用途

信号语义自动化用途
GET /healthz当前 HTTP 进程存活;成功返回 200 {"status":"ok"}进程重启探针,不用于接收业务流量
GET /readyz节点当前满足产品流量门槛;未就绪返回 503 和原因负载均衡与流量准入
GET /metrics启用指标后导出 Prometheus 指标趋势、告警和容量基线
GET /top/v1/snapshot节点本地资源与有界历史快照,独立于 Prometheus快速观察与短期关联
Manager 实时监控聚合节点、资源、队列和集群投影运维总览,不作为单独安全门槛
Debug/pprof开启 Debug API 后的高成本诊断授权、限时的问题分析

恢复维护期间,健康、就绪、指标、Debug 和 Top 仍可观察,而产品、路由、Benchmark 等请求会被维护门槛拒绝。不要因为 /healthz 为 200 就重新接入业务流量。

探针示例

curl --fail http://127.0.0.1:5001/healthz
curl --fail http://127.0.0.1:5001/readyz
curl --fail http://127.0.0.1:5001/metrics

实际地址以 API 监听配置为准。curl --fail 会把 /readyz 的 503 当作失败;同时保留响应体中的 reason 供告警和排查使用。

最小监控面

  • 请求与连接:连接、发送错误、请求率、延迟、重连和路由失败;
  • 集群控制面:Controller 可用性、Slot Leader/副本/ISR、控制任务和状态过期;
  • 消息运行时:Channel 活动、投递/推送积压、Webhook 与插件失败;
  • 资源:CPU、内存、Goroutine、FD、磁盘空间/IO、网络与日志增长;
  • 背压:有界队列长度、拒绝、丢弃、重试和处理耗时。

告警阈值必须来自当前版本、硬件和接近真实负载的基线。十万成员群组、高消息率和大量在线连接下,平均值会隐藏热点;同时观察分位延迟、最大队列和单节点偏斜。

必须告警的状态

  • /readyz 持续 503 或节点频繁进出就绪;
  • Controller/Slot 状态缺失、过期、Leader 不稳定或副本/ISR 异常;
  • 持续队列积压、拒绝、丢弃、投递失败或错误率上升;
  • 磁盘逼近容量、IO 延迟恶化、内存/FD/Goroutine 无界增长;
  • 监控采集本身中断,导致状态未知。

每条告警应包含负责人、影响、仪表盘、第一项只读检查和升级条件。状态未知时保持失败关闭,不自动执行拓扑写操作。

配置开关与成本见日志与可观测性。出现告警后,按故障排查收集证据,不要让告警直接触发拓扑写操作。

本页内容