-
Notifications
You must be signed in to change notification settings - Fork 0
Data Output
github-actions[bot] edited this page Sep 6, 2026
·
1 revision
ServerProbe 提供多个呈现 / 对接通道,同一份采集结果向多个出口共享,互不重复采集。
| 通道 | 状态 | 适用场景 |
|---|---|---|
游戏内命令 /probe
|
✅ 已交付 | 即时巡检、单次定位"开服慢" |
Prometheus /metrics
|
✅ 已交付 | 长期监控、看板(Grafana)、报警 |
| 告警引擎(日志 / 游戏内 / Webhook) | ✅ 已交付 | 阈值越线主动推送 |
| Web 面板 | ✅ 已交付 | 总览 / 启动画像详情 / 历史趋势 / 取证查询 |
| 本地文件历史落盘 | ✅ 已交付 | 历史对比、事故回溯、数据沉淀(不依赖数据库) |
| 开放只读 API + 存储 SPI | ✅ 已交付 | 第三方插件读取数据或替换存储后端 |
- Bukkit 与 BungeeCord 各一套,端口可配(
metrics.port) - 鉴权:token(
Authorization: Bearer)+ IP 白名单双重校验,默认仅本机、默认关闭 - 指标前缀
serverprobe_,覆盖 JVM / 服务器 / 世界维度 - 取证指标只输出聚合速率、包类型计数与脱敏 IP Top100(IPv4 掩 /24、IPv6 掩 /64)
- 三个只读页面:总览
/、启动画像/startup、历史趋势/history,另有网络取证查询页 - 自包含 HTML(内联 CSS、无 CDN)
- 鉴权:token + IP 白名单,默认仅本机、默认关闭(
web.enabled=false)
- 内置阈值规则:TPS<18 警 / <15 重、MSPT p95>50ms、堆>90% 持续、Old GC 频繁/单次>200ms、死锁立即、启动超基线 ×1.5
- 防抖(持续 N 周期才触发)与恢复状态机
- 三通道:日志 / 游戏内 / Webhook(默认关闭
alert.enabled=false)
- 启动画像:每次一份 JSON(
data/startup/) - 指标历史:JSONL 行式追加、按日期滚动(
data/metrics/),可配保留策略 - 落盘根对象含
schemaVersion,向后兼容读旧格式 - 网络取证:本地 SQLite(
serverprobe-store.sqlite),默认保留 60 天、上限 4 GiB
-
只读 API:第三方经
ServerProbeApi读取最新快照 / 历史 / 启动画像(只读,不暴露写入/控制) -
存储 SPI:
ServerProbeStorageApi.install可安装第三方MetricStore,关闭注册后原子回退默认本地文件实现 - 详细契约见 开放 API 文档
mcp.enabled=true 时开放 MCP Streamable HTTP(JSON-RPC 2.0)端点(默认 127.0.0.1:9942):
- 原生工具:服务器状态/指标、平台命令执行、线程 CPU Top/栈/死锁、
diagnostic_bundle - 内嵌 Arthas Core(Java 8–16 用 3.1.1、Java 17+ 用 4.3.2):
watch/trace/monitor/tt/profiler等持续命令异步任务化,arthas_execute兜底全部命令 - 产物统一写
mcp-workspace/(heap dump、火焰图、反编译源码、dump class),支持分块读写与清理 - 审计记录来源 IP/工具/任务/耗时/参数 SHA-256,不记录密钥与命令正文
安全边界:开启该控制面即等于授予 JVM 完整控制权限(类重定义、任意 JVM 内代码求值),仅限明确授权的事故场景。不提供 OS Shell;Arthas 上游 Telnet/HTTP/MCP 端口不监听。