# 接口列表
以下接口都默认省略 OpenAPI
的应用鉴权参数,请根据文档 接口签名 实现应用鉴权。任务鉴权会列出参数,表名该接口需要任务鉴权,但不再重复说明任务鉴权算法,请根据文档 接口签名 实现任务鉴权。
# 部门列表-/department/simple
GET /department/simple
Request Headers:
- Content-Type: application/json
Request Parameters:
无
Request Body:
无
Response:
{
"code": 0,
"msg": "success",
"data": {
"departments": [
{
"id": 1,
"pinyin": "bumen",
"name": "部门",
"remark": ""
},
{
"id": 2,
"pinyin": "zhiliangyanfabu",
"name": "部门2",
"remark": ""
}
]
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Field | Type | Comment |
---|---|---|
code | Number | 状态码:0-成功;其他-失败 |
msg | String | 错误信息,以 code 的值为准 |
data | Object | 响应结果 |
data.departments | Array | 部门列表 |
data.departments.id | Number | 部门ID |
data.departments.pingyin | String | 部门名称拼音 |
data.departments.name | String | 部门名称 |
data.departments.remark | String | 备注信息 |
# 部门信息详情-/department/show
GET /department/show
Request Headers:
- Content-Type: application/json
Request Parameters:
参数名称 | 是否必须 | 示例 | 备注 |
---|---|---|---|
id | 是 | 1 | 部门ID |
Request Body:
无
Response:
{
"code": 0,
"msg": "success",
"data": {
"department": {
"id": 1,
"bu_id": 1,
"name": "部门",
"pinyin": "bumen",
"remark": "",
"created_by": 1,
"updated_by": 1,
"created_at": 1591614072,
"updated_at": 1591614072,
"creator": {
"uid": 1,
"username": "ethananony",
"user": "ethananony",
"email": "ethananony@aliyun.com",
"department": "网校事业部-互联网研发部-基础架构部-服务治理组"
},
"updator": {
"uid": 1,
"username": "ethananony",
"user": "ethananony",
"email": "ethananony@aliyun.com",
"department": "网校事业部-互联网研发部-基础架构部-服务治理组"
},
"business_unit": {
"id": 1,
"name": "网校",
"remark": "学而思网校",
"pinyin": "wangxiao"
}
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Field | Type | Comment |
---|---|---|
code | Number | 状态码:0-成功;其他-失败 |
msg | String | 错误信息,以 code 的值为准 |
data | Object | 响应结果 |
data.department | Object | 部门详情 |
data.department.id | Number | 部门ID |
data.department.bu_id | Number | 事业部ID |
data.department.name | String | 部门名称 |
data.department.pinyin | String | 部门名称拼音 |
data.department.remark | String | 备注信息 |
data.department.created_by | Number | 部门创建者工号 |
data.department.updated_by | Number | 部门信息更新者工号 |
data.department.created_at | Number | 创建时间(Unix 时间戳) |
data.department.updated_at | Number | 更新时间(Unix 时间戳) |
data.departments.creator | Object | 创建人详情 |
data.departments.creator.uid | Number | 工号 |
data.departments.creator.username | String | 姓名 |
data.departments.creator.user | String | 英文账号 |
data.departments.creator.email | String | 邮箱 |
data.departments.creator.department | String | 所属部门名称 |
data.departments.updator | Object | 信息更新者详情 |
data.departments.updator.uid | Number | 工号 |
data.departments.updator.username | String | 姓名 |
data.departments.updator.user | String | 英文账号 |
data.departments.updator.email | String | 邮箱 |
data.departments.updator.department | String | 所属部门名称 |
data.department.business_unit | Object | 事业部信息 |
data.department.business_unit.id | Number | 事业部ID |
data.department.business_unit.name | String | 事业部名称 |
data.department.business_unit.remark | String | 事业部备注 |
data.department.business_unit.pinyin | String | 事业部拼音 |
# 用户详情-/user/profile
GET /user/profile
Request Headers:
- Content-Type: application/json
Request Parameters:
参数名称 | 是否必须 | 示例 | 备注 |
---|---|---|---|
uid | 是 | 2 | 工号 |
Request Body:
无
Response:
{
"code": 0,
"msg": "success",
"data": {
"user": {
"uid": 2,
"username": "another",
"pinyin": "another",
"user": "another",
"email": "another@foo.bar",
"department": "部门",
"phone": "18711124774",
"wechatid": "",
"role": 9,
"created_at": 1594011385,
"updated_at": 1594011385
},
"permission": {
"role": 9,
"read": [],
"write": []
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Field | Type | Comment |
---|---|---|
code | Number | 状态码:0-成功;其他-失败 |
msg | String | 错误信息,以 code 的值为准 |
data | Object | 响应结果 |
data.user | Object | 用户详情 |
data.user.uid | Number | 工号 |
data.user.username | String | 姓名 |
data.user.pinyin | String | 姓名拼音 |
data.user.user | String | 英文账号 |
data.user.email | String | 邮件地址 |
data.user.department | String | 所属部门 |
data.user.phone | String | 电话 |
data.user.wechatid | String | 微信号 |
data.user.role | Number | 权限角色 |
data.user.created_at | Number | 创建时间 (Unix 时间戳) |
data.user.updated_at | Number | 更新时间(Unix 时间戳) |
data.permission.role | Number | 用户角色,0-普通用户;9-超管 |
data.permission.read | Array | 拥有只读权限的任务ID |
data.permission.write | Array | 拥有读写权限的任务ID |
# 用户手机号更新-/user/updatephone
PUT /user/updatephone
Request Headers:
- Content-Type: application/json
Request Parameters:
无
Request Body:
{
"uid": 1, // 用户ID,工号取整
"phone": "19812345678" // 手机号
}
2
3
4
Response:
{
"code": 0,
"msg": "success",
"data": {
"user": {
"uid": 2,
"username": "another",
"pinyin": "another",
"user": "another",
"email": "another@foo.bar",
"department": "部门",
"phone": "18711124774",
"wechatid": "",
"role": 9,
"created_at": 1594011385,
"updated_at": 1595909028
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Field | Type | Comment |
---|---|---|
code | Number | 状态码:0-成功;其他-失败 |
msg | String | 错误信息,以 code 的值为准 |
data | Object | 响应结果 |
data.user | Object | 用户信息 |
data.user.uid | Number | 工号 |
data.user.username | Number | 姓名 |
data.user.pinyin | String | 姓名拼音 |
data.user.user | String | 英文账号 |
data.user.email | String | 邮箱 |
data.user.department | String | 所属部门 |
data.user.phone | String | 电话号 |
data.user.wechatid | String | 微信号 |
data.user.role | Number | 用户角色 |
data.user.created_at | Number | 创建时间 (Unix 时间戳) |
data.user.updated_at | Number | 更新时间 (Unix 时间戳) |
# 告警任务详情-/alarmtask/show
GET /alarmtask/show
Request Headers:
- Content-Type: application/json
Request Parameters:
参数名称 | 是否必须 | 示例 | 备注 |
---|---|---|---|
id | 是 | 105 | 告警任务ID |
timestamp | 是 | 1584671913 | 鉴权时间戳 |
sign | 是 | 6e673c6de3a0ed4a9257d4ea4d907fea | 鉴权签名 |
Request Body:
无
Response:
点击查看响应参数
{
"code": 0,
"msg": "success",
"data": {
"task": { // 任务详情
"id": 266, // 任务ID
"name": "完整示例", // 任务名称
"pinyin": "rizhizhongxin", // 任务名称拼音
"token": "d3213fe78d9f81f448141495a274e0c700ad1c25", // 任务token,调用告警接口使用
"secret": "637ed6563aa17197438cf8cc173f910a7f00bcc4", // 任务secret,调用OpenAPI使用
"department_id": 1, // 部门ID
"flag_save_db": 1, // 是否入库:1-入库;0-不入库
"status": 1, // 状态:1-运行中;0-已停止;2-已暂停
"created_by": 1, // 创建人
"created_at": 1595338356, // 创建时间,时间戳(单位秒)
"updated_at": 1595996005, // 更新时间,时间戳(单位秒)
"department": { // 部门信息
"id": 1, // 部门ID
"name": "部门" // 部门名称
},
"creator": { // 创建人信息
"uid": 1, // UID
"username": "ethananony", // 姓名
"email": "ethananony@aliyun.com", // 邮箱
"department": "部门" // 部门
},
"permission": { // 权限信息
"rw": [ // 读写权限用户列表
{
"uid": 1,
"username": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
],
"ro": [ // 只读权限用户列表
{
"uid": 1,
"username": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
]
},
"receiver": { // 通知人配置
"alarmgroup": [], // 告警组配置
"channels": { // 通知渠道配置
"sms": [ // 短信渠道
{
"uid": 1,
"username": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
],
"email": [ // 邮件渠道
{
"uid": 1,
"username": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
],
"phone": [ // 电话渠道
{
"uid": 1,
"username": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
],
"dingworker": [ // 钉钉工作通知渠道
{
"uid": 1,
"username": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
],
"dinggroup": [ // 钉钉机器人(钉钉群)渠道
{
// 机器人的webhook中的token参数
"webhook": "1dadee4018526bb63b21d84d6d4e42c96c1e1c4ef218540fdcebf499daef3462",\
// 点击机器人加签生产的secret
"secret": "SECf5a89f004d59a1d3acc916ed745fc8efaf0ee889d8f09709cba21b07174a8a7b"
}
],
"yachgroup": [ // 知音楼机器人(知音楼群)渠道
{
// 机器人的webhook中的token参数
"webhook": "1dadee4018526bb63b21d84d6d4e42c96c1e1c4ef218540fdcebf499daef3462",
// 机器人的secret
"secret": "SECf5a89f004d59a1d3acc916ed745fc8efaf0ee889d8f09709cba21b07174a8a7b"
}
],
"yachworker": [ // 知音楼工作通知渠道
{
"uid": 1,
"username": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
],
"webhook": { // webhook渠道
"url": "http://foo.domain.com/callback"
}
},
"dispatch": [ // 分级告警配置
{
"conditions": [ // 分级条件
{
"rule": [ // 规则
{
"field": "ctn.key", // 字段
"operator": "eq", // 操作符
"threshold": "123" // 阈值
}
]
},
{
"rule": [
{
"field": "ctn.key2",
"operator": "gt",
"threshold": "1"
}
]
}
],
"receiver": { // 分级告警的通知人配置
"alarmgroup": [],
"channels": {
"sms": [],
"email": [],
"phone": [],
"dingworker": [
{
"uid": 1,
"username": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
],
"dinggroup": [],
"yachgroup": [
{
"webhook": "eHhpemFUVTA4b1l3255436W9XNlMvZjVuREVDTmMzZmRGdzBsNTN2UHNndG9GZVJKL1FUNllyWkkzK2x3Nw",
"secret": "333332465465467756"
}
],
"yachworker": [
{
"uid": 1,
"username": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
],
"webhook": {
"url": ""
}
}
}
}
],
"mode": 1 // 分级告警模式:1-懒惰模式;2-非懒惰模式
},
"workflow": { // 工作流配置
"reminds": [ // 工作流提醒配置
{
"interval": 10, // 时间间隔:10分钟
"status": 1, // 工作流状态:0-待处理;1-处理中
"mode": "once", // 是否周期循环:once-不循环;cycle-循环
"reuse_receiver": 1 // 复用通知人
},
{
"interval": 30,
"status": 0,
"mode": "cycle",
"reuse_receiver": 0, // 不复用通知人
"receiver": { // 自定义的提醒通知人
"alarmgroup": [],
"channels": {
"sms": [
{
"uid": 1,
"username": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
],
"email": [
{
"uid": 1,
"username": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
],
"phone": [
{
"uid": 1,
"username": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
],
"dingworker": [
{
"uid": 1,
"username": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
],
"dinggroup": [
{
"webhook": "1dadee4018526bb63b21d84d6d4e42c96c1e1c4ef218540fdcebf499daef3462",
"secret": "SECf5a89f004d59a1d3acc916ed745fc8efaf0ee889d8f09709cba21b07174a8a7b"
}
],
"yachgroup": [],
"yachworker": [],
"webhook": {
"url": ""
}
}
}
}
],
"enable": true // 是否开启工作流
},
"filter": { // 告警过滤
"not_match": 1, // 不匹配操作:1-直接入库;0-丢弃告警
"mode": 1, // 模式:1-白名单;2-黑名单
"conditions": [ // 过滤条件
{
"rule": [ // 规则
{
"field": "ctn.cpu_used",
"operator": "gt",
"threshold": "80"
}
],
"level": 0 // 告警级别:0-通知;1—警告;2-错误;3-紧急;9-继承
}
],
"enable": true // 是否开启告警过滤
},
"upgrade": { // 告警升级
"strategies": [ // 升级策略配置
{
"interval": 10, // 统计时间间隔
"count": 10, // 统计条数
"level": 0, // 告警级别:0-通知;1—警告;2-错误;3-紧急;
"reuse_receiver": 1 // 是否复用告警通知人:1-复用;0-不复用
},
{
"interval": 1,
"count": 10,
"level": 2,
"reuse_receiver": 0,
"receiver": { // 不复用时自定义的通知人
"alarmgroup": [],
"channels": {
"sms": [
{
"uid": 1,
"username": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
],
"email": [
{
"uid": 1,
"username": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
],
"phone": [
{
"uid": 1,
"username": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
],
"dingworker": [
{
"uid": 1,
"username": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
],
"dinggroup": [
{
"webhook": "1dadee4018526bb63b21d84d6d4e42c96c1e1c4ef218540fdcebf499daef3462",
"secret": "SECf5a89f004d59a1d3acc916ed745fc8efaf0ee889d8f09709cba21b07174a8a7b"
}
],
"yachgroup": [],
"yachworker": [],
"webhook": {
"url": ""
}
}
}
}
],
"enable": true // 是否开启告警升级
},
"compress": { // 告警收敛配置
"conditions": [ // 收敛条件
{
"rule": [ // 收敛规则
{
"field": "ctn.cpu_used",
"operator": "gt",
"threshold": "80"
}
]
}
],
"method": 1, // 收敛方式:1-条件收敛;3-内容收敛;4-全量收敛
"strategy": 3, // 收敛策略:1-周期收敛;2-延迟收敛;3-周期次数收敛;4-次数周期收敛;5-次数收敛
"strategy_cycle": 10, // 收敛周期
"strategy_count": 50, // 收敛次数
"not_match": 1, // 未收敛操作:1-入库;0-直接发送
"enable": true // 是否开启告警收敛
},
"recovery": { // 告警恢复
"conditions": [ // 恢复条件
{
"rule": [
{
"field": "ctn.cpu_used",
"operator": "gt",
"threshold": "80"
}
]
}
],
"mode": 1, // 恢复方式:1-条件恢复
"enable": true // 是否开启恢复
},
"template": { // 告警模板配置
"template_id": 3, // 模板ID
"type": 1, // 0-系统默认;1-预定义;2-自定义
"template": { // 模板详情
"id": 3, // 模板ID
"name": "ethananony测试", // 模板名称
"pinyin": "ethananonyceshi", // 模板拼音
"remark": "", // 模板备注
"template": { // 模板详情
"compressed": { // 告警收敛时场景
"sms": { // 短信渠道
"type": 0, // 模板类型:0-系统默认;1-预定义;2-自定义
"format": 1, // 模板格式:1-文本;2-Markdown;3-HTML
// 模板内容
"template": "{common.env}您有一个【{task.compress_method}-{task.compress_type}收敛-命中】告警\n\n任务:{task.name}发生了告警\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
},
"email": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个【{task.compress_method}-{task.compress_type}收敛-命中】告警\n\n任务:{task.name}发生了告警\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
},
"phone": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个【{task.compress_method}-{task.compress_type}收敛-命中】告警\n\n任务:{task.name}发生了告警\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
},
"dingworker": {
"type": 1,
"format": 1,
"template": "test"
},
"dinggroup": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个【{task.compress_method}-{task.compress_type}收敛-命中】告警\n\n任务:{task.name}发生了告警\n级别:{history.level}\n内容:{history.ctn}\n主机名:{history.ctn.hostname}"
},
"yachworker": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个【{task.compress_method}-{task.compress_type}收敛-命中】告警\n\n任务:{task.name}发生了告警\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
},
"yachgroup": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个【{task.compress_method}-{task.compress_type}收敛-命中】告警\n\n任务:{task.name}发生了告警\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
}
},
"not_compress": { // 告警未收敛场景
"sms": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个新告警\n \n任务:{task.name}发生了告警\n级别:{history.level}\n内容:{history.ctn}"
},
"email": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个新告警\n \n任务:{task.name}发生了告警\n级别:{history.level}\n内容:{history.ctn}"
},
"phone": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个新告警\n \n任务:{task.name}发生了告警\n级别:{history.level}\n内容:{history.ctn}"
},
"dingworker": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个新告警\n \n任务:{task.name}发生了告警\n级别:{history.level}\n内容:{history.ctn}"
},
"dinggroup": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个新告警\n \n任务:{task.name}发生了告警\n级别:{history.level}\n内容:{history.ctn}"
},
"yachworker": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个新告警\n \n任务:{task.name}发生了告警\n级别:{history.level}\n内容:{history.ctn}"
},
"yachgroup": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个新告警\n \n任务:{task.name}发生了告警\n级别:{history.level}\n内容:{history.ctn}"
}
},
"upgrade": { // 告警升级
"sms": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个告警升级\n\n任务:{task.name}触发了{context.rule.interval}分钟{context.rule.count}条的告警升级,告警次数为:{context.zcount}\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
},
"email": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个告警升级\n\n任务:{task.name}触发了{context.rule.interval}分钟{context.rule.count}条的告警升级,告警次数为:{context.zcount}\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
},
"phone": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个告警升级\n\n任务:{task.name}触发了{context.rule.interval}分钟{context.rule.count}条的告警升级,告警次数为:{context.zcount}\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
},
"dingworker": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个告警升级\n\n任务:{task.name}触发了{context.rule.interval}分钟{context.rule.count}条的告警升级,告警次数为:{context.zcount}\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
},
"dinggroup": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个告警升级\n\n任务:{task.name}触发了{context.rule.interval}分钟{context.rule.count}条的告警升级,告警次数为:{context.zcount}\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
},
"yachworker": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个告警升级\n\n任务:{task.name}触发了{context.rule.interval}分钟{context.rule.count}条的告警升级,告警次数为:{context.zcount}\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
},
"yachgroup": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个告警升级\n\n任务:{task.name}触发了{context.rule.interval}分钟{context.rule.count}条的告警升级,告警次数为:{context.zcount}\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
}
},
"recovery": { // 告警恢复
"sms": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个告警恢复\n\n任务:{task.name}触发了告警恢复\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
},
"email": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个告警恢复\n\n任务:{task.name}触发了告警恢复\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
},
"phone": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个告警恢复\n\n任务:{task.name}触发了告警恢复\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
},
"dingworker": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个告警恢复\n\n任务:{task.name}触发了告警恢复\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
},
"dinggroup": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个告警恢复\n\n任务:{task.name}触发了告警恢复\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
},
"yachworker": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个告警恢复\n\n任务:{task.name}触发了告警恢复\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
},
"yachgroup": {
"type": 0,
"format": 1,
"template": "{common.env}您有一个告警恢复\n\n任务:{task.name}触发了告警恢复\n级别:{history.level}\n内容:{history.ctn},\n主机名:{history.ctn.hostname}"
}
}
},
"created_by": 1, // 创建人UID
"created_at": 1585452020, // 创建时间,时间戳
"updated_at": 1585452020, // 更新时间,时间戳
"permission": [ // 权限信息,在权限列表内才可以对模板进行编辑
{
"uid": 1,
"user": "ethananony",
"email": "ethananony@aliyun.com",
"username": "ethananony",
"department": "部门"
}
],
"creator": { // 创建人信息
"uid": 1,
"username": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
}
},
"task_tags": [ // 告警任务标签
{
"id": 1, // 标签ID
"name": "标签1", // 标签名称
"remark": "", // 标签备注
"created_by": 1, // 创建人
"creator": { // 创建人信息
"uid": 1,
"username": "ethananony",
"user": "ethananony",
"email": "ethananony@aliyun.com",
"department": "部门"
}
}
]
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
# 告警任务创建-/alarmtask/store
POST /alarmtask/store
Request Headers:
- Content-Type: application/json
Request Parameters:
无
Request Body:
点击查看请求参数
{
"created_by": 1, // 创建人uid,工号不带0
"task_tags":[74, 11], // 关联的标签ID 非必填
"name": "日志中心", // 告警任务名称,必填,字符串,100字以内
"department_id": 8, // 部门ID,必填,数字
"flag_save_db": 1, // 是否入库存储,必填,枚举,0-不入库;1-入库
"permission": { // 权限列表,非必填
"rw": [1, 999999], // 读写权限用户列表,非必填,用户ID列表,用户ID为工号不带0
"ro": [1] // 只读权限用户列表,非必填(读写权限包含读,没必要重复添加,文档仅示例数据格式
},
"receiver": { // 告警通知人,必填
"alarmgroup": [1, 3], // 告警通知组ID,要求告警通知组与下方channels通知渠道至少填一个
"channels": { // 告警通知渠道,与告警通知组至少填一个
"dinggroup": [ // 钉钉机器人,可以填写多个,单个群最多可以添加6个,建议填写6个
{
"webhook": "1dadee4018526bb63b21d84d6d4e42c96c1e1c4ef218540fdcebf499daef3462", // webhook中的access_token参数的值,必填,字符串
"secret": "SECf5a89f004d59a1d3acc916ed745fc8efaf0ee889d8f09709cba21b07174a8a7b" // 机器人安全配置secret,必填,建议填写,字符串
}
],
"dingworker": [1], // 钉钉工作通知配置,用户ID列表,非必填
"yachgroup": [ // YACH机器人,可以填写多个,单个群最多可以添加6个,建议填写6个
{
"webhook": "1dadee4018526bb63b21d84d6d4e42c96c1e1c4ef218540fdcebf499daef3462", // webhook中的access_token参数的值,必填,字符串
"secret": "SECf5a89f004d59a1d3acc916ed745fc8efaf0ee889d8f09709cba21b07174a8a7b" // 机器人安全配置secret,必填,建议填写,字符串
}
],
"yachworker": [1], // YACH工作通知配置,用户ID列表,非必填
"email": [1], // 邮件通知配置,用户ID列表,非必填
"sms": [1], // 短信通知配置,用户ID列表,非必填,必须在哮天犬配置手机号才可使用
"wechat": [1], // 微信通知配置,用户ID列表,非必填
"phone": [1], // 电话通知配置,用户ID列表,非必填,必须在哮天犬配置手机号才可使用
"webhook": "http://www.baidu.com", // Webhook通知,必须为有效的URL地址,非必填
},
"dispatch": [ // 分级告警配置,选填
{
"conditions": [
{
"rule": [
{
"field": "sd",
"operator": "eq",
"threshold": "ddd"
}
]
},
{
"rule": [
{
"field": "sdfd",
"operator": "gt",
"threshold": "e"
}
]
}
],
"receiver": { // 同通知人配置
"channels": {
"dingworker": [
1
],
"yachgroup": [
{
"webhook": "eHhpemFUVTA4b1l3255436W9XNlMvZjVuREVDTmMzZmRGdzBsNTN2UHNndG9GZVJKL1FUNllyWkkzK2x3Nw",
"secret": "333332465465467756"
}
],
"yachworker": [
1
]
}
}
},
],
},
"workflow": { // 告警工作流配置,非必填
"enable": true, // 是否开启工作流配置,非必填,boolean类型,默认false
"reminds": [ // 工作流提醒配置,非必填
{
"mode": "once", // 提醒模式,如果配置了提醒则必填,否则非必填,once-单次提醒;cycle-周期提醒
"status": 1, // 提醒的状态,如果配置了提醒则必填,参见文档枚举类型:https://wiki.zhiyinlou.com/pages/viewpage.action?pageId=50971872
"interval": 10, // 提醒时间,如果配置了提醒则必填,大于0的整数
"reuse_receiver": 1 // 是否复用告警通知人,1-复用;0-不复用,如果配置了提醒则必填
},
{
"mode": "cycle",
"status": 0,
"interval": 30,
"reuse_receiver": 0,
"receiver": { // 提醒通知人,如果选择了不复用,则必填,否则不必填
"alarmgroup": [1, 3], // 告警通知组ID,要求告警通知组与下方channels通知渠道至少填一个
"channels": { // 告警通知渠道,与告警通知组至少填一个
"dinggroup": [ // 钉钉机器人,可以填写多个,单个群最多可以添加6个,建议填写6个
{
"webhook": "1dadee4018526bb63b21d84d6d4e42c96c1e1c4ef218540fdcebf499daef3462", // webhook中的access_token参数的值,必填,字符串
"secret": "SECf5a89f004d59a1d3acc916ed745fc8efaf0ee889d8f09709cba21b07174a8a7b" // 机器人安全配置secret,非必填,建议填写,字符串
}
],
"dingworker": [1], // 钉钉工作通知配置,用户ID列表,非必填
"email": [1], // 邮件通知配置,用户ID列表,非必填
"sms": [1], // 短信通知配置,用户ID列表,非必填,必须在哮天犬配置手机号才可使用
"wechat": [1], // 微信通知配置,用户ID列表,非必填
"phone": [1] // 电话通知配置,用户ID列表,非必填,必须在哮天犬配置手机号才可使用
}
}
}
]
},
"filter": { // 告警过滤配置,非必填
"enable": true, // 是否开启,非必填,boolean类型,默认false
"mode": 1, // 过滤模式:1-白名单;2-黑名单,开启了告警过滤必填
"conditions": [ // 过滤条件,至少配置一个条件
{
"level": 0, // 告警级别,0、1、2、3、9四种值可选,参考枚举数据类型:https://wiki.zhiyinlou.com/pages/viewpage.action?pageId=50971872
"rule": [
{
"field": "ctn.cpu_used", // 字段名称
"operator": "gt", // 条件操作符,参考枚举数据类型:https://wiki.zhiyinlou.com/pages/viewpage.action?pageId=50971872
"threshold": "80" // 阈值
}
]
}
],
"not_match": 1 // 未命中过滤:1-直接入库;0-丢弃告警
},
"upgrade": { // 告警升级配置,非必填
"enable": true, // 是否开启告警升级配置
"strategies": [ // 告警升级策略,至少填写一个
{
"interval": 10, // 几分钟内,单位:分钟
"count": 10, // 达到多少条,单位:条
"level": 1, // 告警级别:升级的告警级别
"reuse_receiver": 1 // 是否复用告警接收人
},
{
"interval": 1,
"count": 10,
"level": 4,
"reuse_receiver": 0, // 是否复用告警接收人
"receiver": {
"alarmgroup": [1, 3], // 告警通知组ID,要求告警通知组与下方channels通知渠道至少填一个
"channels": { // 告警通知渠道,与告警通知组至少填一个
"dinggroup": [ // 钉钉机器人,可以填写多个,单个群最多可以添加6个,建议填写6个
{
"webhook": "1dadee4018526bb63b21d84d6d4e42c96c1e1c4ef218540fdcebf499daef3462", // webhook中的access_token参数的值,必填,字符串
"secret": "SECf5a89f004d59a1d3acc916ed745fc8efaf0ee889d8f09709cba21b07174a8a7b" // 机器人安全配置secret,非必填,建议填写,字符串
}
],
"dingworker": [1], // 钉钉工作通知配置,用户ID列表,非必填
"email": [1], // 邮件通知配置,用户ID列表,非必填
"sms": [1], // 短信通知配置,用户ID列表,非必填,必须在哮天犬配置手机号才可使用
"wechat": [1], // 微信通知配置,用户ID列表,非必填
"phone": [1] // 电话通知配置,用户ID列表,非必填,必须在哮天犬配置手机号才可使用
}
}
}
]
},
"compress": { // 选填,不填写不开启告警收敛
"enable": true,
"method": 1, // 收敛指标(收敛方式):1-条件收敛;2-智能收敛;3-全量收敛
"conditions": [
{
"rule": [
{
"field": "ctn.cpu_used", // 字段名称
"operator": "gt", // 条件操作符,参考枚举数据类型:https://wiki.zhiyinlou.com/pages/viewpage.action?pageId=50971872
"threshold": "80" // 阈值
}
]
}
],
"strategy": 3, // 收敛策略:1-周期收敛;2-延迟收敛;3-周期次数收敛
"strategy_cycle": 10, // 周期时间,单位:min
"strategy_count": 50, // 周期条数:单位:条
"not_match": 1 // 1-直接发送;0-丢弃告警
},
"recovery": { // 告警自动恢复,非必填
"enable": true,
"mode": 1, // 过滤方式:1-条件恢复;2-延迟恢复
"conditions": [ // 条件恢复才有该字段
{
"rule": [
{
"field": "ctn.cpu_used", // 字段名称
"operator": "gt", // 条件操作符,参考枚举数据类型:https://wiki.zhiyinlou.com/pages/viewpage.action?pageId=50971872
"threshold": "80" // 阈值
}
]
}
],
"delay_interval": 10 // 延迟恢复时间,延迟恢复才有
},
"template": { // 选填,不填写为系统默认模板
"template_id": "@integer(1, 999999)",
"udf": { // 仅template_id才有该数据,User Defined - 自定义
"compressed": {
"dinggroup": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"dingworker": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"email": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"sms": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"wechat": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"phone": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"yachgroup": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"yachworker": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
},
"not_compress": {
// 同上
},
"upgrade": {
// 同上
},
"recovery": {
// 同上
}
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
Response:
{
"code": 0,
"msg": "success",
"data": {
"task": {
"name": "another测试2212",
"token": "290b58d01dec90feea8bf7e7dbd053ea819690f4",
"secret": "59f431d917078f9facdce98f2f061f6874611d76",
"department_id": 1,
"status": 1,
"created_by": 2,
"created_at": 1595924880,
"id": 403,
"department": {
"id": 1,
"name": "部门"
},
"creator": {
"uid": 2,
"username": "another",
"email": "another@foo.bar",
"department": "部门"
}
},
"nullPhoneUsers": [ // 电话或短信渠道中没有设置电话号的用户
{
"uid": 2,
"user": "another",
"username": "another",
"email": "another@foo.bar",
"department": "部门"
}
]
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 告警任务更新-/alarmtask/update
PUT /alarmtask/update
Request Headers:
- Content-Type: application/json
Request Parameters:
无
Request Body:
点击查看请求参数
{
"id": 105, // 告警任务ID
"timestamp": "1584671913", // 用于鉴权的时间戳
"sign": "6e673c6de3a0ed4a9257d4ea4d907fea", // 用于鉴权的签名
"name": "日志中心", // 告警任务名称,必填,字符串,100字以内
"department_id": 8, // 部门ID,必填,数字
"flag_save_db": 1, // 是否入库存储,必填,枚举,0-不入库;1-入库
"permission": { // 权限列表,非必填
"rw": [1, 999999], // 读写权限用户列表,非必填,用户ID列表,用户ID为工号不带0
"ro": [1] // 只读权限用户列表,非必填(读写权限包含读,没必要重复添加,文档仅示例数据格式
},
"receiver": { // 告警通知人,必填
"alarmgroup": [1, 3], // 告警通知组ID,要求告警通知组与下方channels通知渠道至少填一个
"channels": { // 告警通知渠道,与告警通知组至少填一个
"dinggroup": [ // 钉钉机器人,可以填写多个,单个群最多可以添加6个,建议填写6个
{
"webhook": "1dadee4018526bb63b21d84d6d4e42c96c1e1c4ef218540fdcebf499daef3462", // webhook中的access_token参数的值,必填,字符串
"secret": "SECf5a89f004d59a1d3acc916ed745fc8efaf0ee889d8f09709cba21b07174a8a7b" // 机器人安全配置secret,必填,建议填写,字符串
}
],
"dingworker": [1], // 钉钉工作通知配置,用户ID列表,非必填
"yachgroup": [ // YACH机器人,可以填写多个,单个群最多可以添加6个,建议填写6个
{
"webhook": "1dadee4018526bb63b21d84d6d4e42c96c1e1c4ef218540fdcebf499daef3462", // webhook中的access_token参数的值,必填,字符串
"secret": "SECf5a89f004d59a1d3acc916ed745fc8efaf0ee889d8f09709cba21b07174a8a7b" // 机器人安全配置secret,必填,建议填写,字符串
}
],
"yachworker": [1], // YACH工作通知配置,用户ID列表,非必填
"email": [1], // 邮件通知配置,用户ID列表,非必填
"sms": [1], // 短信通知配置,用户ID列表,非必填,必须在哮天犬配置手机号才可使用
"wechat": [1], // 微信通知配置,用户ID列表,非必填
"phone": [1], // 电话通知配置,用户ID列表,非必填,必须在哮天犬配置手机号才可使用
"webhook": "http://www.baidu.com", // Webhook通知,必须为有效的URL地址,非必填
},
"dispatch": [ // 分级告警配置,选填
{
"conditions": [
{
"rule": [
{
"field": "sd",
"operator": "eq",
"threshold": "ddd"
}
]
},
{
"rule": [
{
"field": "sdfd",
"operator": "gt",
"threshold": "e"
}
]
}
],
"receiver": { // 同通知人配置
"channels": {
"dingworker": [
1
],
"yachgroup": [
{
"webhook": "eHhpemFUVTA4b1l3255436W9XNlMvZjVuREVDTmMzZmRGdzBsNTN2UHNndG9GZVJKL1FUNllyWkkzK2x3Nw",
"secret": "333332465465467756"
}
],
"yachworker": [
1
]
}
}
},
],
},
"workflow": { // 告警工作流配置,非必填
"enable": true, // 是否开启工作流配置,非必填,boolean类型,默认false
"reminds": [ // 工作流提醒配置,非必填
{
"mode": "once", // 提醒模式,如果配置了提醒则必填,否则非必填,once-单次提醒;cycle-周期提醒
"status": 1, // 提醒的状态,如果配置了提醒则必填,参见文档枚举类型:https://wiki.zhiyinlou.com/pages/viewpage.action?pageId=50971872
"interval": 10, // 提醒时间,如果配置了提醒则必填,大于0的整数
"reuse_receiver": 1 // 是否复用告警通知人,1-复用;0-不复用,如果配置了提醒则必填
},
{
"mode": "cycle",
"status": 0,
"interval": 30,
"reuse_receiver": 0,
"receiver": { // 提醒通知人,如果选择了不复用,则必填,否则不必填
"alarmgroup": [1, 3], // 告警通知组ID,要求告警通知组与下方channels通知渠道至少填一个
"channels": { // 告警通知渠道,与告警通知组至少填一个
"dinggroup": [ // 钉钉机器人,可以填写多个,单个群最多可以添加6个,建议填写6个
{
"webhook": "1dadee4018526bb63b21d84d6d4e42c96c1e1c4ef218540fdcebf499daef3462", // webhook中的access_token参数的值,必填,字符串
"secret": "SECf5a89f004d59a1d3acc916ed745fc8efaf0ee889d8f09709cba21b07174a8a7b" // 机器人安全配置secret,非必填,建议填写,字符串
}
],
"dingworker": [1], // 钉钉工作通知配置,用户ID列表,非必填
"email": [1], // 邮件通知配置,用户ID列表,非必填
"sms": [1], // 短信通知配置,用户ID列表,非必填,必须在哮天犬配置手机号才可使用
"wechat": [1], // 微信通知配置,用户ID列表,非必填
"phone": [1] // 电话通知配置,用户ID列表,非必填,必须在哮天犬配置手机号才可使用
}
}
}
]
},
"filter": { // 告警过滤配置,非必填
"enable": true, // 是否开启,非必填,boolean类型,默认false
"mode": 1, // 过滤模式:1-白名单;2-黑名单,开启了告警过滤必填
"conditions": [ // 过滤条件,至少配置一个条件
{
"level": 0, // 告警级别,0、1、2、3、9四种值可选,参考枚举数据类型:https://wiki.zhiyinlou.com/pages/viewpage.action?pageId=50971872
"rule": [
{
"field": "ctn.cpu_used", // 字段名称
"operator": "gt", // 条件操作符,参考枚举数据类型:https://wiki.zhiyinlou.com/pages/viewpage.action?pageId=50971872
"threshold": "80" // 阈值
}
]
}
],
"not_match": 1 // 未命中过滤:1-直接入库;0-丢弃告警
},
"upgrade": { // 告警升级配置,非必填
"enable": true, // 是否开启告警升级配置
"strategies": [ // 告警升级策略,至少填写一个
{
"interval": 10, // 几分钟内,单位:分钟
"count": 10, // 达到多少条,单位:条
"level": 1, // 告警级别:升级的告警级别
"reuse_receiver": 1 // 是否复用告警接收人
},
{
"interval": 1,
"count": 10,
"level": 4,
"reuse_receiver": 0, // 是否复用告警接收人
"receiver": {
"alarmgroup": [1, 3], // 告警通知组ID,要求告警通知组与下方channels通知渠道至少填一个
"channels": { // 告警通知渠道,与告警通知组至少填一个
"dinggroup": [ // 钉钉机器人,可以填写多个,单个群最多可以添加6个,建议填写6个
{
"webhook": "1dadee4018526bb63b21d84d6d4e42c96c1e1c4ef218540fdcebf499daef3462", // webhook中的access_token参数的值,必填,字符串
"secret": "SECf5a89f004d59a1d3acc916ed745fc8efaf0ee889d8f09709cba21b07174a8a7b" // 机器人安全配置secret,非必填,建议填写,字符串
}
],
"dingworker": [1], // 钉钉工作通知配置,用户ID列表,非必填
"email": [1], // 邮件通知配置,用户ID列表,非必填
"sms": [1], // 短信通知配置,用户ID列表,非必填,必须在哮天犬配置手机号才可使用
"wechat": [1], // 微信通知配置,用户ID列表,非必填
"phone": [1] // 电话通知配置,用户ID列表,非必填,必须在哮天犬配置手机号才可使用
}
}
}
]
},
"compress": { // 选填,不填写不开启告警收敛
"enable": true,
"method": 1, // 收敛指标(收敛方式):1-条件收敛;2-智能收敛;3-全量收敛
"conditions": [
{
"rule": [
{
"field": "ctn.cpu_used", // 字段名称
"operator": "gt", // 条件操作符,参考枚举数据类型:https://wiki.zhiyinlou.com/pages/viewpage.action?pageId=50971872
"threshold": "80" // 阈值
}
]
}
],
"strategy": 3, // 收敛策略:1-周期收敛;2-延迟收敛;3-周期次数收敛
"strategy_cycle": 10, // 周期时间,单位:min
"strategy_count": 50, // 周期条数:单位:条
"not_match": 1 // 1-直接发送;0-丢弃告警
},
"recovery": { // 告警自动恢复,非必填
"enable": true,
"mode": 1, // 过滤方式:1-条件恢复;2-延迟恢复
"conditions": [ // 条件恢复才有该字段
{
"rule": [
{
"field": "ctn.cpu_used", // 字段名称
"operator": "gt", // 条件操作符,参考枚举数据类型:https://wiki.zhiyinlou.com/pages/viewpage.action?pageId=50971872
"threshold": "80" // 阈值
}
]
}
],
"delay_interval": 10 // 延迟恢复时间,延迟恢复才有
},
"template": { // 选填,不填写为系统默认模板
"template_id": "@integer(1, 999999)",
"udf": { // 仅template_id才有该数据,User Defined - 自定义
"compressed": {
"dinggroup": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"dingworker": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"email": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"sms": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"wechat": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"phone": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"yachgroup": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"yachworker": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
},
"not_compress": {
// 同上
},
"upgrade": {
// 同上
},
"recovery": {
// 同上
}
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
Response:
{
"code": 0,
"msg": "success",
"data": {
"task": {
"id": 402,
"name": "another测试2212",
"token": "a118971afebf95fee84d2599f0e521b8f24f3885",
"secret": "7d00c3d896118bcb3ee390b2426aab7511872362",
"department_id": 1,
"status": 1,
"created_by": 2,
"created_at": 1595923897,
"department": {
"id": 1,
"name": "部门"
},
"creator": {
"uid": 2,
"username": "another",
"email": "another@foo.bar",
"department": "部门"
}
},
"nullPhoneUsers": []
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 告警任务部分更新-/alarmtask/updatefields
PUT /alarmtask/updatefields
Request Headers:
- Content-Type: application/json
Request Parameters:
无
Request Body:
点击查看请求参数
{
// 只更新过滤的字段,id, timestamp, sign, filter_fields必填,其他字段根据filter_fileds的条件要求是否必填
"filter_fields": ["name", "template.udf.compressed", "receiver.channels.dingworker"],
"id": 105, // 告警任务ID
"timestamp": "1584671913", // 用于鉴权的时间戳
"sign": "6e673c6de3a0ed4a9257d4ea4d907fea", // 用于鉴权的签名
"name": "日志中心", // 告警任务名称,根据filter_fields要求,字符串,100字以内
"department_id": 8, // 部门ID,根据filter_fields要求,数字
"flag_save_db": 1, // 是否入库存储,根据filter_fields要求,枚举,0-不入库;1-入库
"permission": { // 权限列表,非必填
"rw": [1, 999999], // 读写权限用户列表,非必填,用户ID列表,用户ID为工号不带0
"ro": [1] // 只读权限用户列表,非必填(读写权限包含读,没必要重复添加,文档仅示例数据格式
},
"receiver": { // 告警通知人,必填
"alarmgroup": [1, 3], // 告警通知组ID,要求告警通知组与下方channels通知渠道至少填一个
"channels": { // 告警通知渠道,与告警通知组至少填一个
"dinggroup": [ // 钉钉机器人,可以填写多个,单个群最多可以添加6个,建议填写6个
{
"webhook": "1dadee4018526bb63b21d84d6d4e42c96c1e1c4ef218540fdcebf499daef3462", // webhook中的access_token参数的值,必填,字符串
"secret": "SECf5a89f004d59a1d3acc916ed745fc8efaf0ee889d8f09709cba21b07174a8a7b" // 机器人安全配置secret,必填,建议填写,字符串
}
],
"dingworker": [1], // 钉钉工作通知配置,用户ID列表,非必填
"yachgroup": [ // YACH机器人,可以填写多个,单个群最多可以添加6个,建议填写6个
{
"webhook": "1dadee4018526bb63b21d84d6d4e42c96c1e1c4ef218540fdcebf499daef3462", // webhook中的access_token参数的值,必填,字符串
"secret": "SECf5a89f004d59a1d3acc916ed745fc8efaf0ee889d8f09709cba21b07174a8a7b" // 机器人安全配置secret,必填,建议填写,字符串
}
],
"yachworker": [1], // YACH工作通知配置,用户ID列表,非必填
"email": [1], // 邮件通知配置,用户ID列表,非必填
"sms": [1], // 短信通知配置,用户ID列表,非必填,必须在哮天犬配置手机号才可使用
"wechat": [1], // 微信通知配置,用户ID列表,非必填
"phone": [1], // 电话通知配置,用户ID列表,非必填,必须在哮天犬配置手机号才可使用
"webhook": "http://www.baidu.com", // Webhook通知,必须为有效的URL地址,非必填
},
"dispatch": [ // 分级告警配置,选填
{
"conditions": [
{
"rule": [
{
"field": "sd",
"operator": "eq",
"threshold": "ddd"
}
]
},
{
"rule": [
{
"field": "sdfd",
"operator": "gt",
"threshold": "e"
}
]
}
],
"receiver": { // 同通知人配置
"channels": {
"dingworker": [
1
],
"yachgroup": [
{
"webhook": "eHhpemFUVTA4b1l3255436W9XNlMvZjVuREVDTmMzZmRGdzBsNTN2UHNndG9GZVJKL1FUNllyWkkzK2x3Nw",
"secret": "333332465465467756"
}
],
"yachworker": [
1
]
}
}
},
],
},
"workflow": { // 告警工作流配置,非必填
"enable": true, // 是否开启工作流配置,非必填,boolean类型,默认false
"reminds": [ // 工作流提醒配置,非必填
{
"mode": "once", // 提醒模式,如果配置了提醒则必填,否则非必填,once-单次提醒;cycle-周期提醒
"status": 1, // 提醒的状态,如果配置了提醒则必填,参见文档枚举类型:https://wiki.zhiyinlou.com/pages/viewpage.action?pageId=50971872
"interval": 10, // 提醒时间,如果配置了提醒则必填,大于0的整数
"reuse_receiver": 1 // 是否复用告警通知人,1-复用;0-不复用,如果配置了提醒则必填
},
{
"mode": "cycle",
"status": 0,
"interval": 30,
"reuse_receiver": 0,
"receiver": { // 提醒通知人,如果选择了不复用,则必填,否则不必填
"alarmgroup": [1, 3], // 告警通知组ID,要求告警通知组与下方channels通知渠道至少填一个
"channels": { // 告警通知渠道,与告警通知组至少填一个
"dinggroup": [ // 钉钉机器人,可以填写多个,单个群最多可以添加6个,建议填写6个
{
"webhook": "1dadee4018526bb63b21d84d6d4e42c96c1e1c4ef218540fdcebf499daef3462", // webhook中的access_token参数的值,必填,字符串
"secret": "SECf5a89f004d59a1d3acc916ed745fc8efaf0ee889d8f09709cba21b07174a8a7b" // 机器人安全配置secret,非必填,建议填写,字符串
}
],
"dingworker": [1], // 钉钉工作通知配置,用户ID列表,非必填
"email": [1], // 邮件通知配置,用户ID列表,非必填
"sms": [1], // 短信通知配置,用户ID列表,非必填,必须在哮天犬配置手机号才可使用
"wechat": [1], // 微信通知配置,用户ID列表,非必填
"phone": [1] // 电话通知配置,用户ID列表,非必填,必须在哮天犬配置手机号才可使用
}
}
}
]
},
"filter": { // 告警过滤配置,非必填
"enable": true, // 是否开启,非必填,boolean类型,默认false
"mode": 1, // 过滤模式:1-白名单;2-黑名单,开启了告警过滤必填
"conditions": [ // 过滤条件,至少配置一个条件
{
"level": 0, // 告警级别,0、1、2、3、9四种值可选,参考枚举数据类型:https://wiki.zhiyinlou.com/pages/viewpage.action?pageId=50971872
"rule": [
{
"field": "ctn.cpu_used", // 字段名称
"operator": "gt", // 条件操作符,参考枚举数据类型:https://wiki.zhiyinlou.com/pages/viewpage.action?pageId=50971872
"threshold": "80" // 阈值
}
]
}
],
"not_match": 1 // 未命中过滤:1-直接入库;0-丢弃告警
},
"upgrade": { // 告警升级配置,非必填
"enable": true, // 是否开启告警升级配置
"strategies": [ // 告警升级策略,至少填写一个
{
"interval": 10, // 几分钟内,单位:分钟
"count": 10, // 达到多少条,单位:条
"level": 1, // 告警级别:升级的告警级别
"reuse_receiver": 1 // 是否复用告警接收人
},
{
"interval": 1,
"count": 10,
"level": 4,
"reuse_receiver": 0, // 是否复用告警接收人
"receiver": {
"alarmgroup": [1, 3], // 告警通知组ID,要求告警通知组与下方channels通知渠道至少填一个
"channels": { // 告警通知渠道,与告警通知组至少填一个
"dinggroup": [ // 钉钉机器人,可以填写多个,单个群最多可以添加6个,建议填写6个
{
"webhook": "1dadee4018526bb63b21d84d6d4e42c96c1e1c4ef218540fdcebf499daef3462", // webhook中的access_token参数的值,必填,字符串
"secret": "SECf5a89f004d59a1d3acc916ed745fc8efaf0ee889d8f09709cba21b07174a8a7b" // 机器人安全配置secret,非必填,建议填写,字符串
}
],
"dingworker": [1], // 钉钉工作通知配置,用户ID列表,非必填
"email": [1], // 邮件通知配置,用户ID列表,非必填
"sms": [1], // 短信通知配置,用户ID列表,非必填,必须在哮天犬配置手机号才可使用
"wechat": [1], // 微信通知配置,用户ID列表,非必填
"phone": [1] // 电话通知配置,用户ID列表,非必填,必须在哮天犬配置手机号才可使用
}
}
}
]
},
"compress": { // 选填,不填写不开启告警收敛
"enable": true,
"method": 1, // 收敛指标(收敛方式):1-条件收敛;2-智能收敛;3-全量收敛
"conditions": [
{
"rule": [
{
"field": "ctn.cpu_used", // 字段名称
"operator": "gt", // 条件操作符,参考枚举数据类型:https://wiki.zhiyinlou.com/pages/viewpage.action?pageId=50971872
"threshold": "80" // 阈值
}
]
}
],
"strategy": 3, // 收敛策略:1-周期收敛;2-延迟收敛;3-周期次数收敛
"strategy_cycle": 10, // 周期时间,单位:min
"strategy_count": 50, // 周期条数:单位:条
"not_match": 1 // 1-直接发送;0-丢弃告警
},
"recovery": { // 告警自动恢复,非必填
"enable": true,
"mode": 1, // 过滤方式:1-条件恢复;2-延迟恢复
"conditions": [ // 条件恢复才有该字段
{
"rule": [
{
"field": "ctn.cpu_used", // 字段名称
"operator": "gt", // 条件操作符,参考枚举数据类型:https://wiki.zhiyinlou.com/pages/viewpage.action?pageId=50971872
"threshold": "80" // 阈值
}
]
}
],
"delay_interval": 10 // 延迟恢复时间,延迟恢复才有
},
"template": { // 选填,不填写为系统默认模板
"template_id": "@integer(1, 999999)",
"udf": { // 仅template_id才有该数据,User Defined - 自定义
"compressed": {
"dinggroup": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"dingworker": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"email": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"sms": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"wechat": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"phone": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"yachgroup": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
"yachworker": {
"format": 1, // 模板类型:1-TEXT;2-MARKDOWN;3-HTML;4-ActionCard
"template": "模板内容", // 模板内容,仅需要时填写,全部非必填
},
},
"not_compress": {
// 同上
},
"upgrade": {
// 同上
},
"recovery": {
// 同上
}
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
Response
{
"code": 0,
"msg": "success",
"data": {
"task": {
"id": 402,
"name": "anotherhahahha",
"token": "a118971afebf95fee84d2599f0e521b8f24f3885",
"secret": "7d00c3d896118bcb3ee390b2426aab7511872362",
"department_id": 1,
"status": 1,
"created_by": 2,
"created_at": 1595923897,
"department": {
"id": 1,
"name": "部门"
},
"creator": {
"uid": 2,
"username": "another",
"email": "another@foo.bar",
"department": "部门"
}
},
"nullPhoneUsers": []
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 告警任务删除-/alarmtask
DELETE /alarmtask
Request Headers:
- Content-Type: application/x-www-form-urlencoded
Request Parameters:
参数名称 | 是否必须 | 示例 | 备注 |
---|---|---|---|
id | 是 | 1 | 告警任务ID |
timestamp | 是 | 1595926163 | 鉴权 Unix 时间戳 |
sign | 是 | a5b24a99c2b008d148bb9c8dd0d9bc37 | 鉴权签名 |
Request Body:
无
Response:
{
"code": 0,
"msg": "success",
"data": {
"id": 403
}
}
2
3
4
5
6
7
# 告警任务停止-/alarmtask/stop
PUT /alarmtask/stop
Request Headers:
- Content-Type: application/json
Request Parameters:
无
Request Body:
{
"id": 104, // 任务ID
"timestamp": "1584672789", // 鉴权时间戳
"sign": "415ccad4c8d33f2e4f158ec37e230223" // 鉴权签名
}
2
3
4
5
Response:
{
"code": 0,
"msg": "success",
"data": {
"id": 104
}
}
2
3
4
5
6
7
# 告警任务开启- /alarmtask/start
PUT /alarmtask/start
Request Headers:
- Content-Type: application/json
Request Parameters:
无
Request Body:
{
"id": 104, // 任务ID
"timestamp": "1584672789", // 鉴权时间戳
"sign": "415ccad4c8d33f2e4f158ec37e230223" // 鉴权签名
}
2
3
4
5
Response:
{
"code": 0,
"msg": "success",
"data": {
"id": 104
}
}
2
3
4
5
6
7
# 告警任务挂起-/alarmtask/pause
PUT /alarmtask/pause
Request Headers:
- Content-Type: application/json
Request Parameters:
无
Request Body:
{
"id": 104, // 任务ID
"timestamp": "1584672789", // 鉴权时间戳
"sign": "415ccad4c8d33f2e4f158ec37e230223", // 鉴权签名
"time": 10 // 暂停的时间,单位:分钟
}
2
3
4
5
6
Response:
{
"code": 0,
"msg": "success",
"data": {
"id": 104,
"time": 10
}
}
2
3
4
5
6
7
8
# 工作流详情-/workflow/show
GET /workflow/show
Request Headers:
- Content-Type: application/json
Request Parameters:
参数名称 | 是否必须 | 示例 | 备注 |
---|---|---|---|
id | 是 | 1 | 工作流ID |
Request Body:
无
Response:
{
"code": 0,
"msg": "success",
"data": {
"workflow": { // 工作流信息
"id": 402, // 工作流ID
"task_id": 141, // 告警任务ID
// 告警收敛指标
"metric": "6d00f7400f67792f5122e099ee2401765b444683",
"history_id": 100596, // 告警记录ID
"status": 0, // 状态:0-待处理;1-处理中;2-处理完成;9-关闭
"created_at": 1589524980, // 创建时间
"updated_at": 1589524980, // 更新时间
"pipelines": [ // 流程记录
{
"status": 3, // 状态:0-待处理;1-处理中;2-处理完成;3-提醒;4-指派;5-重新激活;9-关闭
"remark": "提醒", // 备注
"props": { // 记录属性
"remind": { // 提醒配置
"interval": 10, // 提醒时间间隔
"status": 0 // 状态:0-待处理;1-处理中;2-处理完成;9-关闭
}
},
"created_by": 0, // 创建人
"created_at": 1589525584, // 创建时间
"creator": null // 创建人信息,null表示不存在,存在时为Object
}
],
"task": { // 任务信息
"id": 141, // 任务ID
"name": "another-同比环比-mysql数据源测试", // 任务名称
"department_id": 2, // 部门ID
"department": { // 部门信息
"id": 2, // 部门ID
"name": "质量研发部" // 部门名称
}
},
"history": { // 告警记录信息
"id": 100596, // 告警记录ID
"uuid": "34ec840c-fb09-48fc-9cce-5edfd14a8fb7", // 告警记录uuid
"batch": 872381664, // 收敛批次
"metric": "6d00f7400f67792f5122e099ee2401765b444683", // 收敛指标
"notice_time": 1589524980, // 通知时间
"level": 1, // 通知级别
"ctn": "{\"school_id\":\"8.0000\",\"user_id\":65}", // 告警内容,JSON字符串格式
"created_at": 1589524980 // 创建时间
}
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# 工作流认领-/workflow/claim
PUT /workflow/claim
Request Headers:
- Content-Type: application/json
Request Parameters:
无
Request Body:
{
"ids": [89, 22], // 此值是工作流的主键ID,可以批量(ID保持唯一,别重复)
"created_by": 2, // 工作流认领人
"remark": "" // 认领备注 可不填
}
2
3
4
5
Response:
{
"code": 0,
"msg": "success",
"data": {
"workflows": [
{
"id": 22, // 工作流ID
"status": 1 // 状态:0-待处理;1-处理中;2-处理完成;9-关闭
},
{
"id": 89,
"status": 1
}
]
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 工作流指派-/workflow/assign
PUT /workflow/assign
Request Headers:
- Content-Type: application/json
Request Parameters:
无
Request Body:
{
"ids": [1, 2, 3], // 不能重复,必填
"remark": "", // 指派备注 必填
"assignto": [2, 22112], // 被指派人用户ID
"created_by": 2 // 操作人用户ID
}
2
3
4
5
6
Response:
{
"code": 0,
"msg": "success",
"data": {
"workflows": []
}
}
2
3
4
5
6
7
# 工作流处理完成-/workflow/processed
PUT /workflow/processed
Request Headers:
- Content-Type: application/json
Request Parameters:
无
Request Body:
{
"ids": [
89
], // 工作流ID,不可重复
"created_by": 2, // 必填
"remark": "test" // 备注 必填
}
2
3
4
5
6
7
Response:
{
"code": 0,
"msg": "success",
"data": {
"workflows": [
{
"id": 89,
"status": 2
}
]
}
}
2
3
4
5
6
7
8
9
10
11
12
# 工作流重新激活-/workflow/reactive
PUT /workflow/reactive
Request Headers:
- Content-Type: application/json
Request Parameters:
无
Request Body:
{
"ids": [1, 2, 3], // 不能重复,必填
"remark": "", // 备注 必填
"created_by": 2,
}
2
3
4
5
Response:
{
"code": 0,
"msg": "success",
"data": {
"workflows": [
{
"id": 159,
"status": 0
}
]
}
}
2
3
4
5
6
7
8
9
10
11
12
# 工作流关闭-/workflow/close
PUT /workflow/close
Request Headers:
- Content-Type: application/json
Request Parameters:
无
Request Body:
{
"ids": [1, 2, 3], // 不能重复,必填
"remark": "", // 备注 必填
"created_by": 2,
}
2
3
4
5
Response:
{
"code": 0,
"msg": "success",
"data": {
"workflows": [
{
"id": 159,
"status": 9
}
]
}
}
2
3
4
5
6
7
8
9
10
11
12