chengqian
a5e2ecf527
fix(dispatch): 渠道健康聚合只统计有真实上报的模型,降级时保留库中旧值
渠道展示分是目录内全部模型 succ_ewma 的算术平均,而无流量模型读到的是乐观默认满分。
20 个模型的渠道死掉 1 个(succ→0.05)仍能算出 avgSucc≈0.95、91 分绿灯,恰好掩盖了
模型级熔断要隔离的典型场景。改为只统计 HasHealth 的模型;全渠道无真实上报时
Counted=0,保留库中上一次的分数而不是用默认满分覆盖历史结论。
Redis 读失败(Degraded)时跳过落盘并打 Warning:照常落盘会把全渠道健康分刷成 100,
连带 chn_health_snapshots 把假象写进历史趋势,事故期间的曲线反而全绿。自动禁用判定
一并跳过——该操作不可逆,不能基于不可信读值触发。
聚合逻辑抽成纯函数 aggregateChannelHealth 以便单测;另新增 RequestHealthSnapshot
按需重算入口(维护循环消费,满则丢弃由下一轮兜底),供渠道测试/重置健康度接入。
健康上报是 fire-and-forget,重算前等 500ms 让 worker 落完 Redis。
2026-08-27 21:59:43 +08:00
..
2026-08-27 00:08:31 +08:00
2026-08-20 14:29:57 +08:00
2026-08-20 11:45:46 +08:00
2026-08-20 10:34:15 +08:00
2026-08-27 21:59:43 +08:00
2026-08-20 10:34:15 +08:00
2026-08-27 21:59:42 +08:00
2026-08-20 15:19:27 +08:00
2026-08-20 10:34:15 +08:00
2026-08-08 10:23:32 +08:00
2026-08-17 10:01:04 +08:00
2026-08-16 23:24:19 +08:00
2026-08-20 11:45:46 +08:00
2026-08-16 23:24:19 +08:00
2026-07-26 12:16:33 +08:00