创建报警策略CreateAlarmPolicy
更新时间:2025-09-04
描述
创建报警策略,当符合报警条件时发送报警通知。
请求
- 请求语法
Text
1POST /v1/alarm/policy HTTP/1.1
2Host: <Endpoint>
3Authorization: <Authorization String>
4Content-Type: application/json; charset=utf-8
5
6{
7 "name": <PolicyName>,
8}
- 请求头域
除公共请求头域外,无其它特殊头域。
- 请求参数
参数名称 | 类型 | 是否必须 | 参数位置 | 描述 |
---|---|---|---|---|
name | String | Yes | RequestBody | 报警策略名称,不能重复 |
objects | List<LogStore> | No | RequestBody | 监控对象列表,当所有日志集共享目标日志集时,填写该字段 |
targets | List<Target> | Yes | RequestBody | 执行语句列表 |
triggerConditions | List<TriggerCondition> | Yes | RequestBody | 触发条件列表 |
groups | List<String> | No | RequestBody | 分组触发 |
schedule | Schedule | Yes | RequestBody | 执行周期 |
pendingCount | Int | Yes | RequestBody | 连续触发阈值,连续多少次触发阈值则报警 |
repeatIntervalMinute | Int | No | RequestBody | 重复报警间隔,单位:分钟,默认值:0,表示关闭重复报警 |
recoverWithoutNotice | Bool | No | RequestBody | 恢复后是否通知 true:不通知, false:通知, 默认值为false |
state | String | No | RequestBody | 策略启用状态,ENABLED: 已启用, DISABLED: 已禁用 |
noticeState | String | No | RequestBody | 下通知启用状态,ENABLED: 已启用, DISABLED: 已禁用 |
notices | List<Notice> | Yes | RequestBody | 报警通知模板,参考:BCM通知模板接口 |
noticeRawLogs | List<NoticeRawLog> | No | RequestBody | 是否在报警通知中添加原始日志 |
其中,objects数组中的每个LogStore元素结果如下:
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
project | String | No | 日志集项目,默认default |
logStoreName | String | Yes | 日志集名称 |
targets数组中的每个Target元素结构如下:
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
query | String | Yes | 执行语句 |
startTimeOffsetMinute | Int | Yes | 查询开始时间偏移量,取值范围: [-1440, 0) |
endTimeOffsetMinute | Int | Yes | 取值范围: (startTimeOffsetMinute, 0] |
object | LogStore | No | 当每个执行语句单独指定日志集时,填写该字段 |
triggerConditions数组中的每个TriggerCondition元素结构如下:
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
level | String | Yes | 报警等级,必填,可选项:INFO, WARN, CRITICAL |
condition | String | Yes | 触发条件表达式 |
Schedule元素结构如下:
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
intervalMinute | Int | No | 固定间隔,单位:分钟,取值范围[1, 1440] |
fixTimeMinute | Int | No | 指定时刻,一天中的第几分钟,取值范围[0, 1440) |
dayOfWeek | Int | No | 固定时间频率; 0: 每天,1~7 一周的某天 |
Notice元素结构如下:
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
id | String | Yes | bcm报警模板id |
NoticeRawLog元素结构如下:
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
type | String | Yes | 配置类型, REF: 关联执行语句, CUSTOM: 自定义检索语句 |
refTarget | String | No | 若type=REF,表示引用的执行语句序号,从0开始计数 |
customTarget | Target | No | 若type=CUSTOM,填写自定义执行语句 |
columns | List<String> | No | 在原始日志中展示的字段名列表,若未填写,表示展示所有字段 |
limit | Int | Yes | 展示的日志条数,最大值为5 |
响应
- 响应头域
除公共响应头域外,无其它特殊头域。
- 响应参数
字段 | 类型 | 描述 |
---|---|---|
success | Boolean | 请求是否成功 |
code | String | 请求码,成功为OK,错误为具体的错误码 |
message | String | 请求成功为空,失败为具体的错误信息 |
错误码
除了通用的错误码,还可能出现如下错误码:
错误码 | 错误消息 | 描述 | HTTP状态码 |
---|---|---|---|
InvalidParameter | Request param invalid: [msg] | 无效的参数异常 | 400 |
示例
- 请求示例
Text
1POST /v1/alarm/policy HTTP/1.1
2Host: bls-log.bj.baidubce.com
3Authorization:bce-auth-v1/18717522d39411e9b721df098b0b908c/2019-09-10T07:00:20Z/1800/content-type;host;x-bce-date;x-bce-request-id/6a7cb6c9ac7ec156c805e55e7d0bcfc443b47feee97cf099c1c0d93a0b4c8304
4Content-Type: application/json; charset=utf-8
5{
6 // 报警策略名称,同user下唯一,必填
7 "name": "policy-name",
8
9 // 监控对象列表,选填,当所有日志集共享目标日志集时,填写该字段
10 "objects": [
11 {
12 "project": "default", // 日志集项目,默认
13 "logStoreName": "test-logstore-52" // 日志集名称
14 },
15 ],
16
17 // 执行语句列表,必填
18 "targets": [
19 {
20 // 执行语句,必填
21 "query": "select sum(age) as age",
22 // 查询开始时间偏移量,必填,取值范围: [-1440, 0)
23 "startTimeOffsetMinute": -1440,
24 // 查询结束时间偏移量,必填,取值范围: (startTimeOffsetMinute, 0]
25 "endTimeOffsetMinute": 0,
26
27 // 目标日志集,选填,当每个执行语句单独指定日志集时,填写该字段
28 "object": {
29 "logStoreName": "test-logstore-52" // 日志集名称
30 }
31 }
32 ],
33
34 // 触发条件列表,必填
35 "triggerConditions": [
36 {
37 // 报警等级,必填,可选项:
38 // INFO - 通知,
39 // WARN - 警告
40 // CRITICAL - 严重
41 "level": "WARN",
42
43 // 触发条件表达式,必填
44 "condition": "$1.age > 1"
45 }
46 ],
47
48 // 分组触发,选填
49 "groups": ["$1.age", "$1.salary"],
50
51 // 执行周期,必填,固定间隔和指定时刻有且仅有一个被设置
52 "schedule": {
53 // 固定间隔,单位:分钟,取值范围[1, 1440]
54 "intervalMinute": 1,
55
56 // 指定时刻,一天中的第几分钟,取值范围[0, 1440)
57 "fixTimeMinute": 120, // 示例中,120表示一天中的第120分钟,即凌晨2点整
58 // 固定时间频率; 0: 每天 1~7 一周的某天
59 "dayOfWeek": 0
60 },
61
62 // 连续触发阈值,连续多少次触发阈值则报警,必填
63 "pendingCount": 1,
64
65 // 重复报警间隔,单位:分钟,选填,默认值:0,表示关闭重复报警
66 "repeatIntervalMinute": 5,
67
68 // 恢复后是否通知 true:不通知, false:通知, 默认
69 "recoverWithoutNotice": true,
70
71 // 策略启用状态,可选项:
72 // ENABLED - 已启用
73 // DISABLED - 已禁用
74 "state": "ENABLED",
75
76 // 通知启用状态,可选项:
77 // ENABLED - 已启用
78 // DISABLED - 已禁用
79 "noticeState": "ENABLED",
80
81 // 报警通知模板列表,必填
82 "notices": [
83 {
84 // bcm报警模板id,必填
85 "id": "testNotice"
86 }
87 ],
88
89 // 是否在报警通知中添加原始日志,选填
90 "noticeRawLogs" : [
91 {
92 // 配置类型,必填
93 // REF - 关联执行语句
94 // CUSTOM - 自定义检索语句
95 "type" : "CUSTOM",
96
97 // 若type=REF,必填,表示引用的执行语句序号,从0开始计数
98 "refTarget" : 1,
99
100 // 若type=CUSTOM,填写自定义执行语句
101 "customTarget": {
102 // 执行语句,必填
103 "query": "select sum(age) as age",
104 // 查询开始时间偏移量,必填,取值范围: [-1440, 0)
105 "startTimeOffsetMinute": -1440,
106 // 查询结束时间偏移量,必填,取值范围: (startTimeOffsetMinute, 0]
107 "endTimeOffsetMinute": 0,
108
109 // 目标日志集,选填,当每个执行语句单独指定日志集时,填写该字段
110 "object": {
111 "logStoreName": "test-logstore-52" // 日志集名称
112 }
113 }
114
115 // 在原始日志中展示的字段名列表,选填,若未填写,表示展示所有字段
116 "columns": ["requestid", "status"],
117
118 // 展示的日志条数,最大值为5,必填
119 "limit" : 4,
120 }
121 ]
122}
- 响应示例
Text
1HTTP/1.1 201
2Content-Type: application/json; charset=utf-8
3X-Bce-Request-Id: 2eeba101-4cc7-4cfe-b5ac-a3be8d060e33
4Date: Fri, 10 Apr 2020 04:42:37 GMT
5{
6 "success": true,
7 "code": "OK",
8 "message": ""
9}