跳转至

性能监控 JAMon(JamonController)

基于 JAMon 的运行时性能监控接口,提供监控菜单页面数据与监控管理( administrate)页面数据。可在此启用/关闭 JAMon 监控、SQL/异常详情采集,以及获取监控统计输出(按范围、排序、显示类型等维度)。

  • 接口类型:REST 资源(@RestController 继承 AbstractRuntimeController
  • 基址${myapps.context-path.runtime:}/api/authtime
  • Tag:性能监控

公共说明

  • 鉴权(据源码)RestSecurityHandlerInterceptor 仅注册到 /api/runtime/**/api/rest/bpm/**,而本控制器基址为 /api/authtime/**不在该拦截器覆盖范围;接口的登录态校验依赖前置 Servlet 过滤器链(RuntimeSecurityFilter 等)与控制器内 AbstractRuntimeController.getUser() 读取的 WebUser。调用方需为已登录的前台用户。
  • 响应结构:统一 Resource(见 ../index.md「统一响应结构」)。控制器通过 AbstractRuntimeController.success(...) / error(...) 构造返回值。
  • JAMon 状态:返回数据中包含 JAMonSQL SummaryException SummaryInterface 等监控项的启用/禁用状态(值为形如 JAMon = enabled 的描述字符串),以及 isSQLDetailEnabledSQLBufferSizeisExceptionDetailEnabledExceptionBufferSize 等指标。
  • 状态码:成功 HTTP 200;POST /jamon/jamonAdminInfo 在生成输出失败时返回 errcode=500

1. 获取 JAMon 菜单页面数据

返回 JAMon 监控菜单页面所需的版本号与各监控项状态;可通过 enableAll 参数启用或关闭全局监控。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/jamon/menu(完整:{runtime-context}/api/authtime/jamon/menu
  • 鉴权:是(据源码:依赖前置过滤器链已完成登录态校验)
  • Tag:性能监控

请求参数

参数名 位置 类型 必填 说明
enableAll query string 监控开关动作。取值:EnableMonitoring(启用 JAMon 与 SQL/异常汇总、接口监控,关闭 ResultSet 详情);DisableMonitoring(全部关闭);其它任意值仅查询当前状态

请求示例

GET /api/authtime/jamon/menu?enableAll=EnableMonitoring HTTP/1.1

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataMap<String, Object>,包含 JAMon 版本号与监控项状态,常见键:versionJAMonSQL SummaryException SummaryInterfaceisSQLDetailEnabledSQLBufferSizeExceptionBufferSizeisExceptionDetailEnabled

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "version": "2.81",
    "JAMon": "JAMon = enabled",
    "SQL Summary": "SQL Summary = enabled",
    "Exception Summary": "Exception Summary = enabled",
    "Interface": "Interface = enabled",
    "isSQLDetailEnabled": "disabled",
    "SQLBufferSize": 100,
    "ExceptionBufferSize": 100,
    "isExceptionDetailEnabled": "disabled"
  },
  "errors": null
}

失败示例

{
  "errcode": 500,
  "errmsg": "监控初始化失败",
  "data": null,
  "errors": null
}


2. 获取 JAMon 管理页面数据

按监控范围、排序、显示类型等维度,从 JAMon 取出监控统计的输出内容(默认 HTML),用于管理页面渲染。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/jamon/jamonAdminInfo(完整:{runtime-context}/api/authtime/jamon/jamonAdminInfo
  • 鉴权:是(据源码:依赖前置过滤器链已完成登录态校验)
  • Tag:性能监控

请求参数

参数名 位置 类型 必填 说明
content body string(JSON) 请求包体,JSON 字符串,字段全部可选(缺省时使用默认值,见请求体)

请求体

字段 类型 必填 默认值 说明
action string Refresh JAMon 管理动作
monProxyAction string No Action MonProxy 动作(启用/禁用 SQL/异常详情等)
outputTypeValue string html 输出类型(html/xml 等)
formatterValue string #,### 数值格式化模板
ArraySQL string "" 监控范围数组(JAMon 特有语法)
sortOrder string asc 排序方向
sortCol int 2(为 0 时回退) 排序列索引
TextSize int 0 文本截断长度
highlight string "" 高亮关键字
displayTypeValue string BasicColumns 显示列类型
RangeName string AllMonitors 监控范围名称
{
  "action": "Refresh",
  "outputTypeValue": "html",
  "sortOrder": "asc",
  "sortCol": 2,
  "RangeName": "AllMonitors",
  "displayTypeValue": "BasicColumns"
}

请求示例

POST /api/authtime/jamon/jamonAdminInfo HTTP/1.1
Content-Type: application/json

{
  "action": "Refresh",
  "RangeName": "AllMonitors",
  "displayTypeValue": "BasicColumns",
  "sortCol": 2,
  "sortOrder": "asc"
}

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataMap<String, Object>,由 JamonAdminService.getOutputText(...) 返回的 JAMon 输出内容(通常含 html 等 HTML 片段字段),并追加 isEnabled(JAMon 是否启用)。

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "html": "<table>...JAMon 监控统计 HTML...</table>",
    "isEnabled": true
  },
  "errors": null
}

失败示例

{
  "errcode": 500,
  "errmsg": "生成监控输出失败",
  "data": null,
  "errors": null
}