7a71bf57f9a78a3810538b92d64d0b73571f2fd1
The versions page shows each node's update state with update buttons, API tokens get a release scope that can only register releases (used by CI), and the CI image and release builds now pass the tag, commit and build time.
Monitor
Monitor 是一个自托管的网络线路质量观测工具。它在 Probe 与多个 Agent 之间执行主动网络测量,记录逐包和逐事件结果;Backend 保存原始数据并生成可查询的线路指标,Web 界面用于查看、比较和管理节点。
它面向需要比较不同网络出口、评估线路稳定性,或观察特定网络服务体验的场景。Agent 与 Probe 专注于测量和上报;它们不提供远程终端、命令执行或文件管理能力。
能力概览
- 主动测量:组合 TCP、UDP 等测量模块,采集延迟、丢包、抖动、吞吐和连接事件。
- 线路分析:从原始测量数据生成时间序列指标,并比较线路在不同服务模型下的体验。
- 节点管理:通过 Fleet 节点框架处理身份、注册、连接、任务同步和数据上报。
- 实时面板:展示端查看线路状态和历史趋势;管理端负责节点、任务和系统配置。
- 自托管:Backend 使用段文件和 SQLite 保存数据;提供 Linux、systemd 和 OpenWrt 相关部署文件。
架构
Probe <──测量会话──> Agent ──长连接与数据上报──> Backend <──REST / SSE──> Web 展示端与管理端
├── 段文件:原始数据
└── SQLite:索引、指标与配置
快速开始
环境要求
- .NET SDK 10;项目使用
backend/global.json指定 SDK 版本和滚动策略。 - Node.js 与 npm,用于构建 Web 前端。
构建
从仓库根目录构建后端:
cd backend
dotnet build Monitor.slnx -c Release
安装前端依赖并构建展示端和管理端(在仓库根目录运行):
npm ci --prefix web
npm run build --prefix web
npm run gen:api --prefix web # API schema changed after Backend edits
npm run lint:css --prefix web
前端产物位于 web/display/dist/ 和 web/admin/dist/。NativeAOT 目标平台和 Windows 上使用 AotAnywhere 交叉构建的说明见 docs/deployment.md。
Backend、Agent 和 Probe 均以 OCI 镜像发布,支持 Linux/amd64 与 Linux/arm64;Agent 和 Probe 另外提供 Linux glibc/musl、macOS 与 Windows 二进制包。容器部署配置见 compose.yaml,发布说明见 docs/deployment.md。
本地运行
- 启动 Backend。 在仓库根目录运行:
cd backend
dotnet run --project src/Monitor.Backend -- --urls http://localhost:5000
- 启动前端。 保持 Backend 运行,在另一个终端的仓库根目录运行:
npm ci --prefix web
npm run dev --prefix web
打开 http://localhost:5173/ 使用展示端,或访问 http://localhost:5174/admin/ 进入管理端。依赖安装和前端配置见 web/README.md;Backend 的首次启动与配置见 backend/README.md。
CI 构建规则
- Pull request 和
dev分支 push:先跑 Backend tests,通过后再构建前端。 - 在需要跳过 Backend tests 的提交信息后加
[SKIP TESTS];Gitea pull request 需要把标记写进 PR 标题。前端构建仍会运行。 main上的提交信息包含[CI]时,并行构建 Backend、Agent、Probe 的 Linux/amd64 镜像,推送到 Zot 的monitor-dev/仓库;普通 main push 不构建。- 推送
vMAJOR.MINOR.PATCHtag 会触发全平台正式构建和 Release 发布。
完整触发条件、开发镜像标签和发布路径见 docs/deployment.md。
项目布局
| 路径 | 说明 |
|---|---|
backend/ |
Backend 服务、Fleet 框架、共享测量代码与 .NET 测试 |
backend/agent/ |
Agent 节点:注册到 Backend,接受 Probe 测量并上报数据 |
backend/probe/ |
Probe 节点:发起线路测量并将采集数据交给 Agent |
backend/fleet/ |
可复用的节点身份、注册和连接框架 |
backend/shared/ |
测量引擎、协议和原始数据格式 |
web/display/、web/admin/ |
展示端和管理端 |
web/shared/ |
前端 API、图表、组件与主题 |
packaging/、scripts/ |
部署、构建与维护脚本 |
docs/ |
架构、测量模型、API、部署等文档 |
测试
cd backend
dotnet test --solution Monitor.slnx
# 前端样式检查(仓库根目录)
npm run lint:css --prefix web
许可证
本项目采用 Apache License 2.0。
Releases
5
MoShiro v0.4.0
Latest
Languages
C#
69.7%
TypeScript
19.2%
Shell
5%
CSS
2.6%
Python
2.2%
Other
1.3%