问题域/PD-373

渠道健康监控

Channel Health Monitoring

自动监控消息渠道连接状态,支持故障检测、自动重启和重启风暴防护

子问题

1.连接状态检测

2.自动重启策略

3.重启风暴防护

4.宽限期管理

5.stuck 状态检测(running 但 connected=false)

6.手动停止渠道的豁免机制

7.多账户独立健康追踪

8.内部重连耗尽后的外部兜底恢复

各项目的解法1 solutions

Signals

横向对比

维度OpenClaw
检测机制定时轮询 runtimeSnapshot(5min 间隔),判断 running + connected 二元状态
重启策略stop → resetRestartAttempts → start 三步重启,分类 gave-up/stopped/stuck 三种原因
风暴防护三层防护:冷却周期(2×interval)+ 每小时滑动窗口限流(3次)+ 启动宽限期(60s)
退避算法通用 computeBackoff:base × factor^(N-1) + jitter,ChannelManager 内部 5s→5min
并发控制checkInFlight 单次飞行锁 + timer.unref() 不阻塞进程退出
多账户支持channelId:accountId 复合键,每个账户独立追踪重启记录

最佳实践

1.指数退避重连

2.每小时重启次数限制

3.冷却周期机制

4.滑动窗口计数优于固定窗口限流

5.checkInFlight 单次飞行锁防止检查重叠

6.timer.unref() 避免阻塞进程优雅退出

7.重启原因分类(gave-up/stopped/stuck)提升可观测性