日志服务根据告警条件表达式的执行结果来判断是否产生告警。
限制说明
告警条件表达式相关限制说明如下所示:
基础语法
告警条件表达式支持如下语法类型。
语法类型 | 说明 | 示例 |
---|---|---|
基础运算符 | 支持加减乘除、取模运算符,如下所示:
+-*/% |
|
比较运算符 | 支持大于(>)、大于等于(>=)、小于(<)、小于等于(<=)、等于(==)、不等于(!=)、正则匹配 (=~)、 正则不匹配(!~)8种比较运算符。
|
|
逻辑操作符 | 支持与(&&)、或(||)。 |
|
取反前缀操作 | 支持取反前缀操作(!)。 | !(a 100) |
数值常量 | 支持数值常量,作为64位浮点数处理。 | x > 100 |
字符串常量 | 支持字符串常量,格式为’字符串’,例如’string’。 | foo == ‘string’ |
布尔常量 | 支持布尔常量,true、false。 | (x > 100) == true |
括号 | 支持使用括号改变计算的优先级。 | x * (y + 100) > 100 |
contains函数 | 支持使用contains函数判断是否包含子串,例如contains(foo, ‘hello’)返回true则表示foo中包含hello子串。 | contains(foo, ‘hello’) |
多个结果组合求值
- 语法
支持关联多个查询,在使用多个查询结果进行计算时,变量需要加上特定前缀以区分从哪个结果中获取对应的变量值,格式为$N.fieldname,其中N为查询编号,详情请参见如何查看查询编号。目前最多配置三个查询,则N的取值范围为0~2。如$0.foo表示第1个查询的foo字段。当仅有一个查询时,前缀可以省略。
- 表达式求值
在多个查询结果返回时,根据表达式的变量来判断需要使用哪些结果求值。例如您配置了三个查询,分别返回了x、y、z条结果,告警条件表达式为$0.foo > 100 && $1.bar < 100,则说明判断表达式的值只需要使用前两个结果,进行x*y次求值直到某次求值返回true,或者达到计算次数上限后直接返回false,目前计算次数上限为1000次。
运算方式
说明
- number为64位浮点数类型。
- string常量需要使用单引号或英文双引号进行包裹,例如’string‘、“string”。
- 布尔值包括true和false。
运算符 | 运算方式 | ||
---|---|---|---|
变量与变量运算 | 非string常量与变量运算 | string常量与变量运算 | |
四则运算(+-*/%) | 左右值转number后运算。 | 不支持。 | |
比较运算:
大于(>)、大于等于(>=)、小于(<)、小于等于(<=)、等于(==)、不等于(!=) |
按照以下优先级决定运算顺序:
|
左右值转number后运算(数值序)。 | 左右值按string类型运算(字典序)。 |
正则是否匹配:
正则匹配 (=~)、 正则不匹配(!~) |
左右值按string类型运算。 | 不支持。 | 左右值按string类型运算。 |
逻辑运算:
与(&&)、或(||) |
不支持对查询结果字段直接应用该运算符,左右值必须分别为子运算式,且运算结果为布尔值。 | ||
取反前缀(!) | 不支持对查询结果字段直接应用该运算符,被取反的值必须为子运算式,且运算结果为布尔值。 | ||
字符串查找(contains) | 左右值转string类型运算。 | 不支持。 | 左右值按string类型运算。 |
括号() | 决定运算结合顺序与优先级。 |
示例
- 示例1:如果1天(相对)内任务成功率低于90%且延时超过60秒则产生告警,告警表达式如下图所示。
- 示例2:如果15分钟内状态码500出现10次则产生告警,告警表达式如下图所示。
- 示例3:如果1小时内加工速率低于1000条则产生告警,告警表示式如下图所示。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/163980.html