算法说明

日志服务提供智能巡检功能,用于对监控指标或业务日志等数据进行全自动、智能化、自适应的异常巡检。目前智能巡检使用流式图算法、流式分解算法和监督异常检测算法进行数据巡检。本文介绍流式图算法、流式分解算法和监督异常检测算法的适用场景、参数配置、预览说明等内容。

流式图算法

流式图算法基于Time2Graph系列模型中的原理进行研发,可对数据进行整体降噪,分析异常数据相对整体的偏移状态。流式图算法适用于对规模大、噪音多、周期不明显的时间序列进行异常检测。更多信息,请参见Time-Series Event Prediction with Evolutionary State Graph

场景说明

流式图算法采用在线机器学习技术,对每条数据进行实时学习、推断,适用于一般性时间序列的异常检测场景,包括:

  • 机器级别的监控指标的异常巡检,例如CPU占用率、内存利用率、硬盘读写速率等。

  • 业务指标的异常巡检,例如QPS、流量、成功率、延时等。

  • 黄金指标的异常巡检。

参数说明

您可以在创建智能巡检作业配置向导页面的算法配置区域,完成算法配置。具体操作,请参见通过SQL聚合指标数据进行实时检测

参数

子参数

说明

高级参数(必填)

时序分段个数

根据时序数值大小对时序数值进行划分,用于离散化时间序列,构造时序演化图。

  • 默认值为8。

  • 建议值范围为[5, 20]。

  • 分段越少,异常检测越不敏感。

观测长度

异常检测时需要观测的历史数据点的个数。

  • 默认值是2880。

  • 建议值范围是[200, 4000]。

  • 如果被检测序列具有周期性,建议观测长度至少包含2个周期的数据点。例如,某个时间序列的观测点时间间隔为1分钟、周期为1天,则该时间序列2个周期有2880个观测点,建议观测长度的取值大于等于2880。

环比长度

环比分析时的时间长度,以天为单位。异常检测时会注重分析被检测指标的环比特征。设置为0时,算法不进行环比分析。

重点捕获类型

设置着重关注哪一种形态的时序异常。包括以下类型:

  • 向上的尖刺:指标数值单点向上突增。

  • 向下的尖刺:指标数值单点向下突降。

  • 向上的漂移:指标数值连续若干点平台上升。

  • 向下的漂移:指标数值连续若干点平台下降。

  • 趋势性上涨:指标数值连续若干点持续上升。

  • 趋势项下跌:指标数值连续若干点持续下降。

树的数量

异常检测算法使用决策树辅助检测,配置使用的决策树的数量。

单棵树的样本量

异常检测构造决策树时需要从观测数据中采样若干数据样本,配置采样的数据样本数量。

整体异常率

估计值,用于描述时序数据中包含的异常数据的比例,合理的取值范围是[0.001, 0.01]。

形态判别最短窗口

捕获时序的异常形态时,参考的观测序列的最小长度。

形态判别最长窗口

捕获时序的异常形态时,参考的观测序列的最长长度。

异常确认最短窗口

捕获时序的异常形态时,待检测序列的最小长度。

异常确认最长窗口

捕获时序的异常形态时,待检测序列的最长长度。

单维度特征配置

-

单独配置待检测时序的每一个特征,包括以下内容:

  • 最大值:该特征指标数值的最大值。

  • 最小值:该特征指标数值的最小值。

  • 归一化:对该特征序列进行检测时,使用哪种方式对序列进行归一化。

  • 异常关注类型:对该特征序列进行检测时,重点关注哪一类异常形态。

通知敏感度配置

-

对于不同时间段检测到的异常事件配置不同的通知阈值。例如忽略服务在每周定期维护期间出现的异常事件。

流式分解算法

流式分解算法基于RobustSTL系列模型中的原理进行研发,可对数据流进行批处理但计算成本更高,适合小规模业务指标数据的精确巡检。大规模数据场景下,建议您拆分数据或使用流式图算法。更多信息,请参见RobustSTL: A Robust Seasonal-Trend Decomposition Algorithm for Long Time Series

场景说明

流式分解算法适用于对具有周期性的数据序列进行巡检,且要求数据的周期性较为明显。例如适用于具有明显周期变化的业务指标巡检的场景。

说明

周期性数据在日常生活中比较常见,例如游戏的访问量、客户的订单量。

参数说明

您可以在创建智能巡检作业配置向导页面的算法配置区域,完成算法配置。具体操作,请参见通过SQL聚合指标数据进行实时检测

  1. 配置算法。

    参数

    子参数

    说明

    自动周期检测

    -

    是否开启周期自动检测,主要适用于时序数据存在周期性场景。如果时序序列的周期性一直,建议关闭自动周期检测,手动设置序列的周期长度。

    周期检测频率

    -

    开启自动周期检测时该配置项生效。算法根据配置的时间频率定期更新时间序列的周期。例如周期检测频率是12小时,那么算法每隔12小时自动检测更新序列的周期。

    周期长度

    -

    关闭自动周期检测时该配置项生效。设置序列周期的时间长度,如果序列无周期,那么设置为0。

    观测长度

    -

    异常检测时参考的历史数据长度。如果序列包含周期性,那么建议观测长度是序列周期长度的3倍。例如序列的周期长度为1天,那么设置观测长度为3天。

    敏感度

    -

    敏感度越高,检测到的异常数量越多、异常分数越高。此时对于异常的召回率越高,准确率越低。

    高级参数

    趋势项敏感度

    算法会将序列分解成趋势项、周期项和噪声项三部分。趋势项敏感度越高,在对趋势项序列异常检测时检测到的异常数量越多、异常分数越高。此时对于异常的召回率越高,准确率越低。

    噪声项敏感度

    算法会将序列分解成趋势项、周期项和噪声项三部分。噪声项敏感度越高,在对噪声项序列异常检测时检测到的异常数量越多、异常分数越高。此时对于异常的召回率越高,准确率越低。

    趋势项采样长度

    算法会将序列分解成趋势项、周期项和噪声项三部分。如果序列观测长度太长,会导致趋势项分析速度较慢。配置的趋势项采样长度越长,趋势项分析速度越快(可能会降低趋势项检测的准确率)。例如配置趋势项采样长度为8,分析趋势项时在原始序列中每个8个点采样一个数据点,在采样后序列上进行分析。

    周期项采样长度

    算法会将序列分解成趋势项、周期项和噪声项三部分。如果序列观测长度太长,会导致周期项分析速度较慢。配置的周期项采样长度越长,周期项分析速度越快(可能会降低周期项检测的准确率)。例如配置周期项采样长度为8,分析周期项时在原始序列中每个8个点采样一个数据点,在采样后序列上进行分析。建议配置在5以内。

    窗口长度

    如果序列观测长度太长,会导致异常检测速度较慢。设置窗口长度后检测算法以滑动窗口的形式分段检测数据序列,提高检测速度。建议配置在5000以内。如果不需要按照滑动窗口形式检查,配置为0。

  2. 在预览区域体验、查看当前参数配置下的算法效果。

    1. 设置时间范围,确定待检测的时间序列的起始和结束时间。单击数据查询,将使用在数据特征配置中设置的查询分析语句,处理指定时间范围的数据,生成时序数据。

    2. 选择实体信息特征,确定待检测的特征序列。单击预览将会调用检测算法处理指定的特征序列,并在下方展示检测结果。单击显示参数,会显示当前算法的参数配置。

    3. 检测结果中展示趋势项预览周期项预览噪声项预览。可以在趋势项预览噪声项预览中调整异常阈值,只有当异常分数大于异常阈值的异常事件才可以用来产生告警。

监督异常检测算法

监督异常检测算法

监督异常检测算法构造时序数据的若干特征。使用时序数据的特征和异常标签,训练决策树、随机森林等监督分类模型。完成模型训练后,使用训练好的模型进行异常检测。

场景说明

监督异常检测算法适用于包含异常标签的时序数据、流式图算法和流式分解算法无法处理的时序数据。

参数说明

您可以在创建模型训练作业配置向导页面的算法配置区域,完成算法配置。具体操作,请参见通过SQL聚合指标数据进行模型训练