/spark healthreport
基本信息
| 属性 | 值 |
|---|---|
| 命令名 | healthreport |
| 别名 | health、ht |
| 来源 | HealthModule.healthReport(HealthModule.java:87) |
| 参数 | --memory、--network(均为布尔 flag) |
| Tab 补全 | TabCompleter.completeForOpts(arguments, "--memory", "--network") |
一次性生成服务器健康快照并直接打印到聊天框。这是 spark 提供的最完整的单次诊断输出。
功能
先回复「Generating server health report…」,随后按固定顺序拼装报告段落(HealthModule.healthReport):
| 顺序 | 段落 | 条件 | 数据源 |
|---|---|---|---|
| 1 | tick 统计(TPS + tick 时长) | tickStatistics != null |
TickStatistics |
| 2 | CPU 统计 | 无条件 | CpuMonitor |
| 3 | 基础内存统计 | 无条件 | ManagementFactory.getMemoryMXBean() |
| 4 | 详细内存统计(分代/分池) | 传 --memory |
MemoryMXBean 池级明细 |
| 5 | 网络统计 | 传 --network 时为详细模式 |
NetworkMonitor |
| 6 | 磁盘统计 | 无条件 | NetworkMonitor / 磁盘空间探针 |
段落 1 复用与 /spark tps 相同的 TickStatistics;段落 3 的 MemoryMXBean 只读取堆/非堆的使用量、已提交量与上限,不触发 GC。
网络统计是条件段但默认也有基础内容:addNetworkStats(report, arguments.boolFlag("network")) 把 flag 传进去决定详细程度,因此不带 --network 时仍会输出网络的概览信息,只是粒度较粗。
磁盘统计无条件输出,反映 spark 所在目录所在卷的可用空间。
数值
本命令不引入新数值,只聚合既有监控器的读数:
| 指标 | 统计窗口 | 来源 |
|---|---|---|
| TPS | 5s / 10s / 1m / 5m / 15m | TickStatistics |
| tick 时长(min/med/95%/max) | 10s / 1m | TickStatistics |
| CPU(系统 + 进程) | 10s / 1m / 15m | CpuMonitor |
--memory / --network 没有对应的关闭 flag —— 也就是说无法主动隐藏这两段,只能选择是否展开细节。
交互
| 触发 | 行为 |
|---|---|
| 服务端执行 | NetworkMonitor.ensureMonitoring() 已在 SparkPlatform.enable 中启动,报告含全服数据 |
| 客户端执行 | 报告仅反映客户端进程的 CPU/内存/网络/磁盘 |
与 profiler 不同,healthreport 不产生任何文件、不做任何网络上传,全部内容以聊天文本返回。
相关条目
- /spark tps - 报告第 1、2 段的独立快捷方式
- /spark gc - 报告不含 GC 统计,需单独查询
- config.json 配置项 - 端点配置不影响本命令