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

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


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

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

在监控中配置触发条件

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


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

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

理解监控目标

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

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

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

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

评估表达式语法

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

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

触发条件

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

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

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


  • 有数据:代表集合操作结果有数据,至少有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次就告警;配置经常使用类似如下查询语句

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

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

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

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

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

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

总结

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

注意

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

参考

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

进一步参考

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


最后,如果您还想了解更多智能运维前沿资讯,欢迎您报名参加【数智创新行·智能运维专场】。

6月25日|上海·西岸国际人工智能中心

数智创新行上海站·智能运维专场

阿里云将带来云原生智能运维解决方案,满足海量事件有效感知、高效响应,可观测数据统一分析、故障定位,以及基于AI的异常检测等需求,助力企业构建自己的运维平台,成为开发、运维人员高效可靠的助手。

扫描海报二维码或点击下方链接报名, 期待您一起开启智能运维新时代!

https://www.aliyun.com/page-source//developer/special/osssalon

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

上一篇:宋九九:怎么做好seo优化?SEO新手基础入门教程分享!


下一篇:抢占式实例最佳实践--如何模拟中断事件