前期回顾
- AIOps:自适应机器学习异常检测 https://developer.aliyun.com/article/784991
- 一分钟完成访问数据的智能巡检告警 https://developer.aliyun.com/article/785427
- 一分钟完成ECS机器数据的智能巡检告警 https://developer.aliyun.com/article/785745
- 智能巡检云监控指标的最佳实践 https://developer.aliyun.com/article/836132
- 智能巡检告警配置最佳实践 https://developer.aliyun.com/article/851141
- 如何将“智能巡检”嵌入“业务系统”中?https://developer.aliyun.com/article/941785
功能介绍
基础任务创建
为了提高【智能巡检】任务结果事件处理的灵活性,同时规避掉【结果字段】复杂且难理解的问题,我们开发了对于事件管理的【告警配置】页面。下面,根据一个特定的场景来介绍如何使用该告警能力。
- 打开SLS的产品首页,我们找到【智能巡检】的入口
- 我们先来创建一个【巡检任务】
在选择了对应的project/logstore后,我们通过如下SQL语句进行任务的配置,具体如下:
* | select __time__ - __time__ % 60 as time, COUNT(*) as num, avg(duration) as avg_duration, approx_percentile(duration, 0.95) as p95_duration, approx_percentile(duration, 0.99) as p99_duration,service from log group by time, service order by time limit 1000000
这里的数据是通过每分钟执行上面的SQL来得到每分钟,每个服务的观测特征(每分钟的请求次数、每分钟的平均响应延时、每分钟响应延时的95分位数、每分钟响应延时的99分位数),并将上述结果,分别按照规则配置到【时间列、实体列、特征列】中。在后续进行简单的配置后(就是什么都不用修改,按照默认参数配置就行)我们来到了告警配置页面。接下来,我们会较为详细的介绍告警配置服务。
告警配置
告警配置在【巡检任务】中一共有两个部分
- 在【任务创建】阶段的【最后一个步骤】,这里我们起名为【告警配置一】
- 在【任务详情】部分有单独的【告警配置页面】,这里我们起名为【告警配置二】
接下来,分别阐述各自告警的能力
告警配置一
一个【巡检作业】对应后台一个【常驻任务】,这里面是将告警的【通道】(行动策略和告警策略)作为参数传递给了这个【常驻任务】,这里的告警内容是根据【常驻任务】中的通知逻辑进行发送的。这里有几个典型的特点,具体的细节可以查看【智能巡检告警配置最佳实践】这篇文章中的详细说明。
告警配置二
每个【常驻任务】会将算法检查出来的【异常事件】写入到指定的logstore中,一般默认是任务所关联的原始Project中的【internal-ml-log】中去,具体的结构说明,可以参考官网文档【https://help.aliyun.com/document_detail/362912.html】。这里的【告警配置】是对这些【异常事件】进行再次加工和处理,得到的汇聚事件在进行告警的。接下来我们根据告警配置页面进行一下说明:
实体选择
- 完整匹配模式
您可以选择【ALL】表示关注全部的实体;您也可以多选任意几个实体,每个实体底层会对应一个md5值;
- 模糊匹配模式
这里是对这个维度中的实体进行过滤,您要使用SQL中的针对字符串模糊匹配的语法,可以使用like操作。
特征选择
- 任意维度:上述选择出来的实体中,任意一个维度有异常都要进行相关的告警通知
- 特定维度
这里也比较好理解,您可以选择实体的观测维度中自由的进行组合,可以去指定您感兴趣的维度、异常类型、异常分数等进行告警的过滤。
检查频率
这里有一个注意事项:检查频率的固定间隔,最好选择要覆盖【巡检任务】中的【调度延时】。这里我提供一个形象的示意图。
因此,在配置检查频率时已经要至少 >【数据聚合频率】+【执行调度延时】+【固定观测间隔】+【1分钟】。