阿里云 SLS 查询 (商业版)

夜莺( Nightingale )阿里云 SLS 日志告警规则

在告警规则—> 选择 log 数据源 —> 配置查询语句和提取值 ValueKey —> 选择简单模式设置指定时间内 ValueKey 的阈值即可。

sls001

配置场景一:查询代理日志中状态码为404和405的日志数量,如果查询结果大于0且不等于3个报警。

查询语句 status:404 OR status:405 | SELECT status AS status,count(*) AS count GROUP BY status,这里是以查询值结果进行条件判断,所以在条件判断时使用了$A > 0$A !=3

sls002

配置场景二:配置不同的指标进行结果判断,status:404值大于100且status:405值大于1触发报警。

为了实现不同的语句值联合判断,需要填写两个不同的查询分析语句,将值取出进行判断,判断条件分别使用提取值 $A 和 $B 进行比较运算。

注意:与PromQL一样,如果数据标签不一致查询分析语句会被视为两条不同的曲线,无法进行比较运算。

sls003

常见问题

Q1:SLS 告警查询返回的字段映射?

A:和 MySQL 告警 类似 — “值字段"和"标签字段"由你配置:

  • 值字段选 SQL 返回结果的某列(如 count) → 表达式用 $A.count
  • 标签字段选其他列 → 注入告警事件标签。

Q2:SLS SQL 语法和标准 SQL 有差异吗?

A:SLS 增强 SQL 支持时序函数、统计函数、JSON 解析等扩展。常见:

  • time_series(...) — 时序填充;
  • numeric_histogram(...) — 数值分桶统计;
  • histogram(...) — 文本类型统计。

详见 SLS 查询分析

Q3:告警执行频率 vs 查询性能怎么平衡?

A:

  • SLS 单查询不便宜,每条告警规则的"执行频率"建议 ≥ 1 分钟;
  • 时间范围用相对短的(@now - 5m to @now);
  • 复杂聚合查询尽量在 SLS 端做完,n9e 表达式只判定布尔。

Q4:能不能用 SLS 的 ScheduledSQL 替代 n9e 告警?

A:取决于场景。SLS ScheduledSQL 适合纯 SLS 内部聚合 + 数据回写。n9e 告警查询的优势在于联动告警治理体系(屏蔽 / 订阅 / 工作流 / 通知)。建议日常告警用 n9e,归档统计用 ScheduledSQL。

参考资料

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云