腾讯云 CLS 查询 (商业版)
从实际使用场景出发,介绍夜莺腾讯云 CLS 日志告警:用 CLS 检索分析语法统计日志、提取值判阈值,以及多语句联合判定与成本控制。
[PLUS] 腾讯云 CLS 作为告警数据源是夜莺企业版(PLUS)独有功能。
概述
腾讯云 CLS 日志告警用 CLS 的检索分析语法查询日志、提取统计值(ValueKey),再判阈值。查询语法和你在 CLS 控制台里用的完全一致,区别只是告警查询是周期性执行的。
| 字段 | 必填 | 说明 |
|---|---|---|
| 数据源类型 / 数据源 | 是 | 选 CLS(log)类型并选中已接入的 CLS 数据源 |
| 查询分析语句 | 是 | CLS 检索 + SQL 分析语句,结果的某列作为提取值 |
| 提取值(ValueKey) | 是 | 取哪一列作为 $A 参与告警判定 |
| 告警条件 | 是 | 基于提取值判阈值,如 $A > 10 && $A < 15 |
| 执行频率 | 是 | 多久跑一次查询,建议 ≥ 1 分钟 |
下面按实际使用场景介绍。
场景一:单语句统计判阈值
「查询代理日志中状态码 200 和 301 的数量,结果在 10~15 之间告警」:
status:200 OR status:301 | SELECT status AS status, count(*) AS count GROUP BY status
提取值取 count,告警条件用 $A > 10 && $A < 15。
场景二:多语句联合判定
要对不同指标分别判定,填两条查询分析语句,分别用 $A、$B 取值比较。「status:200 的量 > 100 且 status:301 的量 > 1 才告警」,写两条查询后:
$A > 100 && $B > 1
和 PromQL 一样,如果两条语句返回的数据标签不一致,会被视为两条不同的曲线,无法直接比较运算。
常见问题
Q1:CLS 告警查询和控制台直接搜有什么差异?
A:查询语法一致(同一套 CLS 检索 + SQL 分析)。差别在告警查询是周期性执行的,注意 CLS 高频查询有 API 配额限制,且返回数据量大会影响性能——评估好执行频率、用 LIMIT 控返回行数。
Q2:告警阈值怎么基于 CLS 查询写?
A:日志条数用 SELECT count(*) 后 $A > 100;错误率用 SELECT count_if(level='ERROR') / count(*) AS err_ratio 后 $A.err_ratio > 0.05。
Q3:能跨多个 Logset / Topic 查询吗?
A:单个数据源指向一个 Logset。跨 Logset 需要建多个数据源,在告警里分别配查询;或把多个 Logset 的数据投递到同一个用作聚合分析。
Q4:查询的网络成本怎么控?
A:n9e 在腾讯云内网时,CLS 数据源用内网域名(*.tencentcs.com);查询时间范围用相对短的窗口,别全表扫;执行频率从默认调到 1–3 分钟(紧急告警除外)。