d50120d1d2
日报二次扫描反映复检后状态,Telegram 展示复检统计;离线列表与告警显示名优先备注。 Co-authored-by: Cursor <cursoragent@cursor.com>
1.7 KiB
1.7 KiB
每日离线巡检:发报前 SSH 复检 + 备注优先显示
日期:2026-06-30
变更摘要
定时「每日离线巡检」Telegram 日报在统计与推送前,先对当前离线子机批量执行 SSH 健康检查并刷新 Redis 心跳,再二次扫描得到最终在线/离线数;日报正文增加「巡检前 SSH 复检」一行。离线列表与离线告警的显示名与批量任务一致:备注 description → name → domain。
动机
Agent 心跳滞后或短暂网络抖动会导致误报离线;日报发送前应主动 SSH 探测确认。离线名单在 Telegram 中应优先展示运维备注,便于识别机器。
涉及文件
server/application/server_connectivity.py—health_check_server_ids();scan_monitored_connectivity用batch_server_display_nameserver/application/services/offline_daily_report_schedule.py— 日报前 preflight 健康检查server/config.py—OFFLINE_DAILY_REPORT_HEALTH_CHECK(默认 true)server/infrastructure/telegram/__init__.py— 日报增加 preflight 统计行server/background/server_offline_monitor.py— 离线告警显示名备注优先tests/test_offline_daily_report_schedule.py— preflight 流程单测
配置
OFFLINE_DAILY_REPORT_HEALTH_CHECK=true # false 可跳过复检
迁移 / 重启
无 DB 迁移;部署后 Docker 重建 API 容器即可,background loop 随进程启动。
验证方式
.venv/bin/pytest tests/test_offline_daily_report_schedule.py tests/test_batch_server_display_name.py -q
生产:手动触发 run_scheduled_offline_daily_report(force=True) 或等到 11:50 北京时间;Telegram 应含复检行且离线名单显示备注。