本文介绍使用评估表达式设置触发条件的注意事项、限制等信息。
日志服务支持您在配置触发告警的条件时使用评估表达式。例如您配置触发条件为有数据匹配和评估表达式,则表示查询和分析结果中存在数据满足评估表达式就触发告警。您可以在评估表达式使用动态变量、操作符和逻辑符等。评估表达式的语法信息,请参见评估表达式语法。
变量说明
- 如果多个查询和分析结果中不含重复字段,则在评估表达式中引用字段时,可以不加$0、$1、$2等前缀。例如
name == 'sls'
。 - 如果多个查询和分析结果中含重复字段,则在评估表达式中引用字段时,必须加$0、$1、$2等前缀。例如
$0.name == 'sls' || $1.name == 'ecs'
。更多信息,请参见多集合操作机制。
类别 | 子类 | 说明 |
---|---|---|
日志 | 无SELECT语句 | 仅使用查询语句进行查询操作。
设置触发条件表达式时可引用查询结果中的字段。 |
使用SELECT * FROM log | 设置触发条件表达式时可引用所有已开启统计功能的字段。 | |
使用SELECT子查询(包含SELECT * FROM (SELECT...)) | 设置触发条件表达式时可引用SELECT子查询中的字段。 | |
时序数据 | 使用SELECT promql(...) | 通过promql_query(string)、promql_query_range(string, string)函数返回固定字段metric、labels、time和value。其中日志服务会将labels字段按照Map格式展开。
设置触发条件表达式时可引用metric、labels、time、value字段以及labels字段中的子字段。 |
使用SELECT a, b FROM (SELECT promql(...)) | 设置触发条件表达式时可引用所有已开启统计功能的字段。 | |
使用SELECT * FROM log | 设置触发条件表达式时可引用所有已开启统计功能的字段。 | |
资源数据 | 无 | 资源数据中的字段只支持简单类型(例如字符串,浮点数,数字),不支持复杂类型(例如JSON)。
设置触发条件表达式时可引用资源数据中的字段ID。 |
配置示例
- 示例1:如果1天(相对)内任务成功率低于90%且延时超过60秒则触发告警。
设置触发条件为有数据匹配,success < 90 && delay > 60。
- 示例2:如果15分钟内出现500错误10次则触发告警。
设置触发条件为有数据匹配,status == 500 && total > 10。