PanWatch make doctor 系统自检:数据源/AI/通知/磁盘健康度一键体检
【免费下载链接】PanWatchPanWatch — AI stock monitoring for A-shares, HK & US markets, powered by TradingAgents. Portfolio insights, real-time alerts & automated reports.|盯盘侠:覆盖 A股/港股/美股的 AI 盯盘、持仓分析、实时提醒与自动报告。项目地址: https://gitcode.com/GitHub_Trending/pa/PanWatch
PanWatch(盯盘侠)是一款覆盖 A股/港股/美股的 AI 盯盘工具,支持持仓分析、实时提醒与自动报告。但自托管部署后,数据源连不通、AI 模型鉴权失败、磁盘写满等问题常让人无从排查。PanWatch 内置的系统自检(make doctor)可以一键体检数据源、AI 模型、通知渠道和磁盘健康度,并给出中文修复建议,让新手也能快速定位故障。
系统自检能检查什么?四大类体检项
自检引擎把待检项分成四个大类,并发探测后聚合成一块「体检看板」:
系统基础项:数据库 / 磁盘空间 / 调度器
- 数据库:对真实 SQLite 库执行
SELECT 1,确认读写正常(probe_db) - 磁盘空间:检查数据目录所在磁盘的可用空间,低于 1GB 标记「慢」、低于 200MB 标记「断」,并显示「可用 x GB / 共 y GB」
- 调度器:确认定时任务(盯盘、报告、价格提醒)是否在正常运行;命令行自检时该项会优雅跳过,不误报
数据源:行情/新闻接口是否可达
复用数据源管理器的测试逻辑,逐个探测你启用的行情、K线、新闻等数据源(probe_datasource)。连接类失败会精准提示代理问题——国内接口需 CN 出口、Yahoo 需境外出口,自托管最常见的坑都在这里。
AI 模型:API Key 与模型名是否正确
对每个已配置的 AI 模型发一个极短的 ping 请求(probe_ai_model)。401 鉴权失败、模型名不存在(404)、限流或额度不足(429),都会被识别并给出对应提示。
通知渠道:默认只校验配置,不真发消息
通知渠道默认只校验 URI 配置格式,防止自检刷屏(probe_notify_channel);需要真实发送验证时,再勾选「包含真实通知发送」。
如何一键运行:make doctor 完整步骤
克隆仓库后,只需一条命令即可完成体检:
git clone https://gitcode.com/GitHub_Trending/pa/PanWatch cd PanWatch make setup-backend # 首次使用:创建 venv 并安装依赖 make doctor # 系统自检(数据源/AI/通知/DB/磁盘/调度)make doctor实际执行 doctor.py 中的报告打印逻辑,输出形如:
===== PanWatch 系统自检 ===== 共 9 · ✅通 7 · ⚠️慢 1 · ❌断 1 【系统】 ✅ 数据库 5ms ✅ 磁盘空间 可用 512.3GB / 共 953.8GB 【数据源】 ❌ 东财 错误: timeout 建议: 检查系统代理设置……两个实用细节:
- 退出码:全部正常返回
0,有异常项返回1,可直接用于 CI 或脚本巡检 - 单项超时 20 秒:某个接口卡死不会拖垮整场体检(PROBE_TIMEOUT_S)
看懂三档状态与中文修复建议
每项检查结果分为三档:
| 状态 | 含义 | 判定标准 |
|---|---|---|
| ✅ 通(ok) | 探测成功且响应快 | 延迟 ≤ 4 秒 |
| ⚠️ 慢(slow) | 通了但偏慢,可能拖慢整体响应 | 延迟 > 4 秒 |
| ❌ 断(fail) | 探测失败,附错误信息 + 修复建议 | 抛错或超时 |
最贴心的是「断」项会附中文 actionable 修复建议,覆盖自托管最高频的坑(classify_hint):
- 数据源连接失败 → 检查
http_proxy系统代理的出口方向 database is locked→ SQLite 被锁,降低并发或关闭慢代理- AI 401 → API Key 错误;404 → 模型名与服务商不一致
- 磁盘不足 → 清理 data 目录旧数据或扩容
- 调度器停止 → 重启服务即可恢复定时任务
网页端也能体检:设置页的系统自检面板
不想碰命令行的用户,可以直接在网页「设置」页打开系统自检弹窗(SelfCheckModal.tsx):
- 先渲染待检清单骨架,再按 key 逐项探测(前端 4 路并发,实时回填进度条)
- AI 模型按「服务商 → 模型」两级分组展示,一眼看出哪家服务商不通
- 失败项直接内联显示错误与红色修复建议
- 可勾选「包含真实通知发送」,让通知渠道做真实投递验证
对应后端接口为GET /api/health/selfcheck(health.py),支持list=1仅取清单、keys=ds:1,ai:2只探测指定项、notify_send=true真实发送三种参数组合。
常见问题与延伸阅读
Q:CLI 自检为什么调度器显示「跳过」?命令行进程内没有运行中的调度器,自检会优雅跳过并加说明,不会误报「断」。
Q:自检会污染我的通知群吗?默认只校验通知渠道的 URI 格式,不真实发送;只有显式勾选/传notify_send=true才会发一条测试消息。
Q:可以只复检某一个失败的项吗?可以。网页端点「重新检查」即全量重跑;API 层支持keys=ds:1只探测单项。
Q:想看懂自检逻辑的实现?核心在 selfcheck.py(并发探测 + 中文提示库),CLI 入口在 doctor.py,测试用例见 test_selfcheck.py,命令定义在 Makefile。
定期跑一次make doctor,就像给盯盘侠做一次免费体检:数据源、AI、通知、磁盘全部一目了然,配合修复建议,三分钟就能让系统恢复满血。
【免费下载链接】PanWatchPanWatch — AI stock monitoring for A-shares, HK & US markets, powered by TradingAgents. Portfolio insights, real-time alerts & automated reports.|盯盘侠:覆盖 A股/港股/美股的 AI 盯盘、持仓分析、实时提醒与自动报告。项目地址: https://gitcode.com/GitHub_Trending/pa/PanWatch
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考