本文介绍使用评估表达式设置触发条件的注意事项、限制等信息。

日志服务支持您在配置触发告警的条件时使用评估表达式。例如您配置触发条件有数据匹配和评估表达式,则表示查询和分析结果中存在数据满足评估表达式就触发告警。您可以在评估表达式使用动态变量、操作符和逻辑符等。评估表达式的语法信息,请参见评估表达式语法

变量说明

说明 评估查询和分析结果是对集合操作(例如笛卡尔积、左联等)后的最终集合结果进行评估。
  • 如果多个查询和分析结果中不含重复字段,则在评估表达式中引用字段时,可以不加$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

    示例