D2计划复习与优化融合预期成果

源文件:D:\Hermes\reports\D2计划复习与优化融合预期成果.md · 日期 2026-09-14 · 7KB

D2计划复习与优化融合预期成果报告

报告日期: 2026-09-14
执行日期: 2026-09-15(周二)17:25开始
状态: 等待用户确认


一、D1观察总结(前置条件)

1.1 观察数据

指标 数值 状态
总运行次数 90次 ✅ 达标
成功率 100% ✅ 优秀
平均间隔 15m05s ✅ 正常(目标15m)
夜间运行 34次 ✅ 稳定
心跳记录 90条 ✅ 全部ok
TG通知 0次 ✅ 符合预期(无异常)
exit_code 全部0 ✅ 无异常退出

1.2 观察时间范围

起始: 2026-09-13T10:20:31
结束: 2026-09-14T08:15:55
总时长: 约22小时

1.3 结论

✅ D1观察通过,满足进入D2的前提条件。


二、D2测试计划

2.1 测试目标

测试项 目标 验证内容
Dead-Man测试 验证看门狗机制 alert_channel_health心跳停止后,dead_mans_switch能否正确触发告警
受控测试-告警路径 验证任务失败检测 修改last_run_at→触发超时→alerts表写入→TG告警发送
受控测试-超时路径 验证超时检测逻辑 timeout_threshold_s配置生效,连续失败计数正确
受控测试-通道健康 验证心跳记录正常 channel_health表心跳更新正常
B3影子集成 验证run_with_alert包装 包装后原脚本功能正常,task_runs/audit_log写入正确
回归验证 确认系统恢复正常 所有cron恢复,无残留测试数据

2.2 测试时间表

明天(2026-09-15 周二):
┌─────────────────────────────────────┐
│ 17:25-18:20  Phase 1: Dead-Man测试 │
│   17:25  暂停 alert_channel_health  │
│          (hermes cron pause 7e8ae2aeca81) │
│   17:26-17:59  等待33分钟           │
│   18:00  dead_mans_switch触发       │
│   18:02  验证告警(本地文件+TG)    │
│   18:05  恢复 alert_channel_health  │
│          (hermes cron resume 7e8ae2aeca81 --run-now) │
│   18:15  验证心跳恢复               │
│   18:20  清理测试数据               │
├─────────────────────────────────────┤
│ 22:00-23:00  Phase 2: 受控测试     │
│   22:00-22:20  告警路径测试         │
│   22:20-22:40  超时路径测试         │
│   22:40-23:00  通道健康测试         │
│   23:00  清理测试数据               │
├─────────────────────────────────────┤
│ 23:00-23:30  Phase 3: B3影子集成   │
│   23:00  暂停因子IC衰减监控         │
│          (hermes cron pause a7e2b8dceefe) │
│   23:05  注册影子cron+手动触发      │
│   23:15  验证6项指标                │
│   23:20  恢复原cron                 │
│   23:25  删除影子cron               │
│   23:30  清理测试数据               │
├─────────────────────────────────────┤
│ 23:30-24:00  Phase 4: 回归验证     │
│   恢复所有修改的last_run_at         │
│   恢复所有暂停的cron                │
│   删除测试记录                      │
│   确认系统恢复正常                  │
└─────────────────────────────────────┘

2.3 关键配置

项目 值 说明
alert_channel_health cron_id 7e8ae2aeca81 被测试对象
dead_mans_switch调度 0 * * * * 整点运行
心跳超时阈值 30分钟 HEARTBEAT_TIMEOUT_S
因子IC衰减监控 cron_id a7e2b8dceefe B3测试对象
测试时间戳 2026-09-15T17:00:00 用于区分测试告警

三、备份与回滚方案

3.1 双重备份

备份文件 路径 状态
jobs.json备份 C:/Users/Admin/AppData/Local/hermes/cron/jobs.json.bak_20260913 ✅ 已存在
alert_state.db备份 D:/Hermes/data/state/alert_state.db.bak_D2_20260915 ✅ 已创建

3.2 回滚方案

场景1: jobs.json需要回滚
  命令: cp C:/Users/Admin/AppData/Local/hermes/cron/jobs.json.bak_20260913 
        C:/Users/Admin/AppData/Local/hermes/cron/jobs.json
  然后: hermes cron reload(如果可用)或重启gateway

场景2: alert_state.db需要回滚
  命令: cp D:/Hermes/data/state/alert_state.db.bak_D2_20260915
        D:/Hermes/data/state/alert_state.db

场景3: cron需要恢复
  命令: hermes cron resume <cron_id> --run-now

四、优化融合后的预期成果

4.1 功能层面

成果项 预期效果 验证方法
Dead-Man机制 alert_channel_health心跳停止30分钟后,dead_mans_switch触发告警 检查dead_mans_switch_alert.txt + TG消息
告警路径 任务超时/失败时,alert_channel_health正确识别并发送TG告警 检查alerts表 + TG消息
超时检测 timeout_threshold_s配置生效,连续失败计数正确 检查alert逻辑
心跳记录 channel_health表持续更新,无断档 检查check_time字段
run_with_alert包装 包装后原脚本功能不变,task_runs/audit_log正确写入 验证6项指标

4.2 系统层面

成果项 预期效果
监控闭环 alert_channel_health → dead_mans_switch 形成完整监控链
告警可达 TG告警通道正常,关键时刻能触达
数据完整 alerts表、audit_log表、channel_health表数据一致
可追溯 测试告警有明确时间戳标记,可与真实告警区分

4.3 运维层面

成果项 预期效果
故障预警 心跳停止30分钟内发现,缩短MTTR
自动化运维 run_with_alert集成后,所有cron任务自动具备告警能力
可测试性 B3影子cron模式支持热替换测试,不影响生产

五、执行纪律

5.1 时间纪律

✓ 严格按时间表执行,不提前不延后
✓ 每个阶段完成后暂停,等待确认
✓ 异常时立即停止,不强行推进

5.2 数据纪律

✓ 测试告警记录时间戳:2026-09-15T17:00:00
✓ 测试后按时间清理:DELETE WHERE created_at > '2026-09-15T17:00:00'
✓ 确认生产数据无污染

5.3 验证纪律

✓ 每阶段输出:执行结果、验证结果、异常记录
✓ 清理确认后进入下一阶段
✓ 最终回归验证系统完全恢复

六、风险与应对

风险 可能性 应对措施
dead_mans_switch未触发告警 低 检查脚本逻辑,确认channel_health表查询正确
TG告警发送失败 中 检查代理配置、token有效性
B3测试影响因子IC监控 低 暂停cron而非删除,测试后立即恢复
清理不彻底残留测试数据 中 按时间戳批量删除,最终核对表记录数

七、确认清单

□ D1观察已通过(90次运行,100%成功)
□ 双重备份已就绪
□ 测试时间戳已记录
□ 回滚方案已确认
□ 执行时间表已明确
□ 预期成果已理解

✅ 可以开始D2执行

报告路径: D:/Hermes/reports/D2计划复习与优化融合预期成果.md

下一步: 等待用户确认"开始D2执行"