核心概念
1. 阈值判定模式
此模式适用于需要对聚合后的数值进行阈值比对的场景。配置方式
- 查询语句:编写 SLS SQL 聚合查询。
- 示例:统计最近 15 分钟内,各主机的错误日志数量。
- 查询参数:
sls.project:(必填)项目名称。sls.logstore:(必填)日志库名称。sls.timespan.value:(选填)时间跨度数值,默认为 15。sls.timespan.unit:(选填)时间跨度单位,支持s(秒)、m(分)、h(时)、d(天)。默认为m。
- 字段映射:
- 标签字段:用于区分不同告警对象的字段。上例中为
host。该字段可以留空,Monitors 会自动把除了值字段外的所有字段都作为标签字段。 - 值字段:用于阈值判定的数值字段。上例中为
error_cnt。
- 阈值条件:
- 使用
$A.field_name引用数值。 - 示例:
Critical: $A.error_cnt > 50,Warning: $A.error_cnt > 10。
工作原理
引擎调用 SLS API,指定时间范围(如最近 15 分钟),执行 SQL 查询。获取结果后,根据”标签字段”分组,提取”值字段”与阈值比对。恢复逻辑
2. 数据存在模式
此模式适用于将过滤逻辑直接写在 SQL 中的场景。配置方式
- 查询语句:使用
HAVING子句过滤异常数据。
- 示例:查询错误数超过 50 的主机。
- 查询参数:同上,需配置
sls.project和sls.logstore。 - 判定规则:只要查询返回了数据,即触发告警。
优缺点分析
恢复逻辑
- 数据消失即恢复:当查询结果为空时,判定恢复
- 恢复查询:支持配置额外的查询语句
3. 数据缺失模式
此模式用于监控”预期应该有数据,但实际没有数据”的场景。配置方式
- 查询语句:编写一个预期应该持续返回数据的查询。
- 示例:查询所有主机的日志上报心跳。
- 判定规则:如果某个
host在之前的周期中出现过,但在当前及连续 N 个周期中查不到数据,则触发”数据缺失”告警。
4. 高级配置
Power SQL
Power SQL
如果需要使用 SLS 的增强 SQL 语法,在查询参数中添加:
sls.powersql: true时间范围控制
时间范围控制
默认查询最近 15 分钟的数据。可通过参数调整:
调试参数
调试参数
仅用于调试,不要配置在生产规则中: