告警监控规则根据评估表达式的执行结果来判断是否满足触发告警条件 以及评估动态告警严重度。您查询语句的执行结果将作为输入 集合操作结果的字段作为变量 当评估表达式条件为真且符合连续触发阈值配置时 则触发告警。
本文主要介绍下触发的条件用法 主要包含以下内容
触发条件在告警监控的位置如何理解监控目标评估表达式的基本介绍触发条件的设置在监控中配置触发条件SLS告警是通过定时调度的机制 来监控SLS中日志 时序和Tracing的数据 如果满足设定的触发条件则会生成一条或多条告警 分组情况下 后续的告警管理会对告警进行降噪处理 然后通过行动策略发送给通知渠道或者Webhook。
接下来将对告警监控流程中的触发条件的使用方法来进行介绍。
理解监控目标这里的监控目标包含日志 时序 资源数据 在告警配置中的具体表现是 通过设定1个到3个查询 使用SLS查询分析 得到对应的中间查询结果 如下图 指定了3个查询 会有3个对应的中间查询结果 然后通过集合操作得到最终的一个集合操作结果 一般设置为1个查询 1个查询的结果就是集合操作结果 。这里的集合操作结果就是监控目标。
最终的监控目标 集合操作结果 可以当做一个表格来看待 如下表示集合操作结果有2列 4条数据。接下来这张集合操作结果将作为例子来演示触发条件的用法。
评估表达式语法SLS告警监控中的表达式 主要支持基础运算符 包括加减乘除模等 比较运算符 逻辑运算符和一些数值 字符串 布尔常量等 具体语法可以参考评估表达式语法。比如可以设置pv 40作为评估表达式 注意不能只写单个变量作为表达式 比如只写pv 不是一个合法的评估表达式 下面是一些基本的语法
触发条件触发条件是指SLS告警监控在评估时 如果集合操作结果满足设置的触发条件 就表示评估通过 会生成一条告警 触发阈值后面会有文章详细介绍 。
假如把上述的pv 40作为触发条件是否可以呢 答案是否定的 上述集合操作结果有4条数据 其中2条满足pv 40 这种情况下要不要触发告警 其实是信息量是不够的 到底是1条满足就告警呢 还是N条满足才告警呢 所以新版告警中我们增加了对满足评估表达式的结果条数的设置 这样可以更精细的控制触发条件。触发条件主要分为四种类型
其中 第四种触发条件的设置是最完整的 第四种触发条件包含数据评估和满足评估表达式的数据条数评估 在选择触发条件时只能选择上述四种触发条件中的一种 可以根据实际监控需求 配置最简单的触发条件。
注意 对于有数据匹配和有特定条数据匹配都需要配置评估表达式。
典型场景在配置告警监控中 经常会有一种需求 如果日志中出现了error 就告警 或者error在1分钟内出现5次就告警 配置经常使用类似如下查询语句
集合操作结果 对于只有一个查询的配置 查询结果就是集合操作结果 示例如下
这种情况下应该选择哪种触发条件 因为需求是error出现了5次就告警 经常会误解为需要选有特定条数据 应该选有特定条数据 5 条 这样是错误的 原因如下
因为查询语句中使用了count(1) as cnt这种聚合查询 查询结果只会有1条数据 数据是cnt:2 所以如果使用有特定条数据 5 条来判断 因为结果条数只有1条 永远不会满足条件。
正确的设置应该选择 有数据匹配 在评估表达式中填 cnt 5, 因为结果只有1条数据 这条数据满足cnt 5 就会触发告警。
总结上文主要介绍了触发条件在告警监控的用法 主要用在监控评估阶段 用来判断集合操作结果是否需要触发告警 主要包含了数据评估和满足评估表达式的数据条数评估。
注意
上文中没有涉及分组评估 以上的触发条件的设置都是在分组评估的基础上进行 即集合操作结果会先根据分组字段进行分组 然后对每个分组上的数据 进行触发条件的判断。不分组 默认是一个分组。分组评估参考。该触发条件的配置出来用在监控评估中 还可以用在动态告警严重度的设置上 告警严重度参考。参考什么是日志服务告警【链接】SLS告警监控概述【链接】SLS告警评估表达式用法【链接】SLS新版告警使用评估表达式设置触发条件【链接】进一步参考SLS 日志服务 云原生观测分析平台 https://www.aliyun.com/product/slsSLS新版告警文档首页 https://help.aliyun.com/document_detail/207609.html欢迎扫群加入阿里云-日志服务 SLS 技术交流 集团同学请直接搜索群号11702236加入 ,?获得第一手资料与支持后续系列直播与培训视频会同步到B站 敬请留意本文转自网络,原文链接:https://developer.aliyun.com/article/784628