CN114816901A - 通过ai的方式对软件变更后的健康状态进行评估的方法 - Google Patents
通过ai的方式对软件变更后的健康状态进行评估的方法 Download PDFInfo
- Publication number
- CN114816901A CN114816901A CN202210187810.7A CN202210187810A CN114816901A CN 114816901 A CN114816901 A CN 114816901A CN 202210187810 A CN202210187810 A CN 202210187810A CN 114816901 A CN114816901 A CN 114816901A
- Authority
- CN
- China
- Prior art keywords
- point
- abnormal
- data
- curve
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/2433—Single-class perspective, e.g. one-against-all classification; Novelty detection; Outlier detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Medical Informatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Complex Calculations (AREA)
Abstract
本申请提出了一种通过AI的方式对软件变更后的健康状态进行评估的方法,涉及数据分析技术领域,其中,该方法包括:获取待检测的KPI时间序列,并对获取到的KPI时间序列进行中位差检验;若检测到某个数据点高于中位差检验的阈值,则对KPI时间序列的曲线进行无监督异常检测,得到每个点对应的异常分数;将异常分数作为极值理论的输入来确定动态阈值,根据曲线上待检测点的异常分数与此点对应阈值的比较来判断曲线是否有异常点;若曲线有异常点,使用空间回归算法对曲线进行评估,判断异常的种类。采用上述方案的本申请能够快速、准确判断异常是否是由软件变更导致的,从而完成对服务变更的评估,极大提高了服务变更评估的效率。
Description
技术领域
本申请涉及数据分析技术领域,尤其涉及通过AI的方式对软件变更后的健康状态进行评估的方法和装置。
背景技术
微服务架构和敏捷开发产生了复杂的服务树结构,进而导致每天都有大量的服务变更发生,随着业务量的剧增,公有云每天发生数百次服务变更,失败服务变更已成为威胁云服务稳定性的最主要因素之一,运维人员手动操作大量的服务变更以及仅靠人工经验判断服务软件变更的异常,会很大程度的影响软件变更的效率和稳定性,为了确保服务的稳定性,需要快速、准确地评估服务变更是否成功,以便在变更失败时立即触发服务回滚操作,避免失败变更带来更大损失。
目前的现有技术主要有:
(1)os异常检测与诊断
通过分析日志数据对路由器、磁盘等硬件故障进行诊断;
(2)观察在线指标数据趋势,依赖人工经验判断服务异常
运维人员采取肉眼盯屏,观察服务变更变更时与变更后一段时间的指标曲线变化,依赖人工经验判断服务变更是否异常。
现有技术缺点:
1)运维人员只基于在线数据分析,依赖人工经验判断服务变更是否异常
这种方式没有采用历史数据,无法将当前的指标变化与历史数据变化趋势做对比,且仅靠运维人员人工经验判断易产生误判。
2)对于多种类的KPI曲线不具有鲁棒性
在检测结果中,呈现只对一种类型的曲线检测良好,无法对多种类型的曲线都达到良好的检测状态。
3)需要对每一条指标曲线设定特定的阈值
阈值的设定严重依赖运维工程师的个人经验及此时此刻具体的业务场景,并且随着业务量增长、业务场景的改变或者机器环境的变化,这些设定的阈值还需要不断地修改。
4)只对发生变更的服务进行异常检测之后未进一步验证异常是否是由软件变更导致的异常检测是采用发生服务变更的机器指标和业务指标数据进行分析和判断,未与同条件下的未发生软件变更的服务的指标数据进行变更前和变更后比较,无法辨别异常是由软件变更导致的还是其他原因引起的异常。
5)不同的实际变更场景采用相同的检测方案
由于常用的变更场景比如滚动发布、金丝雀发布、蓝绿发布的发布方式不同,在服务变更过程中引流方式具有差异性,使用同一检测方案不能实现最好的检测效果。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种通过AI的方式对软件变更后的健康状态进行评估的方法,在目前服务变更场景下和服务产生的历史数据基础上,以机器学习算法为核心,分析服务和机器的关键性能指标,提供更进一步的智能化异常检测,并快速、准确判断异常是否是由软件变更导致的,从而完成对服务变更的评估,使得运维人员在操作服务变更时能根据算法结果的反馈及时对服务进行回滚或下一步的操作,改变人工盯屏情况,很大程度上解放了运维人员的人工精力,避免失败变更带来更大损失,极大提高了服务变更评估的效率。
本申请的第二个目的在于提出一种通过AI的方式对软件变更后的健康状态进行评估的装置。
为达上述目的,本申请第一方面实施例提出了一种通过AI的方式对软件变更后的健康状态进行评估的方法,包括:获取待检测的KPI时间序列,并对获取到的KPI时间序列进行中位差检验;
若检测到某个数据点高于中位差检验的阈值,则对KPI时间序列的曲线进行无监督异常检测,得到每个点对应的异常分数;
将异常分数作为极值理论的输入来确定阈值,根据阈值与曲线上的每个点的异常分数的比较来判断曲线是否有异常点;
若曲线有异常点,使用空间回归算法对曲线进行评估,判断异常的种类。
本申请实施例的通过AI的方式对软件变更后的健康状态进行评估的方法,在目前服务变更场景下和服务产生的历史指标数据基础上,以机器学习算法为核心,训练离线数据生成服务模型,再对在线数据进行智能化异常检测,通过算法计算,避免了必须直接为每条曲线设置阈值,增强了算法的健壮性。并以发生软件变更的服务为实验组,同条件下、同一组件下未发生软件变更的服务为对照组,学习变更前实验组和对照组之间的统计依赖结构,以更好的预测变更后实验组与对照组之间的差异,快速、准确判断异常是否是由软件变更导致的,从而完成对服务变更的评估,使得运维人员在操作服务变更时能根据算法结果的反馈及时对服务进行回滚或下一步的操作,改变人工盯屏情况,很大程度上解放了运维人员的人工精力,避免失败变更带来更大损失,极大提高了服务变更评估的效率。并且本专利针对不同的实际变更场景,设计相应的变更评估方案,使得在不同的变更场景下发挥更好的检测效果。
可选地,在本申请的一个实施例中,对获取到的KPI时间序列进行中位差检验,包括:
计算KPI时间序列的曲线上每个点的中位差系数,其中,每个点的中位差系数通过将该点前面一段序列的中位数和后面一段序列的中位数进行做差、求绝对值得到;
设定阈值与曲线上每个点的中位差系数进行比较。
可选地,在本申请的一个实施例中,对KPI时间序列的曲线进行无监督异常检测,包括:
对KPI时间序列进行数据预处理,生成时间窗口数据;
通过MCMC方法,基于时间窗口数据内其他的非缺失点数据的分布生成重构的数据,并使用重构的数据替换对应缺失数据;
将填补后的时间窗口数据输入训练好的条件变分自编码器,输出每个点对应的异常分数,
其中,数据预处理,包括:
对KPI时间序列的数据缺失点用0填充,并将时间序列数据的间隔变得相同;
对填充处理后的时间序列进行标准化。
可选地,在本申请的一个实施例中,每个点对应的异常分数表示为:
其中,x表示输入的时间窗口的数据,y表示输入的时间窗口的时间信息,z表示低维潜在空间的先验分布,表示从条件分布qΦ(z|x,y)中采样z的条件下求期望,logpθ(x|z,y)表示条件分布P(x|z,y)的概率密度求对数,表示输入x在解码器输出的重构分布中的对数概率密度。
可选地,在本申请的一个实施例中,训练条件变分自编码器模型,包括:
获取正常的KPI时间序列,对正常的KPI时间序列进行数据预处理,生成时间窗口数据构成训练数据集;
使用训练数据集,基于M-ELBO损失函数和SGVB优化算法不断训练模型,直到模型收敛,完成训练。
可选地,在本申请的一个实施例中,M-ELBO损失函数表示为:
其中,x表示输入的时间窗口的数据,xi表示表示输入的时间窗口的一个点,y表示输入的时间窗口的时间信息,z表示低维潜在空间的先验分布,表示从条件分布中采样z的条件下求期望,logp(xi|z,y)表示条件分布P(x|z,y)的概率密度求对数,logp(z|y)表示条件分布P(z|y)的概率密度求对数,表示条件分布P(z|x,y)的概率密度求对数,αi表示时间窗口的第i个点是否为异常点,β表示时间窗口的第i个点是否为异常点,W表示时间窗口的长度。
可选地,在本申请的一个实施例中,将异常分数作为极值理论的输入来确定阈值,包括:
设置峰值阈值筛选出待检测点之前的时间序列中的峰值,其中,序列中的峰值为超出峰值阈值的部分;
根据序列数据计算出初始异常阈值,其中,序列数据包括序列总长度、峰值阈值、峰值个数、风险概率,风险概率为待调整的超参;
使用待检测的KPI时间序列的数据更新初始异常阈值,得到最终的阈值。
可选地,在本申请的一个实施例中,使用空间回归算法对异常进行评估,包括:
步骤S1:从对照组中简单随机选取出采样对照组,其中,对照组为与发生软件变更的机器部署相同服务且未发生软件变更的机器中的相关指标,采样对照组数据包括变更前后的时间序列矩阵;
步骤S2:根据变更前的对照组的时间序列矩阵和变更前的待检测的实验组的时间序列向量学习出线性回归参数;
步骤S3:使用学习到的参数和对照组变更前后的时间序列矩阵来预测变更前后的待测试时间序列向量;
步骤S4:重复步骤S1、S2、S3,得到预测时间序列向量组;
步骤S5:将预测时间序列向量组,计算在同一时间点上不同预测时间向量的值的中位数,得到一个新的预测向量,之后用待测试的变更前后的时间序列和新的预测向量做差,得到变更前后的差值序列;
步骤S6:使用健壮性秩次检验比较变更前的差值序列和变更后的差值序列,得到显著性差异分数;
步骤S7:设定阈值与显著性差异分数比较,若超过阈值,确定为软件变更导致的异常,否则为其他原因导致的异常。
可选地,在本申请的一个实施例中,对获取到的KPI时间序列进行中位差检验,判断得到序列上所有数据点都低于中位差检验的阈值;或根据阈值与曲线上的每个点的异常分数的比较,判断得到曲线不含有异常点,确定软件变更后处于健康状态。
为达上述目的,本发明第二方面实施例提出了一种通过AI的方式对软件变更后的健康状态进行评估的装置,包括中位差检验模块、异常分数确定模块、异常点检测模块、评估模块,其中:
中位差检验模块,用于获取待检测的KPI时间序列,并对获取到的KPI时间序列进行中位差检验;
异常分数确定模块,用于若检测到某个数据点高于中位差检验的阈值,则对KPI时间序列的曲线进行无监督异常检测,得到每个点对应的异常分数;
异常点检测模块,用于将异常分数作为极值理论的输入来确定阈值,根据阈值与曲线上的每个点的异常分数的比较来判断曲线是否有异常点;
评估模块,用于若曲线有异常点,使用空间回归算法对曲线进行评估,判断异常的种类。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例一所提供的一种通过AI的方式对软件变更后的健康状态进行评估的方法的流程示意图;
图2为本申请实施例的中位差检验示意图;
图3为本申请实施例的Bagel算法结构示意图;
图4为本申请实施例的时间信息编码过程示意图;
图5为本申请实施例的Bagel算法训练流程示意图;
图6为本申请实施例的SPOT检测过程示意图;
图7为本申请实施例的实验组和对照组相对变化情况;
图8为本申请实施例的总体算法流程示意图。
图9为本申请实施例的线上算法部署检测系统结构图;
图10为本申请实施例提供的一种通过AI的方式对软件变更后的健康状态进行评估的装置的结构示意图;
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的通过AI的方式对软件变更后的健康状态进行评估的方法和装置。
图1为本申请实施例一所提供的一种通过AI的方式对软件变更后的健康状态进行评估的方法的流程示意图。
如图1所示,该通过AI的方式对软件变更后的健康状态进行评估的方法包括以下步骤:
步骤101,获取待检测的KPI时间序列,并对获取到的KPI时间序列进行中位差检验;
步骤102,若检测到某个数据点高于中位差检验的阈值,则对KPI时间序列的曲线进行无监督异常检测,得到每个点对应的异常分数;
步骤103,将异常分数作为极值理论的输入来确定阈值,根据阈值与曲线上的每个点的异常分数的比较来判断曲线是否有异常点;
步骤104,若曲线有异常点,使用空间回归算法对曲线进行评估,判断异常的种类。
本申请实施例的通过AI的方式对软件变更后的健康状态进行评估的方法,在目前服务变更场景下和服务产生的历史数据基础上,以机器学习算法为核心,分析服务和机器的关键性能指标,提供更进一步的智能化异常检测,并快速、准确判断异常是否是由软件变更导致的,从而完成对服务变更的评估,使得运维人员在操作服务变更时能根据算法结果的反馈及时对服务进行回滚或下一步的操作,改变人工盯屏情况,很大程度上解放了运维人员的人工精力,避免失败变更带来更大损失,极大提高了服务变更评估的效率。
进一步地,在本申请实施例中,对获取到的KPI时间序列进行中位差检验,包括:
Bagel算法在检测时对于抖动和噪音比较敏感,但在变更评估对KPI进行剧变检测时又不关注KPI中的抖动和噪音。基于一组数据的中位数不会受到极端值的影响,结合滑动窗口和中位数提出了中位差检验。如图2所示,主要思路是从前向后遍历KPI时间序列,每个点的中位差系数就是其前面一段序列的中位数,和后面一段序列的中位数,做差,再求绝对值。
其中,中位差检验的时间窗口为经验值,时间窗口太小达不到过滤掉噪声的效果,时间窗口太大的话甚至会过滤到持续时间较长的异常,导致检测漏报。对于中位差检验的阈值,不同的指标可能不太相同,也是经验值,但不同于对指标直接设置固定的阈值来判断指标是否发生异常,中位差检验的阈值是一个对该指标最大变化幅度的估计,变化幅度如果没有超过这个阈值,并且没有持续足够长的时间,则会被中位差检验直接过滤掉,所以一般这个阈值都可以设置的相对小一些。值得一提的是,中位差检验仅仅用于过滤掉抖动和噪音的,起到辅助的效果,当指标属于固定不变的类型,或者指标数量较多时,可以采用默认的阈值0。
具体地,在本申请实施例中,Bagel算法是基于另一个无监督深度学习生成模型Donut算法提出的一个较新的、基于无监督深度学习生成模型的单指标异常检测算法。针对性的解决了对和时间相关的异常的检测,以及避免了对曲线中周期性抖动(spike)的误报的问题。由于在变更评估中需要检测多种类的KPI曲线,尤其当曲线具有明显周期性时,更需要Bagel算法的无监督学习能力来辅助检测周期性曲线中的异常,如图3所示,Bagel算法主要由数据预处理,训练,预测这三部分组成。
变分自编码器和条件变分自编码器:
深度贝叶斯网络结合了深度学习和概率图模型(PGM,probabilistic graphicalmodels),其扩展了概率图模型的能力,并对随机变量和神经网络之间的关系进行建模。变分推断是一种非常有用的用于解决由神经网络衍生出的分布的后验概率问题的方式,因此其经常被用作深度贝叶斯网络的训练和预测。
变分自编码器和条件变分自编码器都是典型的深度贝叶斯网络。变分自编码器是对两个随机变量x和z的关系进行建模,而条件变分自编码器是对随机变量x和z的关系在条件y下进行建模,可表示为p(x,z|y)。在Bagel算法中选择条件变分自编码器的原因是其中的条件变量时间信息在KPI异常检测中尤为重要。
因此使用Bagel算法对KPI时间序列的曲线进行无监督异常检测,包括:
对KPI时间序列进行数据预处理,生成时间窗口数据;
在检测过程中,时间窗口内的缺失点可能会对检测效果产生不好的影响,为了减少缺失点造成的检测偏差,通过MCMC方法,基于时间窗口数据内其他的非缺失点数据的分布,生成重构的数据,并用重构的数据替换对应缺失数据;
将填补后的时间窗口数据输入训练好的条件变分自编码器,输出每个点对应的异常分数,
其中,数据预处理,包括:
由于实际收集到的数据往往会有部分缺失点,所以先需要对数据缺失点用0进行补充,并将时间序列数据的间隔都变得相同,实验中一般为1分钟或者5分钟。
由于不同指标的KPI的数据差异很大,所以需要对整个序列进行标准化,方法就是将序列中的每一个点减去整个序列的均值再除以标准差。
由于待研究的实验数据是KPI时间序列,而条件变分自编码器又不是时序模型,所以需要对原始KPI数据的形式进行处理,以KPI序列的滑动窗口形式的数据作为模型的输入,条件变量y即代表输入的每个时间窗口的时间信息。为了强调周期性,每个时间窗口对应的时间戳被分解成了以下分量:分钟,小时,周几。将时间信息中需要提取的分量使用one-hot方法编码为二进制的01向量。图4展示了对时间信息进行编码的方式。
具体地,在本申请实施例中,对于检测的依据,使用ELBO中的重构项作为参考,每个点对应的异常分数表示为:
其中,x表示输入的时间窗口的数据,y表示输入的时间窗口的时间信息,z表示低维潜在空间的先验分布,表示从条件分布qΦ(z|x,y)中采样z的条件下求期望,logpθ(x|z,y)表示条件分布P(x|z,y)的概率密度求对数,表示输入x在解码器输出的重构分布中的对数概率密度。
这个异常分数可以理解为检测数据的负的重构概率,重构的概率越大代表被检测曲线越不可能为异常,相反,就越小可能为异常,因此异常分数选为负的重构概率的对数,其中对数是为了放大重构概率较小时异常分数的数值。
具体地,在本申请实施例中,条件变分自编码器模型应该学习的是KPI时间序列中的带有时间信息的正常模式,模型通过一种基于ELBO损失函数的增强版——M-ELBO损失函数,该函数使得条件变分自编码器能够减少异常点和缺失点在一个训练窗口中对损失函数的影响,所以这使得模型能够从可能存在异常的时间窗口内,依然可以学习重构正常的模式,M-ELBO损失函数列式如下:
其中,对于一个输入的时间窗口x,假设和它对应的一个标注信息的时间窗口是一个二进制的向量α,当且仅当xi为异常点或缺失点时,αi为1。β代表了一个时间窗口中正常点的比例。由于x的后验概率被假设为对角高斯分布,他的对数似然可以被重写为通过将αi和logpθ(xi|z,y)相乘,可以去除异常点和缺失点对损失函数的贡献,进而去除其对训练效果的影响,为了尽可能发挥模型的这一优势,在训练过程中还进行了随机的异常数据注入,即随机的将时间窗口内的数据变为0,其就变为1,这也是某种意义上的数据增强,可以在无监督学习的条件下,尽可能地不依赖于标注,学习到曲线中的正常模式。如图5所示,展示了Bagel的详细训练步骤,整个训练由编码器和解码器两部分组成。
对于编码器,主要是将时间窗口内的KPI数值信息和时间信息转化到低维的隐含空间中。由于神经网络很容易对时间信息训练过拟合,所以需要让时间信息Y维向量经过随机失活层丢弃部分内容,达到更好的训练效果。之后将代表时间窗口内KPI数值信息的W维向量和代表时间信息的Y维向量直接拼接,形成编码器的输入数据。由于模型假设了隐含空间内的z变量的先验概率分布为标准正态分布,其后验概率分布是对角高斯分布。编码器的输出为两个K维的向量,分别代表z变量的后验概率的均值μz和标准差σz。得到了隐含空间中z变量的后验概率分布,再从中取样z~N(μz,σz),得到另一个K维向量z。需要再将其与经过随机失活层的时间信息Y维向量拼接,作为解码器的输入。解码器也会输出两个向量,他们和输入编码器前的代表KPI数值信息的W维向量形状相同,分别代表重构后的窗口每个点对应位置的均值μx和标准差σx。至此,数据经过模型的编码器和解码器完成了一次正向传播,之后基于M-ELBO损失函数和SGVB优化算法不断训练模型。
具体地,在本申请实施例中,M-ELBO损失函数表示为:
其中,x表示输入的时间窗口的数据,xi表示表示输入的时间窗口的一个点,y表示输入的时间窗口的时间信息,z表示低维潜在空间的先验分布,表示从条件分布中采样z的条件下求期望,logp(xi|z,y)表示条件分布P(x|z,y)的概率密度求对数,logp(z|y)表示条件分布P(z|y)的概率密度求对数,表示条件分布P(z|x,y)的概率密度求对数,αi表示时间窗口的第i个点是否为异常点,β表示时间窗口的第i个点是否为异常点,W表示时间窗口的长度。
具体地,在本申请实施例中,将异常分数作为极值理论的输入来确定阈值,包括:
1)峰值超过阈值(POT)方法
峰值超过阈值(POT)方法依赖于下面给出的Pickands-Balkema-de Haan定理(也称为极值理论第二定理)。
累积分布F的极值分布趋近于极值分布,如式6.3所示,当且仅当存在函数,且对于所有的x∈R,当1+γx>0,t→τ,时,有:
更清楚的,如式6.4所示,可以表述为当1+γx>0,t→τ时,有:
该结果表明,超过阈值t的部分(记为X-t)可能遵循参数为γ,σ的广义帕累托分布(GPD)。GPD还需要第三个参数,即位置μ,但在本设计中为空。POT方法不是将X的极值拟合为极限值分布(EVD),而是尝试将X-t拟合为帕累托分布。
其中t是峰值的阈值,q是异常出现的概率,n是序列的总长度,Nt是峰值的个数,即当Xi>t时Xi的个数,而计算得到的zq可以看作异常的阈值。使用对数最大似然估计之后,需要最大化式6.6。
其中Yi是Xi相对于t的超出部分,即当Xi>t,Yi=Xi-t。
2)根据POT方法构建异常检测器
极值理论通过POT方法提供了一种估算zq的方法,使得P(X>zq)<q不会对X的分布产生任何假设,也无需对其X的分布有任何清楚的了解。如图6所示,将使用此方法来构建流离群值检测器。整个检测器分为校准和检测两部分。首先,校准步骤根据整个序列的前n个观测值X1,...,Xn计算出异常的阈值zq。然后之后的检测部分,用传入的数据更新zq并将其作为判断异常点的阈值。
a.初始化步骤
整个POT算法的过程,根据序列X1,...,Xn,和确定的风险概率q。目标是计算出能验证P(x>zq)<q的初始异常阈值zq。主要思路是设置一个较高的峰值阈值t(实际上这是一个经验值)来筛选出峰值(超出峰值阈值t的部分),并将超出的值组成的序列拟合为GPD(广义帕累托分布)。这样就可以推断出极值的分布并且计算出异常阈值zq。
b.SPOT确定数据中的异常点
Stream POT(SPOT)算法先通过POT方法得到初始化的峰值阈值t和异常阈值zq。之后遍历剩余的序列,这时会存储两个列表,一个序列Yt用来存储超出峰值阈值的部分(Xi-t),另一个序列A用来存储异常值,即遍历过程中超出zq的值。当Xi超出异常阈值zq,将其加入序列A;否则如果没有超出异常阈值,但超过了峰值阈值t,则将Xi-t加入序列Yt,此时会更新异常阈值zq;当Xi没有超过峰值阈值时,继续向后遍历。这样遍历完剩余序列之后,当遍历到每个点时,当时的zq即为动态地为输入序列确定的阈值。
具体地,在本申请实施例中,使用空间回归算法对异常进行评估,包括:
该算法使用变更前的实验组指标数据和对照组指标数据之间的空间回归来学习统计依赖性结构。该结构学习到的是用一组数据来预测另一组数据的能力。使用对照组数据来对实验组数据进行预测,得到变更前和变更后的实验组数据的预测值。再由实验组变更前后的预测值和真实值来计算预测和真实的差异。图7举例了实验组和对照组在变更前后发生相对变化的其中三种情况。
通过健壮性秩次检验(Robust-rank-order-test)的方式将两者的差异进行比较,来看变更是否导致了实验组和对照组发生了显著性变化。
在对照组的选取时,使用简单随机抽样的方式,从N个对照组中抽取k个多次预测差异的比较增强了空间回归的鲁棒性,使得对照组中少数的指标变化减少对不良预测的影响。如果有多个实验组需要分析,则需要重复以上步骤。
1)训练和预测
Xb,Xa是对照组变更前后的时间序列矩阵,其中的每一列代表一个对照组的时间序列向量,Yb(j),Ya(j)代表第j个实验组的时间序列向量。从N个对照组中简单随机采样出k个,生成新的对照组采样矩阵根据变更前的采样对照组时间序列矩阵和实验组时间序列向量学习出线性回归参数β,如式6.7所示。
接着再使用学习到的参数和变更前后采样对照组的时间序列矩阵来预测变更前后的实验组时间序列向量,如式6.8所示。
2)比较差异
首先需要将多个预测的向量进行聚合,一般采用中位数的方式,即对不同预测序列的同一时刻取中位数,得到一个聚合后的预测序列。之后用真实的实验组变更前后的时间序列和聚合后的预测时间序列做差,如式6.9所示。
3)健壮性秩次检验
对于两个序列,长度为m的X序列,长度为n的Y序列。序列U(YXi)中每个元素代表X序列中对应位置元素大于Y序列中元素的个数,U(YX)为U(YXi)的均值。同样U(XYi)每个元素代表Y序列中对应位置元素大于X序列中元素的个数。此外,式6.10还定义了另外两个变量:
最终的健壮性秩次检验的显著性差异分数如式6.11所示:
关于判断两个序列的显著性差异,当m,n都较小时,可根据查表的附录判断差异性,当m,n较大时,显著性分数近似遵循标准正态分布。
本申请的方案包括剧变检测和评估异常是否由软件变更所导致的两大部分,主要流程如下:将输入的KPI时间序列先经过中位差检验,如果都低于中位差检验的阈值,那么这条曲线没有异常;否则,将该原始序列的曲线进行Bagel算法的无监督异常检测,得到每一点对应的异常分数序列;将异常分数作为极值理论的输入来确定阈值,根据阈值与该点的异常分数的比较来判断曲线是否有异常。如果曲线有异常点,则需要进一步结合灰度发布配置数据,即对照组的KPI时间序列,通过空间回归算法综合判断,如果实验组和对照组数据的置信值比较大,即两组数据差异有明显差异,则该指标的异常是由变更导致的异常;否则为其他原因导致的异常。如图8所示,为算法流程图。
综上,算法部分是对服务进行智能化评估的核心部分,本次设计以每次变更对应的每条曲线为检测粒度,算法核心是是基于机器学习理论的无监督异常检测算法进行单指标异常检测,对检测出有异常的指标数据运用空间回归算法判断发生剧变的指标曲线是否是由变更所导致的。具体做法是在离线训练时,输入一段时间的单指标时间序列数据,并对数据进行预处理得到归一化的二维数据矩阵,再进行模型离线训练学习数据集中的正常模式并得到每一个数据的分数,最后通过极值理论得到异常阈值;在在线检测时,先对数据进行预处理,利用训练好的模型进行数据检测,将得到的异常分数和阈值进行比较得到最终异常结果,如果检测结果为异常,用空间回归算法进行评估,判断这次异常是否是由软件变更所导致的。
本申请的设计方案是在变更检测平台进行部署,对服务变更提供检测任务。为了把算法部署上线并满足各平台的兼容性和适用性,把算法上传到算法平台,对每一个region,云服务,组件,微服务级别的变更进行检测,根据用户的配置信息,服务检测系统启动离线训练任务在算法平台完成训练到生成模型的操作,并在变更检测系统调用模型服务对要检测的数据进行剧变检测,根据检测结果和实际的变更场景进行空间回归综合判断完成智能化评估,当服务部署变更过程中剧变检测和空间回归结果都为异常,会暂停部署并通知运维人员,剧变检测任务贯穿服务变更开始至变更后两个小时之内,并且时间可根据用户需要进行设置,将智能化变更评估融入到实际服务变更工作中。总的结构图如图9所示,包括:
变更部署系统:可发起变更任务,可以在这个系统中选择变更决策:变更继续或回滚。
变更检测系统:在整个设计流程中,变更检测系统可分别启动离线训练任务和在线检测任务,对发生变更的服务反馈检测结果。
监控系统:用于存储在线7天的数据,和实时产生的指标数据。
对象存储服务:用于存储变更服务的离线数据集和训练产生的模型参数。
算法平台:用于存储算法代码、完成训练到输出模型操作。
检测系统实施流程:
1)用户首先会在变更检测前端点击按钮选择算法、指标、训练等配置信息;
2)用户将服务在变更部署平台进行服务变更,变更部署平台会在服务变更开始启动变更任务,调用变更检测平台,变更检测平台根据用户在前端选择的信息得到的有效参数通过调用CMDB平台获得该服务更多详情信息以及调用对象存储服务获取该服务的历史数据,开启对这个服务的离线训练任务,生成服务模型;与此同时变更检测平台启动在线检测任务,通过调用监控系统实时获取该服务在线数据,并将其输送到服务模型中,得到指标检测结果;
如果指标检测结果有异常,变更检测平台会再次调用算法平台使用变更评估算法、调用CMDB平台获得与本次服务变更同条件同一组件下的机器的信息为对照组、调用对象存储平台获取实验组和对照组变更前历史数据、调用监控系统获取实验组和对照组变更后在线数据进行软件变更评估,判断异常是否是由软件变更所导致的,最后两次判断结果均展示在前端界面上,具体结果详请用户可查询变更检测平台的数据库的记录。
本次的技术方案已经在变更检测平台部署使用,应用于服务变更检测,同时分别使用仿真环境和故障注入平台验证了上述机制的性能,在这两个数据集上的F1-score分别达到了95.66%和97.39%,在实际的服务变更结果反馈中精确率达到85%以上,召回率达到90%以上,能够检测上百个组件KPI的剧变,在15分钟内可以完成几十万级的指标监测,且不需要运维人员手动调参,避免了为每一条曲线设定特定阈值,极大地提高了服务变更评估的效率。
为了实现上述实施例,本申请还提出一种通过AI的方式对软件变更后的健康状态进行评估的装置
图10为本申请实施例提供的一种通过AI的方式对软件变更后的健康状态进行评估的装置的结构示意图。
如图10所示,该通过AI的方式对软件变更后的健康状态进行评估的装置,包括中位差检验模块、异常分数确定模块、异常点检测模块、评估模块,其中:
中位差检验模块,用于获取待检测的KPI时间序列,并对获取到的KPI时间序列进行中位差检验;
异常分数确定模块,用于若检测到某个数据点高于中位差检验的阈值,则对KPI时间序列的曲线进行无监督异常检测,得到每个点对应的异常分数;
异常点检测模块,用于将异常分数作为极值理论的输入来确定阈值,根据阈值与曲线上的每个点的异常分数的比较来判断曲线是否有异常点;
评估模块,用于若曲线有异常点,使用空间回归算法对曲线进行评估,判断异常的种类。
需要说明的是,前述对通过AI的方式对软件变更后的健康状态进行评估的方法实施例的解释说明也适用于该实施例的通过AI的方式对实际软件变更场景后的健康状态进行异常检测和变更评估的装置,此处不再赘述。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,″计算机可读介质″可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种通过AI的方式对软件变更后的健康状态进行评估的方法,其特征在于,包括以下步骤:
获取待检测的KPI时间序列,并对获取到的KPI时间序列进行中位差检验;
若检测到某个数据点高于中位差检验的阈值,则对所述KPI时间序列的曲线进行无监督异常检测,得到每个点对应的异常分数;
将异常分数作为极值理论的输入来确定阈值,根据阈值与曲线上的每个点的异常分数的比较来判断曲线是否有异常点;
若曲线有异常点,使用空间回归算法对曲线进行评估,判断异常的种类。
2.如权利要求1所述的方法,其特征在于,所述对获取到的KPI时间序列进行中位差检验,包括:
计算所述KPI时间序列的曲线上每个点的中位差系数,其中,每个点的中位差系数通过将该点前面一段序列的中位数和后面一段序列的中位数进行做差、求绝对值得到;
设定阈值与曲线上每个点的中位差系数进行比较。
3.如权利要求1所述的方法,其特征在于,所述对所述KPI时间序列的曲线进行无监督异常检测,包括:
对所述KPI时间序列进行数据预处理,生成时间窗口数据;
通过MCMC方法,基于所述时间窗口数据内其他的非缺失点数据的分布生成重构的数据,并使用重构的数据替换对应缺失数据;
将填补后的时间窗口数据输入训练好的条件变分自编码器,输出每个点对应的异常分数,
其中,所述数据预处理,包括:
对KPI时间序列的数据缺失点用0填充,并将时间序列数据的间隔变得相同;
对填充处理后的时间序列进行标准化。
5.如权利要求4所述的方法,其特征在于,训练所述条件变分自编码器模型,包括:
获取正常的KPI时间序列,对所述正常的KPI时间序列进行所述数据预处理,生成时间窗口数据构成训练数据集;
使用所述训练数据集,基于M-ELBO损失函数和SGVB优化算法不断训练模型,直到模型收敛,完成训练。
7.如权利要求1所述的方法,其特征在于,所述将异常分数作为极值理论的输入来确定阈值,包括:
设置峰值阈值筛选出待检测点之前的时间序列中的峰值,其中,所述序列中的峰值为超出峰值阈值的部分;
根据序列数据计算出初始异常阈值,其中,所述序列数据包括序列总长度、峰值阈值、峰值个数、风险概率,所述风险概率为待调整的超参;
使用所述待检测的KPI时间序列的数据更新所述初始异常阈值,得到最终的阈值。
8.如权利要求1所述的方法,其特征在于,所述使用空间回归算法对异常进行评估,包括:
步骤S1:从对照组中简单随机选取出采样对照组,其中,所述对照组为与发生软件变更的机器部署相同服务且未发生软件变更的机器中的相关指标,所述采样对照组数据包括变更前后的时间序列矩阵;
步骤S2:根据变更前的对照组的时间序列矩阵和变更前的待检测的实验组的时间序列向量学习出线性回归参数;
步骤S3:使用学习到的参数和对照组变更前后的时间序列矩阵来预测变更前后的待测试时间序列向量;
步骤S4:重复步骤S1、S2、S3,得到预测时间序列向量组;
步骤S5:将所述预测时间序列向量组,计算在同一时间点上不同预测时间向量的值的中位数,得到一个新的预测向量,之后用待测试的变更前后的时间序列和新的预测向量做差,得到变更前后的差值序列;
步骤S6:使用健壮性秩次检验比较变更前的差值序列和变更后的差值序列,得到显著性差异分数;
步骤S7:设定阈值与所述显著性差异分数比较,若超过阈值,确定为软件变更导致的异常,否则为其他原因导致的异常。
9.如权利要求1所述的方法,其特征在于,对获取到的KPI时间序列进行中位差检验,判断得到序列上所有数据点都低于中位差检验的阈值;或根据阈值与曲线上的每个点的异常分数的比较,判断得到曲线不含有异常点,确定软件变更后处于健康状态。
10.一种通过AI的方式对软件变更后的健康状态进行评估的装置,其特征在于,包括中位差检验模块、异常分数确定模块、异常点检测模块、评估模块,其中:
所述中位差检验模块,用于获取待检测的KPI时间序列,并对获取到的KPI时间序列进行中位差检验;
所述异常分数确定模块,用于若检测到某个数据点高于中位差检验的阈值,则对所述KPI时间序列的曲线进行无监督异常检测,得到每个点对应的异常分数;
所述异常点检测模块,用于将异常分数作为极值理论的输入来确定阈值,根据阈值与曲线上的每个点的异常分数的比较来判断曲线是否有异常点;
所述评估模块,用于若曲线有异常点,使用空间回归算法对曲线进行评估,判断异常的种类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210187810.7A CN114816901A (zh) | 2022-02-28 | 2022-02-28 | 通过ai的方式对软件变更后的健康状态进行评估的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210187810.7A CN114816901A (zh) | 2022-02-28 | 2022-02-28 | 通过ai的方式对软件变更后的健康状态进行评估的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114816901A true CN114816901A (zh) | 2022-07-29 |
Family
ID=82529453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210187810.7A Pending CN114816901A (zh) | 2022-02-28 | 2022-02-28 | 通过ai的方式对软件变更后的健康状态进行评估的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114816901A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115599657A (zh) * | 2022-12-15 | 2023-01-13 | 浪潮通信信息系统有限公司(Cn) | 软件设施异常判断方法 |
CN116773169A (zh) * | 2023-06-20 | 2023-09-19 | 南通思诺船舶科技有限公司 | 一种推进轴健康管理方法及系统 |
CN116991745A (zh) * | 2023-09-21 | 2023-11-03 | 清华大学 | 一种面向软件变更的适应性弱点检测方法 |
CN117454096A (zh) * | 2023-12-25 | 2024-01-26 | 西安高商智能科技有限责任公司 | 一种电机生产质量检测方法及系统 |
CN117527611A (zh) * | 2023-11-07 | 2024-02-06 | 北京太极信息系统技术有限公司 | 一种基于高斯分布的故障动态预测方法及相关装置 |
-
2022
- 2022-02-28 CN CN202210187810.7A patent/CN114816901A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115599657A (zh) * | 2022-12-15 | 2023-01-13 | 浪潮通信信息系统有限公司(Cn) | 软件设施异常判断方法 |
CN116773169A (zh) * | 2023-06-20 | 2023-09-19 | 南通思诺船舶科技有限公司 | 一种推进轴健康管理方法及系统 |
CN116773169B (zh) * | 2023-06-20 | 2024-04-26 | 南通思诺船舶科技有限公司 | 一种推进轴健康管理方法及系统 |
CN116991745A (zh) * | 2023-09-21 | 2023-11-03 | 清华大学 | 一种面向软件变更的适应性弱点检测方法 |
CN116991745B (zh) * | 2023-09-21 | 2023-12-29 | 清华大学 | 一种面向软件变更的适应性弱点检测方法 |
CN117527611A (zh) * | 2023-11-07 | 2024-02-06 | 北京太极信息系统技术有限公司 | 一种基于高斯分布的故障动态预测方法及相关装置 |
CN117527611B (zh) * | 2023-11-07 | 2024-06-07 | 北京太极信息系统技术有限公司 | 一种基于高斯分布的故障动态预测方法、系统、电子设备及存储介质 |
CN117454096A (zh) * | 2023-12-25 | 2024-01-26 | 西安高商智能科技有限责任公司 | 一种电机生产质量检测方法及系统 |
CN117454096B (zh) * | 2023-12-25 | 2024-03-01 | 西安高商智能科技有限责任公司 | 一种电机生产质量检测方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114816901A (zh) | 通过ai的方式对软件变更后的健康状态进行评估的方法 | |
Chen et al. | Hidden Markov model with auto-correlated observations for remaining useful life prediction and optimal maintenance policy | |
JP5284503B2 (ja) | 予測的状態監視のための診断システムおよび方法 | |
Niu et al. | Intelligent condition monitoring and prognostics system based on data-fusion strategy | |
CN111542846A (zh) | 故障预测系统和故障预测方法 | |
US8255100B2 (en) | Data-driven anomaly detection to anticipate flight deck effects | |
US8347144B2 (en) | False alarm mitigation | |
EP2837984B1 (en) | Process to optimize the maintenance of technical systems | |
DE102010038827A1 (de) | Verfahren und System für die Fehlervorhersage mit Hilfe eines Agenten | |
CN112416643A (zh) | 无监督异常检测方法与装置 | |
WO2023065584A1 (zh) | 设备的剩余使用寿命的确定方法、装置和电子设备 | |
JP6176979B2 (ja) | プロジェクト管理支援システム | |
JP2018116693A5 (zh) | ||
CN111262750B (zh) | 一种用于评估基线模型的方法及系统 | |
KR102356346B1 (ko) | 센서기반 미세먼지 정보 처리 고도화를 위한, 보간 및 이상데이터 탐지 및 수정 시스템 | |
CN113114529B (zh) | 基于条件变分自动编码器的kpi异常检测方法、装置和计算机存储介质 | |
CN112416662A (zh) | 多时间序列数据异常检测方法与装置 | |
Blancke et al. | A holistic multi-failure mode prognosis approach for complex equipment | |
CN110858812A (zh) | 网元割接值守方法及装置 | |
JP7296548B2 (ja) | 作業効率評価方法、作業効率評価装置、及びプログラム | |
Kamariotis et al. | A metric for assessing and optimizing data-driven prognostic algorithms for predictive maintenance | |
CN115081647A (zh) | 基于贝叶斯网络模型的工业智能仪表故障预诊断方法 | |
KR102366922B1 (ko) | 시계열적 절연 진단 정보 기반의 중전기기 열화 예측 시스템 및 그 방법 | |
CN114357858A (zh) | 一种基于多任务学习模型的设备劣化分析方法及系统 | |
CN116049642A (zh) | 一种故障诊断方法、系统、电子设备及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |