SLS新版告警入门-触发条件设置-阿里云开发者社区

开发者社区> 阿里云存储服务> 正文
登录阅读全文

SLS新版告警入门-触发条件设置

简介: 告警监控规则根据评估表达式的执行结果来判断是否满足触发告警条件,以及评估动态告警严重度。您查询语句的执行结果将作为输入,集合操作结果的字段作为变量,当评估表达式条件为真且符合连续触发阈值配置时,则触发告警。
(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅998元/3年,立即抢购>>>:9i0i.cn/aliyun

福利推荐:阿里云、腾讯云、华为云等大品牌云产品全线2折优惠活动来袭,4核8G云服务器899元/3年,新老用户共享优惠,点击这里立即抢购>>>

告警监控规则根据评估表达式的执行结果来判断是否满足触发告警条件,以及评估动态告警严重度。您查询语句的执行结果将作为输入,集合操作结果的字段作为变量,当评估表达式条件为真且符合连续触发阈值配置时,则触发告警。


本文主要介绍下触发的条件用法,主要包含以下内容:

  • 触发条件在告警监控的位置
  • 如何理解监控目标
  • 评估表达式的基本介绍
  • 触发条件的设置

在监控中配置触发条件

image.png


SLS告警是通过定时调度的机制,来监控SLS中日志,时序和Tracing的数据;如果满足设定的触发条件则会生成一条或多条告警(分组情况下),后续的告警管理会对告警进行降噪处理,然后通过行动策略发送给通知渠道或者Webhook。

接下来将对告警监控流程中的触发条件的使用方法来进行介绍。

理解监控目标

这里的监控目标包含日志,时序,资源数据;在告警配置中的具体表现是,通过设定1个到3个查询(使用SLS查询分析)得到对应的中间查询结果,如下图(指定了3个查询,会有3个对应的中间查询结果);然后通过集合操作得到最终的一个集合操作结果(一般设置为1个查询,1个查询的结果就是集合操作结果)。这里的集合操作结果就是监控目标

image.png

最终的监控目标(集合操作结果)可以当做一个表格来看待; 如下表示集合操作结果有2列,4条数据。接下来这张集合操作结果将作为例子来演示触发条件的用法。

image.png

评估表达式语法

SLS告警监控中的表达式,主要支持基础运算符(包括加减乘除模等),比较运算符,逻辑运算符和一些数值,字符串,布尔常量等,具体语法可以参考评估表达式语法。比如可以设置pv > 40作为评估表达式(注意不能只写单个变量作为表达式,比如只写pv,不是一个合法的评估表达式),下面是一些基本的语法

image.png

触发条件

触发条件是指SLS告警监控在评估时,如果集合操作结果满足设置的触发条件,就表示评估通过,会生成一条告警(触发阈值后面会有文章详细介绍)。

假如把上述的pv > 40作为触发条件是否可以呢?答案是否定的,上述集合操作结果有4条数据,其中2条满足pv > 40,这种情况下要不要触发告警,其实是信息量是不够的,到底是1条满足就告警呢,还是N条满足才告警呢?所以新版告警中我们增加了对满足评估表达式的结果条数的设置,这样可以更精细的控制触发条件。触发条件主要分为四种类型:

image.png


  • 有数据:代表集合操作结果有数据,至少有1条结果,就会满足触发条件,比如上述结合查询结果有4条数据,选择“有数据”,是满足触发条件的
  • 有特定条数据:表示对集合操作结果的条数做评估,比如例子中结果有4条,这里可以对结果中的条数进行比较判断,支持的比较运算符有大于,小于,区间判断等,比如例子中有4条数据,这里选 “有特定条数据 > 10 条”是不满足的,因为4 < 10。
  • 有数据匹配:例子中的4条结果中,只要有任意1条数据满足 pv > 1000,就会认为满足触发条件,比如例子中4条数据的pv都小于1000,这里选“有数据匹配 pv > 1000”,是不满足的
  • 有特定条数据匹配:是四种触发条件中最复杂的情况,表示满足评估表达式的条数,满足条数条件才会触发告警;这里有两个角度:
    • 某条数据是否满足评估表达式,比如例子中4条数据第一条不满足 pv > 1000
    • 满足评估表达式的的总条数是多少,比如例子中4条数据满足 pv > 1000的条数是0
    • 所以,如果选择“有特定条数据匹配 > 3 条 pv > 1000”的时候,例子是不满足触发条件的

其中,第四种触发条件的设置是最完整的,第四种触发条件包含数据评估满足评估表达式的据条数评估,在选择触发条件时只能选择上述四种触发条件中的一种,可以根据实际监控需求,配置最简单的触发条件。

注意:对于有数据匹配有特定条数据匹配都需要配置评估表达式。

典型场景

在配置告警监控中,经常会有一种需求,如果日志中出现了error,就告警;或者error在1分钟内出现5次就告警;配置经常使用类似如下查询语句

image.png

集合操作结果(对于只有一个查询的配置,查询结果就是集合操作结果)示例如下:

image.png

这种情况下应该选择哪种触发条件,因为需求是error出现了5次就告警,经常会误解为需要选特定条数据,应该选特定条数据 > 5 条,这样是错误的;原因如下:

因为查询语句中使用了count(1) as cnt这种聚合查询,查询结果只会有1条数据,数据是cnt:2;所以如果使用有特定条数据 > 5 条来判断,因为结果条数只有1条,永远不会满足条件。

正确的设置应该选择:有数据匹配在评估表达式中填 cnt > 5, 因为结果只有1条数据,这条数据满足cnt > 5,就会触发告警。

总结

上文主要介绍了触发条件在告警监控的用法,主要用在监控评估阶段,用来判断集合操作结果是否需要触发告警;主要包含了数据评估满足评估表达式的据条数评估。

注意

  • 上文中没有涉及分组评估,以上的触发条件的设置都是在分组评估的基础上进行,即集合操作结果会先根据分组字段进行分组,然后对每个分组上的数据,进行触发条件的判断。不分组,默认是一个分组。分组评估参考
  • 该触发条件的配置出来用在监控评估中,还可以用在动态告警严重度的设置上,告警严重度参考

参考

  • 什么是日志服务告警【链接
  • SLS告警监控概述【链接
  • SLS告警评估表达式用法【链接
  • SLS新版告警使用评估表达式设置触发条件【链接

进一步参考

image

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:


http://www.vxiaotou.com