☰
PanWatch make doctor 系统自检:数据源/AI/通知/磁盘健康度一键体检
2026/10/2 12:07:37 网站建设 项目流程

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):

  1. 先渲染待检清单骨架,再按 key 逐项探测(前端 4 路并发,实时回填进度条)
  2. AI 模型按「服务商 → 模型」两级分组展示,一眼看出哪家服务商不通
  3. 失败项直接内联显示错误与红色修复建议
  4. 可勾选「包含真实通知发送」,让通知渠道做真实投递验证

对应后端接口为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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询