rack:自动恢复的平线判据按实测重定(p95−p05 + 中位数下限)
原判据「窗口内 max − min < 5 mA」抓不到真卡死:10-04 第 1 路平在 520 mA 五个半小时, 偶发尖峰让 590 个窗口的 max − min 都在 17 mA 以上,一个都判不出来。 - 平线改成:p95 − p05 < flat_ua(30 mA)且中位数 ≥ flat_min_ua(100 mA,新增参数)。 下限是给空闲低功耗留的:睡着的手机平在 ~10 mA 是正常的。 - 过低不变(窗内最大值 < 30 mA):睡着的手机每 25 s 被长轮询叫醒,窗内最大值都在 213 mA 以上。 - 真实遥测回放:两次真卡死(10-04 第 1 路、10-05 09:40 第 5 路平在 382 mA)都判出; 亮屏常醒 ~26 h × 4 路、空闲睡着 ~6 h × 5 路、试验 / OTA 期间零误判。 - 测试 +4(带尖峰的平线 / 睡着是健康的 / 睡下去再没醒 = 过低 / 低位平线不下结论),恢复页加「中位数不低于」。 依据和局限写在 recovery.py 模块头。已部署;五路的自动恢复开关仍然全关,还没真正触发过一次。 Co-Authored-By: Claude Opus 5.5 <[email protected]>
这个提交包含在:
@@ -90,7 +90,7 @@ def test_phone_settings_toggle_auto_recovery(env):
|
||||
rec = c.get("/api/recovery").json()
|
||||
assert rec["params"]["window_s"] == 300
|
||||
r = c.put("/api/recovery/params", json={"window_s": 120, "flat_ua": -5, "bogus": 1})
|
||||
assert r.json()["window_s"] == 120 and r.json()["flat_ua"] == 5000 # 负数不收
|
||||
assert r.json()["window_s"] == 120 and r.json()["flat_ua"] == 30000 # 负数不收
|
||||
|
||||
|
||||
def test_history_after_telemetry(env):
|
||||
|
||||
在新工单中引用
屏蔽一个用户