2026-10-05 09:38:05 -07:00
2026-10-05 09:38:05 -07:00
2026-10-05 09:38:05 -07:00
2026-10-05 09:38:05 -07:00
2026-10-05 09:38:05 -07:00
2026-10-05 09:38:05 -07:00
2026-10-04 21:46:39 +08:00
2026-10-05 09:38:05 -07:00
2026-10-04 21:46:39 +08:00
2026-10-05 09:38:05 -07:00

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

前端产物位于 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。

本地运行

  1. 启动 Backend。 在仓库根目录运行:
cd backend
dotnet run --project src/Monitor.Backend -- --urls http://localhost:5000
  1. 启动前端。 保持 Backend 运行,在另一个终端的仓库根目录运行:
npm ci --prefix web
npm run dev --prefix web

打开 http://localhost:5173/ 使用展示端,或访问 http://localhost:5174/admin/ 进入管理端。依赖安装和前端配置见 web/README.md;Backend 的首次启动与配置见 backend/README.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。

S
Description
Network path quality monitoring
Readme Apache-2.0
28 MiB
1 Stars 1 Watchers 0 Forks
2026-10-08 13:04:28 -07:00
Languages
C# 69.7%
TypeScript 19.2%
Shell 5%
CSS 2.6%
Python 2.2%
Other 1.3%