Skip to content

架构说明

HealthGuard 采用经典的三层架构:采集端(SDK)、服务端(Collector)和展示端(Dashboard)。所有数据都存储在你自己的基础设施中,默认不上传任何第三方服务。

系统架构图

text
┌─────────────────────────────────────────────────────────────┐
│                        采集端(SDKs)                        │
│  ┌────────────┐  ┌──────────────────┐  ┌─────────────────┐  │
│  │ H5 / Web   │  │ 微信小程序        │  │ uni-app 多端     │  │
│  │ sdk-web    │  │ sdk-miniprogram  │  │ sdk-uniapp      │  │
│  └──────┬─────┘  └─────────┬────────┘  └────────┬────────┘  │
└─────────┼──────────────────┼────────────────────┼───────────┘
          │                  │                    │
          └──────────────────┼────────────────────┘

                  ┌──────────────────────┐
                  │   Collector (Server) │
                  │   Node.js + Fastify  │
                  │   REST API / 聚合     │
                  └──────────┬───────────┘

          ┌──────────────────┼──────────────────┐
          ▼                  ▼                  ▼
  ┌───────────────┐  ┌───────────────┐  ┌───────────────┐
  │  PostgreSQL   │  │   Dashboard   │  │  Repair Agent │
  │  持久化存储    │  │  Vue 3 + Vite │  │  可选修复工具  │
  └───────────────┘  └───────────────┘  └───────────────┘

数据流

  1. 采集:SDK 在客户端捕获错误、HTTP 请求、性能指标和面包屑。
  2. 校验:事件通过 @health-guard/core 中的 Zod Schema 校验,并生成 fingerprint 用于 Issue 聚合。
  3. 上报:SDK 将事件批量上报到 Collector 的 POST /api/events/batch
  4. 存储:Collector 将事件写入 PostgreSQL。
  5. 聚合:根据 fingerprint 将相似事件聚合成 Issue。
  6. 查询:Dashboard 通过认证后的 API 查询项目、Issue、事件明细等数据。

技术栈

层级技术说明
SDKsTypeScript + tsup浏览器、微信小程序、uni-app 三端
事件协议Zod统一的事件 Schema 与校验
CollectorNode.js + Fastify高性能 REST API
数据库PostgreSQL 16事件、Issue、用户、项目数据持久化
DashboardVue 3 + Vite响应式管理后台,支持中英文
部署Docker + Docker Compose一键私有化部署

仓库结构

text
healthguard/
├── apps/
│   ├── dashboard/          # Vue 3 管理后台
│   └── server/             # Fastify 采集服务
├── packages/
│   ├── core/               # 共享事件 Schema 与工具
│   ├── sdk-web/            # H5 / Web SDK
│   ├── sdk-miniprogram/    # 微信小程序 SDK
│   ├── sdk-uniapp/         # uni-app 多端 SDK
│   └── repair-agent/       # 本地修复 Agent(可选)
├── examples/
│   └── vue3-demo/          # H5 示例应用
├── docker-compose.yml      # 一键部署
└── docs/                   # 运维与决策文档

安全与隐私

  • 所有查询类 API 都需要 Bearer Token 认证。
  • SDK 默认过滤 URL Query 中的敏感字段(authorizationtokenpassword 等)。
  • 业务自定义字段可通过 context / requestData 透传,但每层最多 20 个键。
  • 数据完全私有化,不依赖第三方监控平台。

Released under the MIT License.