系统监控(SystemMonitorController)¶
系统运行时监控接口:获取进程 CPU 负载 / 内存使用 / 线程数,以及按时间窗口从 systemMonitor.txt 读取历史监控曲线数据。基址为 /api。
- 接口类型:REST 资源(
@Controller+ 方法级@ResponseBody+produces = APPLICATION_JSON_VALUE,方法返回Object,由 Spring Jackson 序列化为 JSON;响应非统一Resource,直接序列化为 JSON 对象 / 字符串) - 基址:
${myapps.context-path.runtime:}/api - Tag:系统监控
公共说明¶
- 鉴权(据源码):方法级路径
/system/monitor/time与/systemMonitor拼接类级/api后**不在**/api/runtime/**下,不在RestSecurityHandlerInterceptor覆盖范围。鉴权由全局过滤器RuntimeSecurityFilter(/*)执行登录态校验,未登录返回401(或 SSO 模式重定向到/signon)。需 accessToken,可通过 Cookie / 请求头 / query 参数任一方式传递。 - 响应结构:非统一
Resource。#1返回Map<String, Object>(直接序列化为 JSON 对象);#2返回String(已按[...]拼装好的 JSON 数组字面量,Spring 以text/plain写回,注意是字符串而非对象)。 - HTTP 状态码:方法级标注
@ResponseStatus(HttpStatus.OK),成功统一返回 200。
1. 获取进程 CPU 负载¶
返回当前 JVM 进程的 CPU 负载(百分比)、物理内存占用、堆/非堆内存使用量、线程数。
- 接口类型:REST 资源(返回
Map,@ResponseBody) - 请求方式:
GET - 请求路径:
/system/monitor/time(完整:{runtime-context}/api/system/monitor/time) - 鉴权:是(需 accessToken,据源码:
RuntimeSecurityFilter校验登录态) - Tag:系统监控
请求参数¶
无。
请求示例¶
响应¶
结构:非统一 Resource —— 直接返回 Map<String, Object> JSON 对象,无 errcode/errmsg/data/errors 包装。
| 字段 | 类型 | 说明 |
|---|---|---|
| cpuLoad | double | 进程 CPU 负载百分比(0–100,原值 <0 时归零) |
| memorySizeUse | double | 物理内存使用量(MB,两位小数) |
| totalMemorySize | long | 物理内存总量(MB) |
| threadNum | int | JVM 线程数 |
| heapSizeUsed | long | 堆内存使用量(MB) |
| nonHeapSizeUsed | long | 非堆内存使用量(MB) |
{
"cpuLoad": 12.34,
"memorySizeUse": "2048.00",
"totalMemorySize": 8192,
"threadNum": 250,
"heapSizeUsed": 512,
"nonHeapSizeUsed": 128
}
2. 获取系统监控数据¶
从 <java.io.tmpdir>/systemMonitor.txt 读取历史监控记录(每 30 秒一行 JSON),按 time(分钟数)从尾部往前截取相应行数;不传 time 时取最近 100 行。返回拼装好的 JSON 数组字符串。
- 接口类型:REST 资源(返回
String,@ResponseBody) - 请求方式:
GET - 请求路径:
/systemMonitor(完整:{runtime-context}/api/systemMonitor) - 鉴权:是(需 accessToken,据源码)
- Tag:系统监控
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| time | query | string | 否 | 取最近 N 分钟(源码按 N * 2 行采样);为空时取最近 100 行 |
请求示例¶
响应¶
结构:非统一 Resource —— 返回 JSON 字符串(已被控制器按 [...] 拼装,Spring 以 text/plain 写回;客户端需自行 JSON.parse)。每行结构由 SystemMonitorUtil 写入格式决定(典型含时间戳与各监控指标)。
[{"time":"2026-08-05 10:00:00","cpuLoad":12.3,"memorySizeUse":2048}, {"time":"2026-08-05 10:00:30","cpuLoad":12.5,"memorySizeUse":2050}]