主题
数据预警
数据结构
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| title | body | string | 是 | 预警标题 |
| appId | body | integer | 是 | 预警所属 app id |
| dashboardId | body | integer | 是 | 预警条件所选dashboard id |
| chartId | body | integer | 是 | 预警条件所选chart id |
| options | body | object | 是 | 预警配置信息 |
| » rules | body | [object] | 是 | 预警触发条件,HE数组。可以有多个条件,每个条件为一个数组项。 |
| »» kind | body | string | 否 | none |
| »» op | body | string | 否 | none |
| »» args | body | [object] | 否 | none |
| »»» kind | body | string | 否 | none |
| »»» op | body | string | 否 | none |
| »»» args | body | [object] | 否 | none |
| »»»» kind | body | string | 是 | none |
| »»»» op | body | string | 是 | none |
| »»»» type | body | string | 是 | none |
| » timing | body | object | 是 | 触发时机配置信息 |
| »» cronType | body | string | 是 | cronType表达式类型 |
| »» cronDesc | body | string | 是 | cron表达式 |
| »» timeZone | body | string | 是 | 时区 |
| »» triggerType | body | string | 是 | 值为(CRON_JOB) |
| »» frequency | body | string | 是 | 频率,值为(ALWAYS,ONLY_ONCE,ONCE_EVERYDAY)之一 |
| body | object | 否 | 邮件推送配置 | |
| »» buildMessageAsOwner | body | boolean | 否 | 使用预警创建者的身份导出数据并生成消息内容 |
| »» dashboardList | body | [object] | 否 | 推送仪表盘列表 |
| »»» id | body | integer | 否 | 仪表盘id |
| »»» title | body | string | 否 | 仪表盘标题 |
| »» bodyWithDashboardUrl | body | boolean | 否 | 正文是否附加仪表盘链接 |
| »» enabled | body | boolean | 否 | 是否开启 |
| »» bodyWithImage | body | boolean | 否 | 正文是否附加仪表盘图片 |
| »» compressAttachment | body | boolean | 否 | 是否压缩附加 |
| »» receiverList | body | [object] | 否 | 衡石系统内接收者列表 |
| »»» id | body | integer | 否 | 接收者id |
| »»» name | body | string | 否 | none |
| »»» loginName | body | string | 否 | none |
| »»» receiverType | body | string | 否 | 接收人类型 |
| »» emailSubject | body | string | 否 | 主题 |
| »» defaultEmailSubject | body | string | 否 | 默认主题 |
| »» emailContentBody | body | string | 否 | 内容 |
| »» defaultEmailContentBody | body | string | 否 | 默认内容 |
| »» tooLargeContentBody | body | string | 否 | 附件内容过大时替换内容 |
| »» defaultTooLargeContentBody | body | string | 否 | 默认附件内容过大时替换内容 |
| »» attachmentTypes | body | string | 否 | 附件类型 |
| »» emailAddressList | body | [string] | 否 | 邮箱地址列表 |
| » webhook | body | object | 否 | webhook推送配置 |
| »» enabled | body | boolean | 否 | 是否开启 |
| »» url | body | string | 否 | webhook推送目的地址 |
| »» method | body | string | 否 | HTTP请求类型 |
| »» requestBody | body | string | 否 | 请求体(仅支持json格式请求体) |
| »» headers | body | [string] | 否 | 请求头 |
| » wecom | body | object | 否 | 企业微信推送配置 |
| »» buildMessageAsOwner | body | boolean | 否 | 使用预警创建者的身份导出数据并生成消息内容 |
| »» dashboardList | body | [object] | 否 | none |
| »»» id | body | integer | 否 | none |
| »»» title | body | string | 否 | none |
| »» bodyWithDashboardUrl | body | boolean | 否 | none |
| »» enabled | body | boolean | 否 | none |
| »» bodyWithImage | body | boolean | 否 | none |
| »» targets | body | [string] | 否 | 企业微信用户id列表 |
| »» receiverList | body | [object] | 否 | 衡石系统内接收者列表 |
| »»» id | body | integer | 否 | 接收者id |
| »»» name | body | string | 否 | none |
| »»» loginName | body | string | 否 | none |
| »»» receiverType | body | string | 否 | 接收人类型 |
| »» subject | body | string | 否 | 消息主题 |
| »» content | body | string | 否 | 消息内容 |
| »» bodyCustomized | body | boolean | 否 | 是否开启自定义消息 |
| »» defaultContent | body | string | 否 | 默认消息内容 |
| » feishu | body | object | 否 | 飞书推送配置 |
| »» buildMessageAsOwner | body | boolean | 否 | 使用预警创建者的身份导出数据并生成消息内容 |
| »» dashboardList | body | [object] | 否 | none |
| »»» id | body | integer | 否 | none |
| »»» title | body | string | 否 | none |
| »» bodyWithDashboardUrl | body | boolean | 否 | none |
| »» enabled | body | boolean | 否 | none |
| »» bodyWithImage | body | boolean | 否 | none |
| »» targets | body | [string] | 否 | 飞书用户id列表 |
| »» receiverList | body | [object] | 否 | 衡石系统内接收者列表 |
| »»» id | body | integer | 否 | 接收者id |
| »»» name | body | string | 否 | none |
| »»» loginName | body | string | 否 | none |
| »»» receiverType | body | string | 否 | 接收人类型 |
| »» subject | body | string | 否 | none |
| »» content | body | string | 否 | none |
| »» bodyCustomized | body | boolean | 否 | none |
| »» defaultContent | body | string | 否 | none |
| » dingtalk | body | object | 否 | 钉钉推送配置 |
| »» buildMessageAsOwner | body | boolean | 否 | 使用预警创建者的身份导出数据并生成消息内容 |
| »» dashboardList | body | [object] | 否 | none |
| »»» id | body | integer | 否 | none |
| »»» title | body | string | 否 | none |
| »» bodyWithDashboardUrl | body | boolean | 否 | none |
| »» enabled | body | boolean | 否 | none |
| »» bodyWithImage | body | boolean | 否 | none |
| »» targets | body | [string] | 否 | 钉钉用户id列表 |
| »» receiverList | body | [object] | 否 | 衡石系统内接收者列表 |
| »»» id | body | integer | 否 | 接收者id |
| »»» name | body | string | 否 | none |
| »»» loginName | body | string | 否 | none |
| »»» receiverType | body | string | 否 | 接收人类型 |
| »» subject | body | string | 否 | none |
| »» content | body | string | 否 | none |
| »» bodyCustomized | body | boolean | 否 | none |
| »» defaultContent | body | string | 否 | none |
| errorPolice | body | object | 是 | 预警失败策略 |
| » canPause | body | boolean | 是 | 能否暂停任务,暂停任务后需手动重新启动。 |
| » interval | body | integer | 是 | 重试间隔时间,单位:分钟 |
| » retryable | body | boolean | 是 | 能否重试 |
| » notifyUser | body | boolean | 是 | 任务暂停后是否通知应用所有者 |
| » retryTimes | body | integer | 是 | 重试总次数 |
| » failureTimes | body | integer | 是 | 失败暂停阈值 |
收件人类型
| 字段值 | 描述 |
|---|---|
| USER | 用户 |
| ORGANIZATION | 用户组 |
| DEPARTMENT | 组织机构 |
邮件附件类型
| 字段值 | 描述 |
|---|---|
| PNG | png文件 |
| pdf文件 | |
| EXCEL | excel文件 |
接口说明
创建数据预警条目
创建属于特定应用的数据预警条目,一个APP最多创建20条预警条目
请求参数
参考预警数据结构。
http
POST /api/apps/{appId}/alert HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{
"title": "测试预警1",
"appId": 128149,
"dashboardId": 1,
"chartId": 5,
"options": {
"rules": [
{
"kind": "function",
"op": "and",
"args": [
{
"kind": "function",
"op": "!=",
"args": [
{
"kind": "reference",
"op": "u_32a8edf1946cd3c3_1",
"type": "number"
},
{
"kind": "constant",
"op": "0",
"type": "number"
}
]
}
]
}
],
"timing": {
"cronType": "WEEKLY",
"cronDesc": "0 0 0 ? * 1",
"timeZone": "GMT+08:00",
"triggerType": "CRON_JOB",
"frequency": "ONLY_ONCE"
},
"email": {
"enabled": true,
"receiverList": [
{
"id": 26889,
"name": "测试用户",
"loginName": "test1",
"receiverType": "USER"
}
],
"emailSubject": "",
"emailContentBody": "指标已达预警阈值,请知晓并及时处理。<br /><br />预警规则被触发<br />id(求和) != 0<br />指标当前数据如下(只预览最多20条数据,可打开仪表盘链接查看详情):<br />{{%%system.chart.data}}<br /><br />应用:{{%%system.app.title}}<br />仪表盘:{{%%system.dashboard.title}}<br />图表:{{%%system.chart.title}}<br />",
"defaultEmailSubject": "【指标预警通知】{{%%system.dashboard.title}}:id",
"defaultEmailContentBody": "指标已达预警阈值,请知晓并及时处理。<br /><br />预警规则被触发<br />id(求和) != 0<br />指标当前数据如下(只预览最多20条数据,可打开仪表盘链接查看详情):<br />{{%%system.chart.data}}<br /><br />应用:{{%%system.app.title}}<br />仪表盘:{{%%system.dashboard.title}}<br />图表:{{%%system.chart.title}}<br />",
"bodyWithDashboardUrl": true,
"emailSubjectCustomized": false,
"emailBodyCustomized": true
},
"webhook": {
"enabled": true,
"url": "https://www.baidu.com",
"method": "POST",
"headers": [],
"requestBody": ""
}
},
"errorPolice": {
"canPause": true,
"interval": 5,
"retryable": true,
"notifyUser": true,
"retryTimes": 2,
"failureTimes": 3
}
}http
HTTP/1.1 200 Ok
Content-Type: application/json
{
"version": "version@9a5e106#6730f0d",
"code": 0,
"msg": "success",
"data": {
"id": 213,
"title": "测试预警3",
"appId": 128149,
"dashboardId": 1,
"chartId": 5,
"options": {
"rules": [
{
"args": [
{
"args": [
{
"op": "u_32a8edf1946cd3c3_1",
"kind": "reference",
"type": "number"
},
{
"op": "0",
"kind": "constant",
"type": "number"
}
],
"op": "!=",
"kind": "function"
}
],
"op": "and",
"kind": "function"
}
],
"email": {
"enabled": true,
"receiverList": [
{
"id": 26889,
"name": "测试用户",
"loginName": "test1",
"receiverType": "USER"
}
],
"dashboardList": [
{
"id": 1,
"title": "新建仪表盘"
}
],
"emailSubjectCustomized": false,
"emailBodyCustomized": true,
"emailSubject": "",
"defaultEmailSubject": "【指标预警通知】{{%%system.dashboard.title}}:id",
"emailContentBody": "指标已达预警阈值,请知晓并及时处理。<br /><br />预警规则被触发<br />id(求和) != 0<br />指标当前数据如下(只预览最多20条数据,可打开仪表盘链接查看详情):<br />{{%%system.chart.data}}<br /><br />应用:{{%%system.app.title}}<br />仪表盘:{{%%system.dashboard.title}}<br />图表:{{%%system.chart.title}}<br />",
"defaultEmailContentBody": "指标已达预警阈值,请知晓并及时处理。<br /><br />预警规则被触发<br />id(求和) != 0<br />指标当前数据如下(只预览最多20条数据,可打开仪表盘链接查看详情):<br />{{%%system.chart.data}}<br /><br />应用:{{%%system.app.title}}<br />仪表盘:{{%%system.dashboard.title}}<br />图表:{{%%system.chart.title}}<br />",
"bodyWithDashboardUrl": true
},
"webhook": {
"enabled": true,
"url": "https://www.baidu.com",
"method": "POST",
"headers": [],
"requestBody": ""
},
"timing": {
"triggerType": "CRON_JOB",
"cronDesc": "0 0 0 ? * 1",
"cronType": "WEEKLY",
"timeZone": "GMT+08:00",
"frequency": "ONLY_ONCE"
}
},
"status": "RUNNING",
"enabled": true,
"createdBy": 11549,
"updatedBy": 11549,
"createdAt": "2023-07-11 14:38:51",
"updatedAt": "2023-07-11 14:38:51",
"isDelete": false,
"hsVersion": 0,
"errorPolice": {
"retryable": true,
"interval": 5,
"retryTimes": 2,
"canPause": true,
"failureTimes": 3,
"notifyUser": true
}
},
"chartDataStartTimeMillis": 0
}返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功 | Inline |
分页查询预警
http
GET /api/apps/{appId}/alert/list HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| appId | path | string | 是 | none |
| requestId | query | string | 否 | none |
| offset | query | Long | 否 | none |
| limit | query | Long | 否 | none |
删除预警条目
http
DELETE /api/apps/{appId}/alert/{alertId} HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| appId | path | string | 是 | none |
| alertId | path | string | 是 | none |
| requestId | query | string | 否 | none |
根据ID查询预警
http
GET /api/apps/{appId}/alert/{alertId} HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| appId | path | string | 是 | none |
| alertId | path | string | 是 | none |
| requestId | query | string | 否 | none |
编辑数据预警条目
编辑特定的预警条目
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| appId | path | string | 是 | none |
| alertId | path | string | 是 | none |
| requestId | query | string | 否 | none |
| body | body | object | 是 | none |
http
PUT /api/apps/{appId}/alert/{alertId} HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{
"title": "测试预警1",
"appId": 128149,
"dashboardId": 1,
"chartId": 5,
"options": {
"rules": [
{
"kind": "function",
"op": "and",
"args": [
{
"kind": "function",
"op": "!=",
"args": [
{
"kind": "reference",
"op": "u_32a8edf1946cd3c3_1",
"type": "number"
},
{
"kind": "constant",
"op": "0",
"type": "number"
}
]
}
]
}
],
"timing": {
"cronType": "WEEKLY",
"cronDesc": "0 0 0 ? * 1",
"timeZone": "GMT+08:00",
"triggerType": "CRON_JOB",
"frequency": "ONLY_ONCE"
},
"email": {
"enabled": true,
"receiverList": [
{
"id": 26889,
"name": "测试用户",
"loginName": "test1",
"receiverType": "USER"
}
],
"emailSubject": "",
"emailContentBody": "指标已达预警阈值,请知晓并及时处理。<br /><br />预警规则被触发<br />id(求和) != 0<br />指标当前数据如下(只预览最多20条数据,可打开仪表盘链接查看详情):<br />{{%%system.chart.data}}<br /><br />应用:{{%%system.app.title}}<br />仪表盘:{{%%system.dashboard.title}}<br />图表:{{%%system.chart.title}}<br />",
"defaultEmailSubject": "【指标预警通知】{{%%system.dashboard.title}}:id",
"defaultEmailContentBody": "指标已达预警阈值,请知晓并及时处理。<br /><br />预警规则被触发<br />id(求和) != 0<br />指标当前数据如下(只预览最多20条数据,可打开仪表盘链接查看详情):<br />{{%%system.chart.data}}<br /><br />应用:{{%%system.app.title}}<br />仪表盘:{{%%system.dashboard.title}}<br />图表:{{%%system.chart.title}}<br />",
"bodyWithDashboardUrl": true,
"emailSubjectCustomized": false,
"emailBodyCustomized": true
},
"webhook": {
"enabled": true,
"url": "https://www.baidu.com",
"method": "POST",
"headers": [],
"requestBody": ""
}
},
"errorPolice": {
"canPause": true,
"interval": 5,
"retryable": true,
"notifyUser": true,
"retryTimes": 2,
"failureTimes": 3
}
}http
HTTP/1.1 200 OK
Content-Type: application/json
{
"version": "version@9a5e106#6730f0d",
"code": 0,
"msg": "success",
"data": {
"id": 213,
"title": "测试预警3",
"appId": 128149,
"dashboardId": 1,
"chartId": 5,
"options": {
"rules": [
{
"args": [
{
"args": [
{
"op": "u_32a8edf1946cd3c3_1",
"kind": "reference",
"type": "number"
},
{
"op": "0",
"kind": "constant",
"type": "number"
}
],
"op": "!=",
"kind": "function"
}
],
"op": "and",
"kind": "function"
}
],
"email": {
"enabled": true,
"receiverList": [
{
"id": 26889,
"name": "测试用户",
"loginName": "test1",
"receiverType": "USER"
}
],
"dashboardList": [
{
"id": 1,
"title": "新建仪表盘"
}
],
"emailSubjectCustomized": false,
"emailBodyCustomized": true,
"emailSubject": "",
"defaultEmailSubject": "【指标预警通知】{{%%system.dashboard.title}}:id",
"emailContentBody": "指标已达预警阈值,请知晓并及时处理。<br /><br />预警规则被触发<br />id(求和) != 0<br />指标当前数据如下(只预览最多20条数据,可打开仪表盘链接查看详情):<br />{{%%system.chart.data}}<br /><br />应用:{{%%system.app.title}}<br />仪表盘:{{%%system.dashboard.title}}<br />图表:{{%%system.chart.title}}<br />",
"defaultEmailContentBody": "指标已达预警阈值,请知晓并及时处理。<br /><br />预警规则被触发<br />id(求和) != 0<br />指标当前数据如下(只预览最多20条数据,可打开仪表盘链接查看详情):<br />{{%%system.chart.data}}<br /><br />应用:{{%%system.app.title}}<br />仪表盘:{{%%system.dashboard.title}}<br />图表:{{%%system.chart.title}}<br />",
"bodyWithDashboardUrl": true
},
"webhook": {
"enabled": true,
"url": "https://www.baidu.com",
"method": "POST",
"headers": [],
"requestBody": ""
},
"timing": {
"triggerType": "CRON_JOB",
"cronDesc": "0 0 0 ? * 1",
"cronType": "WEEKLY",
"timeZone": "GMT+08:00",
"frequency": "ONLY_ONCE"
}
},
"status": "RUNNING",
"enabled": true,
"createdBy": 11549,
"updatedBy": 11549,
"createdAt": "2023-07-11 14:38:51",
"updatedAt": "2023-07-11 14:38:51",
"isDelete": false,
"hsVersion": 0,
"errorPolice": {
"retryable": true,
"interval": 5,
"retryTimes": 2,
"canPause": true,
"failureTimes": 3,
"notifyUser": true
}
},
"chartDataStartTimeMillis": 0
}返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功 | Inline |
验证预警条目
验证预警配置
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| appId | path | string | 是 | none |
| requestId | query | string | 否 | none |
| body | body | object | 是 | none |
http
POST /api/apps/{appId}/alert/validate HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{
"id": "123",
"title": "测试预警1",
"appId": 128149,
"dashboardId": 1,
"chartId": 5,
"options": {
"rules": [
{
"kind": "function",
"op": "and",
"args": [
{
"kind": "function",
"op": "!=",
"args": [
{
"kind": "reference",
"op": "u_32a8edf1946cd3c3_1",
"type": "number"
},
{
"kind": "constant",
"op": "0",
"type": "number"
}
]
}
]
}
],
"timing": {
"cronType": "WEEKLY",
"cronDesc": "0 0 0 ? * 1",
"timeZone": "GMT+08:00",
"triggerType": "CRON_JOB",
"frequency": "ONLY_ONCE"
},
"email": {
"enabled": true,
"receiverList": [
{
"id": 26889,
"name": "测试用户",
"loginName": "test1",
"receiverType": "USER"
}
],
"emailSubject": "",
"emailContentBody": "指标已达预警阈值,请知晓并及时处理。<br /><br />预警规则被触发<br />id(求和) != 0<br />指标当前数据如下(只预览最多20条数据,可打开仪表盘链接查看详情):<br />{{%%system.chart.data}}<br /><br />应用:{{%%system.app.title}}<br />仪表盘:{{%%system.dashboard.title}}<br />图表:{{%%system.chart.title}}<br />",
"defaultEmailSubject": "【指标预警通知】{{%%system.dashboard.title}}:id",
"defaultEmailContentBody": "指标已达预警阈值,请知晓并及时处理。<br /><br />预警规则被触发<br />id(求和) != 0<br />指标当前数据如下(只预览最多20条数据,可打开仪表盘链接查看详情):<br />{{%%system.chart.data}}<br /><br />应用:{{%%system.app.title}}<br />仪表盘:{{%%system.dashboard.title}}<br />图表:{{%%system.chart.title}}<br />",
"bodyWithDashboardUrl": true,
"emailSubjectCustomized": false,
"emailBodyCustomized": true
},
"webhook": {
"enabled": true,
"url": "https://www.baidu.com",
"method": "POST",
"headers": [],
"requestBody": ""
}
},
"errorPolice": {
"canPause": true,
"interval": 5,
"retryable": true,
"notifyUser": true,
"retryTimes": 2,
"failureTimes": 3
}
}http
HTTP/1.1 200 OK
Content-Type: application/json
{
"version": "version@9a5e106#6730f0d",
"code": 0,
"msg": "success",
"chartDataStartTimeMillis": 0
}返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功 | Inline |
状态码 200
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » version | string | true | none | none | |
| » code | integer | true | none | none | |
| » msg | string | true | none | none | |
| » chartDataStartTimeMillis | integer | true | none | none |