createLogAlarm
更新时间:2024-09-11
描述
为指定日志集创建告警任务,需要遵循以下准则:
- 每个日志集可以创建多个告警任务
- 查询语句不支持纯检索语句
match ...
, 可以支持查询语句select ...
以及带有检索条件的查询语句match ...| select ...
- 在告警任务中使用检索条件的查询语句时,无需开启索引
- 推送指标需要选择查询语句结果中的某一个字段,可以在查询语句中通过别名调整推送的字段名称
- 不同的告警任务需要绑定不同名称的指标
请求
- 请求语法
POST /v1/alarm HTTP/1.1
Host: bls-log.{region}.baidubce.com
Authorization: authorization string
- 请求头域
除公共请求头域外,无其它特殊头域。
- 请求参数
参数名称 | 类型 | 是否必须 | 参数位置 | 描述 |
---|---|---|---|---|
alarmName | String | yes | body | 告警任务名称,最长80个字符,包含字母、数字、- 和 _ |
project | String | no | body | 日志组名称,默认default |
logStoreName | String | yes | body | 日志集名称 |
alarmConfig | AlarmConfig | yes | body | 告警任务配置 |
AlarmConfig结构:
参数名称 | 类型 | 是否必须 | 参数位置 | 描述 |
---|---|---|---|---|
alarmQuery | String | yes | body | 查询语句 |
alarmTimeRange | Int | yes | body | 查询语句的时间范围,单位为分钟,范围是1-1440 |
frequency | Int | yes | body | 推送指标周期,单位为分钟,范围是1-1440,推荐与查询语句时间范围相同 |
metric | Metric | yes | body | 推送指标信息 |
Metric结构:
参数名称 | 类型 | 是否必须 | 参数位置 | 描述 |
---|---|---|---|---|
metricName | String | yes | body | 推送指标名称,3-50 个字符,包含字母、数字、- 和 _ |
dimensions | LIST[Dimension] | no | body | 维度信息 |
Dimension结构:
参数名称 | 类型 | 是否必须 | 参数位置 | 描述 |
---|---|---|---|---|
name | String | yes | body | 维度名称,最多50个字符,包含字母、数字、- 和 _ |
响应
- 响应头域
除公共响应头域外,无其它特殊头域。
- 响应参数
参数名称 | 类型 | 描述 |
---|---|---|
alarmID | String | 告警任务ID |
错误码
除了通用的错误码,还可能出现如下错误码:
错误码 | 错误消息 | 描述 | HTTP状态码 |
---|---|---|---|
LogStoreNotFound | LogStore [logStoreName] not exists | LogStore 不存在 | 404 |
Invalid request parameter | 指标[metric]要由英文字符,数字,连接符,下划线组成,长度为3-50 | 指标名称不符合规范 | 400 |
注:错误消息中 [logStoreName] 部分会用具体的名称来替换
示例
- 请求示例
POST /v1/alarm HTTP/1.1
Host: bls-log.bj.baidubce.com
Authorization:bce-auth-v1/18717522d39411e9b721df098b0b908c/2019-09-10T07:00:20Z/1800/content-type;host;x-bce-date;x-bce-request-id/6a7cb6c9ac7ec156c805e55e7d0bcfc443b47feee97cf099c1c0d93a0b4c8304
Content-Type: application/json; charset=utf-8
{
"alarmName": "alarm1",
"project": "default",
"logStoreName": "storeAlarm",
"alarmConfig": {
"alarmQuery": "select count(error) as errCount, error group by error",
"alarmTimeRange": 10,
"frequency": 10,
"metric": {
"metricName": "errCount",
"dimensions": [
{
"name": "error"
}
]
}
}
}
- 响应示例
HTTP/1.1 201
Content-Type: application/json; charset=utf-8
{
"alarmID":"alarm-xxxxxxx"
}