简介:异常检测作为智能运维(AIOps)系统中基础且重要功能,其旨在通过算法自动地发现 KPI 时间序列数据中的异常波动,为后续的告警、自动止损、根因分析等提供决策依据。那么,我们该如何在实际场景中使用异常检测呢,而异常检测又是什么,今天我们就进行一次深入讲解。
作者|梵登、白玙
审核&校对:白玙
编辑&排版:雯燕
背景
异常检测作为智能运维(AIOps)系统中基础且重要功能,其旨在通过算法自动地发现 KPI 时间序列数据中的异常波动,为后续的告警、自动止损、根因分析等提供决策依据。那么,我们该如何在实际场景中使用异常检测呢,而异常检测又是什么,今天我们就进行一次深入讲解。
什么是异常检测?
在一切开始前,我们首先需要了解什么是异常检测。异常检测是指从时间序列或者事件日志中,去识别出不正常的事件、现象等。我们这里讲的异常检测特指时间序列的异常检测。通过对时间序列的值大小,曲线形态等进行综合判定,可以发现曲线异常点。异常的表现一般是指时间序列发生了不符合预期的上升、下降或者波动。
举例来说:某台机器的内存使用率指标一直在 40% 左右的水位波动, 突然飙升至 100%;某个 Redis 数据库的连接数正常水平一直在 100 数量左右, 突然发生了大规模的下跌至 0 的现象;某个业务的在线人数在 10 万左右波动,突然下跌到了 5 万等等。
什么是时间序列?
时间序列是指一组按照时间发生先后顺序进行排列的数据点序列,通常一组时间序列的时间间隔为一恒定值(如 1 分钟、5 分钟)。
当前开源 Prometheus 是如何做异常检测的?
目前开源版本的 Prometheus 检测能力还是基于设定阈值规则方式进行,而这种依赖阈值设定的方式就引出了以下问题。
常见问题
问题 1:面对数以万计的指标数量,如何快速又合理的完成检测配置?
由于不同类型指标的含义差别大,对应设定的合理阈值也不太一样。哪怕是同一种类型指标,由于业务状态不一样,往往不能用相同阈值。因此,在配置阈值时,运维人员需要根据对应的业务情况去配置自认为合理的阈值。由于运维人员认知水平和工作经验存在差异,因此不同人员配置的阈值也存在差别。其次,很多指标没有明确合理的范围定义,这导致很多阈值配置都是“拍脑袋”确定的,随机性比较强。
举例来说:某在线人数指标, 必须仔细观察分析历史指标曲线的数值分布和变化趋势,才能设置出合理的阈值。
问题 2:随着业务的演化,如何进行检测规则的维护?
对于相对稳定的业务,业务指标长期处于稳定状态,这种情况下配置的阈值可以发挥比较长时间作用。但对于时刻变化的业务, 伴随业务的不断演化,指标的水位和走势也是在不断变化。这些变化很容易导致一开始设定的阈值

本文详细介绍阿里云Prometheus监控中的智能异常检测功能,包括异常检测原理、常见问题解析、智能检测算子的应用场景及最佳实践。通过实例说明如何高效配置告警,自适应业务变化,并处理数据质量问题,提升运维效率。
最低0.47元/天 解锁文章
4043

被折叠的 条评论
为什么被折叠?



