平台
可靠性与自愈
一个独立的守护进程监视产品,自行修复常规故障,并把其余的连同证据一起升级。在产品内部,每次发送和投递都是持久化的。
探针
大多数探针必须连续两次失败才会开启事件;容器停止或数据库损坏在第一次失败时即采取行动。探针通过会清除它可能引发的每种事件类型的计数器。
| P1 | 存活端点在三秒内响应 |
|---|---|
| P2 | 详细健康:数据库可达,聊天监听器已连接(重启后有启动宽限) |
| P3 | 监听器新鲜度 |
| P4 | 实时事件流 |
| P5 | 容器正在运行且健康 |
| P6 | 磁盘压力 |
| P7 | TLS 证书到期 |
| P8 | 逻辑金丝雀 |
| P9 | 数据库快速检查 |
处置手册
- 服务或监听器宕机:重启容器并等待健康;如果日志显示聊天令牌无效,则连同摘录一起升级,而不是悄悄重写令牌。
- 一小时内监听器两次过期:升级,因为那看起来像回归,而不是偶发故障。
- 事件流或 API 宕机:若代理配置校验通过则重新加载,重启容器,如果过去 24 小时内有过部署则将其标记为回滚候选。
- 磁盘压力:清理日志文件、轮换日志、修剪守护进程状态。
- 证书即将到期:续期并重新加载代理。
- 防抖动:同一事件在 24 小时内重复超过配置的次数时,停止自愈并升级。
不止于重启
- 每日摘要汇总事件和处置。
- 每周一次合成端到端运行,对预发布环境演练真实流程。
- 逻辑监视在只读容器中对已部署代码运行产品自己的测试套件,并与绿色基线比较:原本绿色现在红色的测试是回归;不在基线中的红色测试是通知,而不是行动。
- 一条自主修复流水线可以将已确认的回归经由范围受限的补丁、本地测试、分支、CI、预发布、合成运行、合并和生产,带健康门控和自动回滚。其环境中剔除了敏感机密,禁止的路径会被拒绝。
- 守护进程在带看门狗的服务监督器下运行,因此停滞的循环也会被重启,而不仅仅是崩溃的。
产品内部
- 持久化的机器人发件箱:审批消息、房间通知及其撤除都写入数据库并由循环刷出,因此机器人宕机期间作出的决定仍会送达。
- webhook 带退避重试,每个端点有断路器。
- 每晚的扫描将主服务器的事件列表与机器人自己的消息日志对账,记录每条从未进入的消息;消息稍后出现时缺口即撤销,不完整的扫描记录为不完整而非干净。
- 物化看门狗在最新缓存评分超过 26 小时或窗口覆盖不足时向管理员发出警报。
- AI 故障保护在当前提供商停止响应时切换提供商。
- 每个评分任务都在事件循环之外运行,因此长时间的计算绝不会冻结机器人;这一点有测试保障。