运算符 | 说明 | 示例 |
$N.__QUERYCOUNT__ | 执行语句结果条数, N为对应的执行语句编号。针对不同使用场景,其具体含义如下: 日志主题 执行语句不包含 SQL:匹配检索条件的原始日志条数 执行语句包含 SQL:SQL结果条数(注意:SQL 中未指定 limit 时,默认最大返回100条结果) 指标主题:PromQL 查询结果条数 | $1.__QUERYCOUNT__ |
$N.keyname | 引用执行语句的结果, N为对应的执行语句编号,keyname 为执行语句结果中的字段名称。注意: keyname 首字符必须是字母,可以包含字母、数字、下划线,如包含特殊字符:日志主题执行语句中支持使用 AS 语法 对字段名称设置别名 使用方括号整体包裹,例如 [$1.@value]监控对象为指标主题时,除指标维度(label)外,系统预置如下变量: $N.__name__:指标的名称$N.value:指标的值$N.time:指标对应的时间,秒级 UNIX 时间戳指标维度(label)的字段名称如果与上述变量冲突,会在原字段名称前自动添加@符号,例如 [$1.@value] | $1.ErrCount $1.value |
+ | 求和运算符 | $1.ErrCount+$1.FatCount>10 |
- | 减法运算符 | $1.Count-$1.InfoCount>100 |
* | 乘法运算符 | $1.RequestMilSec*1000>10 |
/ | 除法运算符 | $1.RequestSec/1000>0.01 |
% | 取模运算符 | $1.keyA%10==0 |
== | 比较运算符:等于 | $1.ErrCount==100 $1.level=="Error" |
> | 比较运算符:大于 | $1.ErrCount>100 |
< | 比较运算符:小于 | $1.pv<100 |
>= | 比较运算符:大于等于 | $1.ErrCount>=100 |
<= | 比较运算符:小于等于 | $1.pv<=100 |
!= | 比较运算符:不等于 | $1.level!="Info" |
() | 括号,控制运算优先级 | ($1.a+$1.b)/$1.c>100 |
&& | 逻辑运算符:与 | $1.ErrCount>100 && $1.level=="Error" |
|| | 逻辑运算符:或 | $1.ErrCount>100 || $1.level=="Error" |
$1.a值为80,$1.b值为20时:$1.a+$1.b:结果为100,不是布尔值,不触发告警。$1.a+$1.b>=100:结果为“真”,触发告警。$1.key1 引用编号为1的执行语句中的key1字段, $2.key2 引用编号为2的执行语句中的key2字段。$N.__QUERYCOUNT__ > 0即可(请将其中的 N 替换为执行语句编号),详见 示例3。$1.a+$2.b>100,若执行语句1返回 m 条结果,执行语句 2 返回 n 条结果,则会进行 m * n 次计算,计算过程中当结果满足 $1.a+$2.b>100 为真时停止或计算超过1000次停止。超过1000次仍未满足触发条件时,认为本次判断结果为假,不触发告警。level:error
$1.__QUERYCOUNT__>0
uid:10001| select avg(request_time) as latency
$1.latency>10
filesystem_usage_pct > 0.5
$1.__QUERYCOUNT__>0
__QUERYCOUNT__为系统预置变量,表示执行语句的结果条数。执行语句中已经通过> 0.5对指标进行了过滤,所以只要执行语句的结果条数大于 0 就需触发告警。文档反馈