项目

PulseGuard

本地/LAN UI/API 探活控制台,以主控单实例管理任务、历史、告警和指标,并通过本机与子执行节点并行/轮询执行检查、回传证据和聚合健康状态。

我的项目 主控 + 多节点可用产品设计 / 全栈实现本地/LAN 探活控制台开源免费监控自动化测试PlaywrightFastAPI运维工具多节点

介绍

PulseGuard 面向个人开发者、小团队研发测试和内网系统维护者,用于持续检查后台页面、登录前置流程、健康接口、批处理心跳、证书和基础网络可达性。最新版本的边界不是单纯“单机执行”,而是主控单实例 + 多执行节点:主控台统一管理任务定义、结构化断言、调度、运行历史、失败证据、告警策略、审计、配置迁移、只读状态和指标出口;本机 local 节点与局域网子节点负责实际探活执行。子节点是独立 worker 服务,通过 token 暴露健康检查和执行入口,由主控手动添加、测试连接和派发任务,不主动注册、不写主库、不发送告警。多节点运行支持多选并行和轮询所有启用节点,同一次触发会写入 run_group_id 并在详情中聚合展示节点状态、耗时、失败来源和证据入口。任一可用节点出现目标失败则本轮失败,节点不可用按 failure_kind=runner 记录,不误报为业务目标故障。

技术栈

FastAPISQLite WALPlaywright PythonReactTypeScriptViteAnt DesignDocker ComposeWorker Node

产品定位

PulseGuard 现在应理解为“主控单实例 + 多执行节点”的本地/LAN 探活控制台。主控仍保持轻量,不做 SaaS、多租户、复杂 RBAC 或公开 incident 平台;但执行面已经从单机扩展到 local 节点和局域网 worker 节点,用来覆盖不同网络区域、不同机器环境和流水线触发场景。

多节点执行

主控台默认保留 local 节点,子节点作为独立 worker 只暴露受 token 保护的健康检查和执行接口。主控在系统设置中手动添加节点地址、网络区域和 token,任务详情或编辑抽屉中可选择多选并行,或轮询所有启用节点执行。

结果聚合与失败归因

多节点并行时,同一次触发会为每个节点创建运行记录并写入同一个 run_group_id。详情页展示同组所有节点的执行状态、运行状态、失败来源、耗时、错误摘要和证据入口;任一可用节点出现目标失败/超时则本轮任务失败,节点不可用只记为 runner 异常,不累计为目标故障。

规则维护

UI 任务支持前置脚本、元素扫描、selector 稳定性提示和草稿调试;API 任务支持响应预览、字段路径提取和基础断言生成。结构化规则优先,复杂登录、多窗口或业务分支再使用高级 Python 脚本。

证据与运维出口

失败时保留截图、Trace、Response Body 和错误摘要,成功 API 响应默认只保留摘要以控制存储。系统还提供只读快照、JSON 指标、Prometheus 指标、CLI/CI 入口、配置导入导出、运维审计和任务版本恢复,便于本地配置纳入 Git 管理。

子节点部署与更新

子节点可以用源码命令或预构建 worker 镜像启动。worker 上报名称、区域、版本、构建 SHA、浏览器版本和更新能力;启用 updater profile 后,主控可以向子节点推送受控镜像更新,更新失败时尝试回滚。

要点

  • 主控台负责任务、历史、设置、告警、审计、归档和指标;执行面由内置 local 节点与局域网子 worker 节点承担。
  • 子节点通过 token 暴露 /api/worker/health 和 /api/worker/run,由主控手动添加、测试连接和派发任务,不主动注册、不写主库、不发送告警。
  • 多节点任务支持多选并行和轮询所有启用节点,同一次触发写入 run_group_id,可在运行详情中聚合查看所有节点结果。
  • 运行归因区分 target 与 runner:目标断言/响应/超时失败影响任务健康,节点不可用或执行环境异常按 failure_kind=runner 记录。
  • 失败时保留截图、Trace、Response Body 和错误摘要;远程节点证据通过 JSON base64 回传主控,单个文件超限会记录但不伪造成功。
  • 提供只读快照、JSON/Prometheus 指标、CLI/CI 入口、配置导入导出、任务版本快照和子节点受控更新能力。

截图