CN115690681A - 异常判断依据的处理方法、异常判断方法及装置 - Google Patents
异常判断依据的处理方法、异常判断方法及装置 Download PDFInfo
- Publication number
- CN115690681A CN115690681A CN202211369706.6A CN202211369706A CN115690681A CN 115690681 A CN115690681 A CN 115690681A CN 202211369706 A CN202211369706 A CN 202211369706A CN 115690681 A CN115690681 A CN 115690681A
- Authority
- CN
- China
- Prior art keywords
- data
- range
- mean
- abnormal
- variance
- 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
Landscapes
- Testing And Monitoring For Control Systems (AREA)
Abstract
本申请公开了异常判断依据的处理方法、异常判断方法及装置,该方法包括:获取从监控对象进行数据采集得到的多个数据,所述多个数据是在预定时间范围内采集的;计算所述多个数据的均值,并根据所述均值计算得到标准差;根据所述均值和所述标准差确定数据范围,所述数据范围的下限是所述多个数据的均值减去K个标准差,所述数据范围的上限是所述多个数据的均值加上K个标准差,所述K为正整数;所述数据范围用于确定从所述监控对象中采集的数据是否为异常数据,未落入到所述数据范围则为异常数据。通过本申请解决了人工配置异常数据判断规则所导致的消耗大量人力以及可能出现错误配置的问题,进而提高了异常数据判断规则配置的效率和准确性。
Description
技术领域
本申请涉及到网络技术领域,具体而言,涉及异常判断依据的处理方法、异常判断方法及装置。
背景技术
当前云网络规模变得越来越大,为了给更多的用户提供服务,在云网络中有大量的设备和服务,这些设备和服务需要进行监控以能够及时发现异常,降低异常对云网络用户的影响。
由于云网络中的待监控的网络指标众多,并且这些网络指标一直在产生数据,这些数据是随着时间的进行而不断产生的,因此,这些数据被称作是时序数据。时序数据也可以称作是时间序列数据,其是针对网络设备或者运行在网络上的程序中的指标按照时间顺序采集并记录的数据,通过时序数据可以判断出该网络指标是否出现异常。
在通过时序数据对网络指标是否会出现异常进行判断的时候,可以依靠维护人员人工进行判断,但是这种判断方式效率比较低,并且依赖于维护人员的经验。为了解决这个问题可以使用算法来判断时序数据是否出现异常,在算法中一般会针对某个指标对应的时序数据设置固定阈值,在采集到的数据超过该阈值的情况下,确定出现了异常,该采集到的数据为异常数据。
对于大规模云网络环境下的时序指标故障监控的场景而言,由于时序指标的类型众多,针对不同类型的时序数据不能使用统一的阈值来进行监控,因此,需要针对不同的时序数据来配置不同的阈值。在现有技术中,通常依赖人工经验进行异常数据判断规则的配置,人工配置需要消耗大量的人力,而且受制于维护人员的经验,规则配置过程中有可能出现错误配置,从而导致无法监控到网络所出现的异常。
发明内容
本申请实施例提供了异常判断依据的处理方法、异常判断方法及装置,以至少解决人工配置异常数据判断规则所导致的消耗大量人力以及可能出现错误配置的问题。
根据本申请的一个方面,提供了一种异常判断依据的处理方法,包括:获取从监控对象进行数据采集得到的多个数据,其中,所述多个数据是在预定时间范围内采集的;计算所述多个数据的均值,并根据所述均值计算得到标准差;根据所述均值和所述标准差确定数据范围,其中,所述数据范围的下限是所述多个数据的均值减去K个标准差,所述数据范围的上限是所述多个数据的均值加上K个标准差,所述K为正整数;所述数据范围用于确定从所述监控对象中采集的数据是否为异常数据,其中,未落入到所述数据范围则为异常数据。
根据本申请的另一个方面,还提供了一种异常判断方法,包括:从监控对象采集数据,其中,所述数据用于判断所述监控对象是否出现异常;将采集到的所述数据与预先得到的数据范围进行比较,其中,所述数据范围是根据上述异常判断依据的处理方法得到的;如果采集到的所述数据未在所述数据范围内,则确定所述数据为异常数据,其中,所述异常数据用于指示所述监控对象出现异常。
根据本申请的另一个方面,还提供了一种异常判断依据的处理装置,包括:获取模块,用于获取从监控对象进行数据采集得到的多个数据,其中,所述多个数据是在预定时间范围内采集的;计算模块,用于计算所述多个数据的均值,并根据所述均值计算得到标准差;确定模块,用于根据所述均值和所述标准差确定数据范围,其中,所述数据范围的下限是所述多个数据的均值减去K个标准差,所述数据范围的上限是所述多个数据的均值加上K个标准差,所述K为正整数;所述数据范围用于确定从所述监控对象中采集的数据是否为异常数据,其中,未落入到所述数据范围则为异常数据。
根据本申请的另一个方面,还提供了一种异常判断装置,包括:采集模块,用于从监控对象采集数据,其中,所述数据用于判断所述监控对象是否出现异常;比较模块,用于将采集到的所述数据与预先得到的数据范围进行比较,其中,所述数据范围是根据上述异常判断依据的处理方法得到的;判断模块,用于如果采集到的所述数据未在所述数据范围内,则确定所述数据为异常数据,其中,所述异常数据用于指示所述监控对象出现异常。
根据本申请的另一个方面,还提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述的方法步骤。
根据本申请的另一个方面,还提供了一种可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现上述的方法步骤。
在本申请实施例中,采用了获取从监控对象进行数据采集得到的多个数据,其中,所述多个数据是在预定时间范围内采集的;计算所述多个数据的均值,并根据所述均值计算得到标准差;根据所述均值和所述标准差确定数据范围,其中,所述数据范围的下限是所述多个数据的均值减去K个标准差,所述数据范围的上限是所述多个数据的均值加上K个标准差,所述K为正整数;所述数据范围用于确定从所述监控对象中采集的数据是否为异常数据,其中,未落入到所述数据范围则为异常数据。通过本申请解决了人工配置异常数据判断规则所导致的消耗大量人力以及可能出现错误配置的问题,进而提高了异常数据判断规则配置的效率和准确性。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的时序数据判断模型使用场景示意图;
图2是根据本申请实施例的异常判断依据的处理方法的流程图;
图3是根据本申请实施例的异常判断方法的流程图;以及,
图4是根据本申请实施例的通过累加与合并来计算基线的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
下面首先对以下实施方式中涉及到的技术术语进行说明。
鲁棒性
用于衡量遇到异常情况下能否保持计算性能稳定的程度,鲁棒性越高说明在异常情况下计算性能越稳定。
空间复杂度
空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度,记做O()。例如,空间复杂度为O(1):表示算法只需要占用少量的临时工作单元,而且不随问题规模的大小而改变,这种算法是节省存储的算法。空间复杂度为O(n):表示算法需要占用的临时工作单元与解决问题的规模n有关,它随着n的增大而增大,当n较大时,将占用较多的存储单元,例如快速排序和归并排序算法就属于这种情况。
粗大误差
粗大误差可以简称为粗差。在一定的测量条件下,超出规定条件下预期的误差称为粗大误差,一般地,按一定条件分布确定一个临界值,凡是超出临界值范围的值,就是粗大误差,它又叫做粗误差或寄生误差。粗大误差也是指明显超出规定条件下预期的误差,因而它也是明显歪曲测量结果的误差。产生粗大误差的原因,有主观因素,也有客观因素。
3σ
σ的读音为西格玛,对应的英文为sigma,因此3σ也称作是3sigma或者3西格玛。在正态分布中σ代表标准差,μ代表均值。3σ原则为数值分布在(μ-σ,μ+σ)中的概率为0.6827,数值分布在(μ-2σ,μ+2σ)中的概率为0.9545;数值分布在(μ-3σ,μ+3σ)中的概率为0.9973。可以认为,取值几乎全部集中在(μ-3σ,μ+3σ)区间内,超出这个范围的可能性仅占不到0.3%。计算方法如下:
(1)先算样本均值μ:
μ=(1/n)*(a0+a1+...+an-1),其中,a0到an-1表示n个采集得到的样本值,这个n个样本值构成了时序数据。
(2)再算样本的方差sigma2:
sigma2=[1/(n-1)]*[(a0-μ)2+(a1-μ)2+...+(an-1-μ)2]
(3)把样本的方差sigma2开根号就是样本的标准差:
正态分布
正态分布(Normal Distribution)又名高斯分布(Gaussian Distribution),是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力。若随机变量X服从一个数学期望为μ、标准方差为σ2的高斯分布,记为:则其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。因其曲线呈钟形,因此又经常称之为钟形曲线。
在以下实施方式中,涉及到对监控对象对应的数据进行采集,这里的监控对象可以是网络中的各种硬件设备,例如,服务器、交换机、路由器等,或者,监控对象也是网络中的软件,例如,提供网页服务的服务程序,在监控的时候可以针对待监控对象的不同方面来进行数据采集,例如,在云网络中,可以采集服务器、交换机、路由器等各种网络设备的带宽、丢包率等网络指标,也可以采集这些网络设备的内存占用率、存储空间等资源指标;又例如,可以采集提供网页服务的服务程序的CPU占用率等。在进行数据采集的时候会根据采集时间的要求来采集不同时刻对应的数据,例如,每间隔1分钟就对服务器的带宽进行一次采集,这样采集测到的数据是随时间变化的数据,因此,在以下实施方式中,也将从监控对象采集到的数据称为时序数据。从监控对象中可以根据各种指标来进行数据采集,只要采集到的指标对应的数据是随时间变化的时序数据则均可以应用以下的实施方式。
时序异常检测是从正常的时间序列数据中识别不正常的事件或行为的过程,即通过对大量历史时序数据(如根据各种机器指标或网络指标采集到的数据)等建模,形成异常检测模型来判断当前采集的数据是否属于异常值,从而为运维人员进行根因定位、漏洞修复、影响评估等提供依据。例如,云服务提供商对于故障原因的定位有时间限制,快速的定位云服务故障原因意味着能够快速做出运维操作保证客户服务可用性,其中机器指标的异常如CPU使用率、磁盘利用率等可以帮助运维人员定位原因,所以时序数据的异常检测的准确性和实时性非常重要。由于大型服务往往有数万台机器、数百个指标的时序数据,如何在海量的时序数据中进行准确、快速的异常检测是一项重要挑战。在异常检测的实现中,对历史数据分布进行合理建模是识别正常数据和偏离正常分布的异常数据的关键。图1是根据本申请实施例的时序数据判断模型使用场景示意图,如图1所示,时序数据的采集可以是一种持续行为,在图1中,可以持续从网络设备或者服务器针对相应的指标来采集时序数据,这些采集到时序数据可以通过另一个具有计算能力的服务器来进行汇总,通过该汇总可以得到时序数据的规律,然后可以根据汇总历史数据得到的该规律来生成模型,该模型最终会用于采集到的数据是否异常数据。该模型可以运行在任何具有计算能力的网络设备上,例如,在图1针对网络设备和服务器来进行异常数据的判断,该模型可以运行在该网络设备或服务器上,当然,该模型也可以运行在除网络设备和该服务器之外的其他设备上。
由于在以下实施方式中会根据采集得到的时序数据来判断是否该时序数据来源的设备或者程序是否出现异常,在各种网络设备中,有些网络设备是具有计算能力的,例如,服务器是具有计算能力的。以下实施方式可以直接应用到具有计算能力的网络设备,这些网络设备可以从自身采集数据来判断自己运行是否正常,这些网络设备也可以通过网络连接其他设备,从其他设备采集数据并判断其他设备的运行是否正常。除了具有计算能力的网络设备,还些网络设备的计算能力不足以根据采集的数据来判断是否出现异常,例如,交换机,此时可以由与交换机连接的、并用于对交换机进行管理和维护的设备来采集交换机相应指标对应的数据,并判断是否出现异常。只要是能够采集自身指标对应的时序数据或者通过网络采集其他设备上指标对应的时序数据的网络设备或用于对网络设备进行维护和管理的设备(该设备也是一种类型的网络设备)均可以应用以下实施方式。
对于网络设备或程序的不同指标而言,均可以采集该指标对应的时序数据,然后对该时序数据进行处理。需要说明的是,由于时序数据是按照时间顺序采集得到的,随着时间的推移,时序数据一直会被采集到,在进行异常判断的时候,可以对一段时间内(或者预定时间范围内)采集到的时序数据进行处理,得到判断采集到的数据是否为异常数据的依据。
由于在现有技术中判断异常数据的依据是根据人工设置的阈值来进行判断,这种依赖人工经验进行异常数据判断规则的配置,需要消耗大量的人力,而且受制于维护人员的经验,规则配置过程中有可能出现错误配置,从而导致无法监控到网络所出现的异常。
为了解决这个问题,在以下实施方式中提供了一种异常判断依据的处理方法,图2是根据本申请实施例的异常判断依据的处理方法的流程图,需要说明的是,图2中示出的步骤S202到步骤S206可以用来生成某个指标对应的数据范围,该数据范围用于进行判断异常数据。例如,监控对象是用于提供视频的服务程序,如果需要判断网络质量,则可以针对网络延时来采集数据,然后根据采集的网络延时来确定网络延时对应的正常数据的数据范围。在需要判断其他指标的数据是否出现异常,则可以根据采集到的其他指标的数据来生成相应的数据范围。在实际应用时,根据需要选择不同的指标进行数据采集即可,然后通过图2中的步骤就可以得到该指标对应的数据范围。下面对图2中的方法所涉及到的步骤进行说明。
步骤S202,获取从监控对象进行数据采集得到的多个数据,其中,所述多个数据是在预定时间范围内采集的。
在该步骤中,如果监控对象的数据采集一直在持续进行中,则获取历史上采集的数据即可,在这里可以根据需要确定获取哪个时间范围内的数据。例如,在监控对象是用于提供视频服务的服务器的情况下,如果需要监控器带宽使用情况,考虑到大多数用户在一天内观看视频的时间段基本上是固定的,如每天中午11点到13点,晚上20点到凌晨1点等,即视频服务器的带宽的变化规律在每天基本上是相同的,因此,如果需要得到带宽对应的正常的数据范围,则获取一天内的数据即可,例如,可以获取前一天0点到24点内采集的数据,然后执行步骤S204和步骤S206中的计算。针对不同的类型的监控对象,或者针对不同类型的监控对象中的监控指标,可以设置不同的时间范围,然后根据这些设置的时间范围来从历史上保存的采集到的数据中获取即可。
步骤S204,计算所述多个数据的均值,并根据所述均值计算得到标准差。
假设所述多个数据的数量为n,由于数据的英文为Data,因此在以下实施方式中使用D来表示数据,该步骤中的多个数据可以表示为:数据D1、数据D2……数据Dn。计算均值和标准差的公式是现有的公式,计算所述多个数据的均值μ的公式为:
μ=(1/n)*(D1+D2+...+Dn)。
计算所述多个数据的标准差的公式为:
步骤S206,根据所述均值和所述标准差确定数据范围,其中,所述数据范围的下限是所述多个数据的均值减去K个标准差,所述数据范围的上限是所述多个数据的均值加上K个标准差,所述K为正整数;所述数据范围用于确定从所述监控对象中采集的数据是否为异常数据,其中,未落入到所述数据范围则为异常数据。
在该步骤中,可以根据不同监控对象来确定数据范围,例如,有的监控对象采集到的数据比较稳定,如内存占用率,一旦内存占用率降低或者升高的比较多则说明出现异常,在这种情况下K可以选择1,此时对应的是1西格玛。又例如,有的监控对象采集到的数据上下浮动比较大,如网络的带宽占用率,带宽占用率的浮动范围比较大,在这种情况下K可以选择3,此时对应的是3西格玛。又例如,有的监控对象采集的数据基本出现异常的概率很低,即采集到的数据只要特别大或者特别小才说明出现异常,如存储空间使用量,对于存储空间来说其使用的多或者少可能均属于正常,只有一些如存储空间满或者存储空间使用量很小才表示出现了异常,在这种情况下K可以选择6,此时对应了6西格玛。对于1个西格玛来说,68.27%的数据均正常数据,对于2个西格玛来说95.45%的数据均为正常数据,对于3个西格玛来说99.73%的数据为正常数据,对于4个西格玛来说99.9937%的数据为正常数据,对于5个西格玛来说99.999943%的数据为正常数据,对于6个西格玛来说99.9999998%的数据为正常数据。通过K从1到6的不同取值可以看出,3个西格玛和6个西格玛之间的区别并不是很大,因此建议通常使用时选择K等于3即可。如果希望识别出更多的异常数据可以选择1西格玛和2西格玛,此时会上报更多的异常数据,但是可能会存在一定程度的误报。在实际实施是可以根据监控对象和监控需求来选择不同的K值。
在上述步骤中,通过获取历史对监控对象采集得到的数据,计算这些数据的平均值(简称为均值)和标准差,然后通过平均值和标准差获取用于进行异常数据判断的数据范围。通过上述步骤得到的数据范围是基于历史上采集到的监控对象的真实数据计算得到的,并不需要人工的经验。并且,考虑到在异常的发生是少数情况,即历史上采集的数据基本均是正常数据,通过这些真实数据计算出的数据范围更加能够体现出正常数据的特征,在一定程度上能够提高异常数据识别的准确度,因此,通过上述步骤解决了人工配置异常数据判断规则所导致的消耗大量人力以及可能出现错误配置的问题,进而提高了异常数据判断规则配置的效率和准确性。
通过上述描述可知,计算多个数据的平均值和标准差是非常重要的步骤。上述步骤S204中列举出的是计算平均值和标准差的数学公式。在实际进行计算的时候是通过计算设备来进行计算的,在进行多个数据的数值计算时需要将这些数值均保存在内存中,然后通过读取内存中的这些数据来进行计算。对于从监控对象采集的数据来说,其数量是非常大的。例如,在采集丢包率时,一般情况下每秒钟均会采集一次数据,每个小时就会采集到3600个数据,如果计算一天时间的所有数据的平均值和标准差,则需要对24*3600个数据进行计算,这需要很大的内存空间来保存这些数据。另外还有一些其他的监控对象需要进行数据采集的频率更高,得到的数据量更大,需要更多的资源来进行计算。因此,如果将采集到的多个数据通过上述公式一次性计算平均值和标准差,则该需要的内存空间随着数据量的增加而增加,其空间复杂度为O(n),即表示算法需要占用的内存空间与数据规模n有关,它随着n的增大而增大,当n较大时,将占用较多的内存空间。在网络设备中内存空间是比较宝贵的资源,如果一个算法占用过多的内存空间,则该算法可能无法在很多网络设备上实际应用。
考虑到这个问题,在一个可选的实施方式中,可以采用每个数据累加计算平均值和标准差的方式来进行。下面通过两个简单的算法来说明这个问题,在这两个算法中,算法1没有使用累加的方式计算,算法2使用了累加的方式计算。
算法1:求1、2、3的平均值,可以首先将1+2+3相加等于6,然后将6除3等于2,这样就可以得到这三个数据的平均值。在另一个算法2中,先求1的平均值,当然,1个数的平均值就是自己,因此1的平均值为1;然后再增加2之后,用2-之前得到的平均值,然后处于数字的个数(1和2是两个数字,即数字的个数为2),此时得到0.5,在将0.5加上之前得到的平均值1就可以得到1和2的平均值1.5;然后在使用1.5和3计算新的平均值,这种平均值方法虽然在数学上与将所有数据直接相加然后处于数据个数的方法得到的结果相同,但是对于计算机而言,算法1需要的内存空间与数据的数量有关,而算法2每次只需要根究之前的平均值和下一个数据的值来进行新的平均值即可,其需要的内存空间是固定的,因此算法2的空间复杂度为O(1),即表示算法只2需要占用少量的临时工作单元,而且不随问题规模的大小而改变,这种算法2是节省内存空间的算法。基于同样的原理,也可以通过叠加的方式计算标准差。
即在该可选实施方式中,计算所述多个数据的均值并根据所述均值计算所述标准差包括:计算所述多个数据中的m个数据的第一均值,根据所述m个数据的均值计算所述m个数据的第一方差,其中,所述多个数据为:数据D1、数据D2……数据Dm、数据Dm+1……数据Dn,m小于n,所述n为所述多个数据的数量;根据所述第一均值和数据Dm+1的值计算从数据D1到数据Dm+1的均值,并根据数据D1到数据Dm+1的均值、所述第一方差和数据Dm+1的值计算从数据D1到数据Dm+1的方差;根据数据D1到数据Dm+1的均值和数据Dm+2的值计算从数据D1到数据Dm+2的均值,并根据数据D1到数据Dm+2的均值、数据D1到数据Dm+1的方差和数据Dm+2的值计算从数据D1到数据Dm+2的方差;依次类推,根据数据D1到数据Dn-1的均值和数据Dn的值计算从数据D1到数据Dn的均值,并根据数据D1到数据Dn的均值、数据D1到数据Dn-1的方差和数据Dn的值计算从数据D1到数据Dn的方差;方差是标准差的平方,根据方差就可以计算得到标准差了。
通过该可选实施方式,可以首先计算m个数据的平均值和方差,然后对于其余数据进行逐个数据的累加计算,这样每次计算的时候均需要在内存中保存之前计算得到的平均值、方差以及上一次计算使用的数据的数量即可,然后使用下一个数据进行累加计算,其占用的内存空间与数据的数量n无关,即该可选实施方式中的算法的空间复杂度为O(1)。需要说明的是,m可以是小于n的任意一个数,从代码实现的角度来说,m为1是比较容易实现,即对每个数据均进行累加方式的计算,最终得到所述多个数据的均值和标准差。
通过累加计算得到平均值和方差的方式有很多种,下面给出了一种可选的累加计算的方法。
根据数据D1到数据Dm+i的均值和数据Dm+i+1的值使用如下公式计算从数据D1到数据Dm+i+1的均值:
根据数据D1到数据Dm+i+1的均值、数据D1到数据Dm+i的方差和数据Dm+i+1的值使用如下公式计算从数据D1到数据Dm+i+1的方差:
通过上述累加公式对多个数据进行逐一累加就可以得到n个数据的平均值和方差,并且,还可以节约计算过程中所使用的内存空间,使得上述异常数据判断方案更容易在各种网络设备中实施。
上述累加计算的方式为了解决算法的空间复杂度,但是这种累加计算对计算时间的消耗会增加,为了加快运算速度,可以将多个数据拆分为多个组,每个组内的多个数据均可以采用上述累加计算的方式来进行计算,然后多个组中的每个组的计算可以并行执行。即在该可选实施方式中,计算所述多个数据的均值并根据所述均值计算所述标准差包括:将所述多个数据分为多个组;计算每个组内的数据的均值,并根据每个组内的数据的均值计算该组数据的方差;根据每个组的均值和方差分别计算所述多个数据的均值和标准差。通过该可选实施方式,不仅仅降低了计算的空间复杂度,还能够提高计算效率,缩短计算时间。
上述实施方式中,采用了K-sigma的算法,这主要是基于时序数据基于正态分布的特性。在正态分布的一组数据中,有一个前提就是假设该组数据只含有随机误差,然后对其进行计算处理得到标准偏差,按一定概率确定一个区间,认为凡超过这个区间的误差,就不属于随机误差而是粗大误差,对于粗大误差就认为是异常数据。在使用历史采集到的数据进行数据范围计算的时候,虽然这些数据中包括粗大误差的概率比较低,但是为了降低粗大误差对计算数据范围可能带来的影响,在一个可选的实施方式中,可以将历史采集到的数据进行筛选,将不含有预定数量个极值的数据作为计算数据范围的多个数据。即获取从所述监控对象进行数据采集得到的多个数据包括:获取在所述预定时间范围内从所述监控对象采集到的数据;将从所述监控对象采集到的数据中除预定数量N1个数值最大或最小的数据(TOP N1)之外的其余数据,作为用于计算所述均值和所述标准差的所述多个数据。通过该可选实施方式,用于计算数据范围的多个数据中并不包括可能是异常数据的数据,从而可以得到的数据范围更加准确。
在历史数据中筛选出TOP N1的方式可以是将所有的数据进行排序,然后就可以得到TOP N1,但是这种筛选方式的空间复杂度也比较高,为了节约内存空间,可以在进行累加计算的时候来进行比较筛选。例如,可以开辟一个堆,将获取到的历史数据中的N1个数据保存到该堆中,然后从剩余的数据中的第一个数据开始计算,将第一个数据与堆中的数据(假设堆中保存的数据是数据值最大的)进行比较,如果第一个数据大于堆中的数值最小的数据则将第一个数据放到堆中,从堆中去除最小的一个数据作为一个数据进行平均值和标准差的计算。然后从剩余的数据中获取第二个数据,第二个数据与堆中的数据进行比较,如果第二个数据均小于堆中的数据,则直接使用第二个数据来计算平均值和标准差,如果第二个数据大于堆中数值最小的数据,则将第二个数据放入堆中,将堆中数值最小的数据作为第二个数据来计算平均值和方差,依次类推,直到计算完毕。即在该可选实施方式中,将所述预定数量个数值最大或最小的数据保存在堆中,根据数据D1到数据Dm+i的均值和数据Dm+i+1的值计算从数据D1到数据Dm+i+1的均值之前,所述方法还包括:在所述堆中保存的数据为预定数量个数值最大的数据的情况下,将数据Dm+i+1的值与所述堆中的数据的最小数值进行比较,如果数据Dm+i+1的值大于所述堆中的数据的最小数值,将数据Dm+i+1放入所述堆中,将所述堆中的最小数值的数据取出作为数据Dm+i+1;和/或,在所述堆中保存的数据为预定数量个数值最小的数据的情况下,将数据Dm+i+1的值与所述堆中的数据的最大数值进行比较,如果数据Dm+i+1的值小于所述堆中的数据的最大数值,将数据Dm+i+1放入所述堆中,将所述堆中的最大数值的数据取出作为数据Dm+i+1。
通过该可选的实施方式,可以将剔除最大值和最小值的过程与计算平均值和标准差的过程融合在一起进行,一方面可以解决计算数据范围的数据中可能存在粗大误差所导致的计算不准确的问题,另一方面还可以解决算法对内存空间占用比较大的问题。
在计算得到数据范围之后,就可以使用该数据范围来判断异常数据了。图3是根据本申请实施例的异常判断方法的流程图,下面对图3示出的异常判断方法中包括的步骤进行说明。
步骤S302,从监控对象采集数据,其中,所述数据用于判断所述监控对象是否出现异常。
步骤S304,将采集到的所述数据与上述实施方式中得到的数据范围进行比较。
步骤S306,如果采集到的所述数据未在所述数据范围内,则确定所述数据为异常数据,其中,所述异常数据用于指示所述监控对象出现异常。
通过上述步骤,将采集到的数据与数据范围进行比较,就可以确定出该数据是否为异常数据。作为一个可选的实施方式,还可以预先得到多个数据范围,每个数据范围的K值不同,如可以得到三个数据范围,其中第一个数据范围的K为1,第二个数据范围的K值为2,第三个数据范围的K值为3。待判断数据如果超过了不同的数据范围则发出的告警级别不同,如超过第一个数据范围该告警级别为1,超过了第二个数据范围则告警级别为2,超过到了第三个数据范围则告警级别为3,不同的告警级别对应了不同的紧急程度,还可以对应不同的处理措施等。
图3中使用的数据范围可以是根据历史上最新采集的数据计算得到的,即将采集到的所述数据与预先得到的数据范围进行比较可以包括如下步骤:将采集到的所述数据与上一个预定时间范围采集的多个数据计算得到的数据范围进行比较,其中,所述上一个预定时间范围是距离从所述监控对象采集所述数据的时间点最近并且在所述时间点之前的时间范围。例如,可以将前一天的数据作为历史数据来计算数据范围,然后使用该数据范围对今天采集到的所有数据进行是否为异常数据的判断。通过该可选实施方式可以做到数据范围随时间的变化而更新,能够进一步提高异常数据判断的准确性。
上述实施方式中使用的均是时序数据,时序数据是按照预定时间要求采集到的数据,因此,随着时间前进会持续从监控对象采集到数据,这些数据也可以看作是一种数据流,对于数据流的处理在现有技术中有很多成熟的流计算框架,在一个可选的实施方式中可以选择有累加(Accumulate)和合并(Merge)功能的流计算框架来实现上述可选实施方式中的累加计算和分组之后的合并计算。
图4是根据本申请实施例的通过累加与合并来计算基线的示意图,如图4所示,首先获取历史上采集的时序数据(也可以称作数据流或流数据),然后创建一个累加器(Accumulator),该累加器用于实现上述的累加计算。在对每个组的数据均进行累加计算后,得到每个组的平均值和标准差,再对每个组的平均值和标准差进行合并(Merge)得到数据范围(即基线),将基线保存在数据库中。在判断异常数据的时候,从数据库中读取基线,由于数据库中可以保存根据不同时间范围的数据计算得到的多个基线,因此可以根据需要选择所使用的基线。然后将采集的时序数据与基线进行比较,如果超过了K西格玛的范围,则认为是异常数据,如果没超过则为正常数据。
在图4中,可以根据一天的数据计算高斯分布的参数即均值和标准差,然后根据均值和标准差计算基线(即数据范围),在计算基线时使用了Accumulate和Merge函数。下面对这两个函数的原理通过代码来进行说明。在如下代码中,minHeap(即acc.minHeap)为最小堆,用来保存数据中Top N1个数值最小的数据;avg(即acc.avg)表示平均值,初始值为0;variance(即acc.variance)为方差,初始值为0;num(即acc.num)为已经计算平均值和方差的数据的个数,初始值为0;v采集到的每个数据的值。
下面对Merge进行说明。在Merge中,将多个数据分布在不同的累加器中,对于不同的累加器通过Merge也是进行逐一合并,因此,使用了当前累加器(currentAccumulator)和其他累加器(othersAccumulator)来进行区分。
在上述Merge中,将other中的最小堆清空合并到当前的最小堆,如果超过最小堆的容纳能力的话,按照上述的accumulatge函数再次累积计算当前的平均值和方差。
通过上述函数,使用容纳能力为N1的最小堆存储当前的Top N1,并且这些值不参与计算,并且均值和方差的计算为了节省内存,只保存上一次计算的均值方差结果以及数据规模,根据上一次计算结果和当前数据值推算出当前计算的均值和方差结果。上述涉及到合并,不同accumulator之间的合并需要根据分组情况求总体均值方差。
通过上述步骤将得到的基线按照时间分别保存在数据库中,每天加载数据库中的最新基线,进行3sigma的判断,如果超过的即为异常数据进行保存。
上述实施方式中的方案鲁棒性高:通过过滤Top N1的值有效的避免粗大误差带来的分布影响;资源消耗低:通过最小堆的进、出,以及均值方差的递推和合并,将均值方差的推导通过流式实现,将空间复杂度从O(n)降低到O(1),大幅提高计算效率。
在本实施例中,提供一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行以上实施例中的方法。
上述程序可以运行在处理器中,或者也可以存储在存储器中(或称为计算机可读介质),计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
这些计算机程序也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤,对应与不同的步骤可以通过不同的模块来实现。
该本实施例中就提供了这样的一种装置,该装置被称为一种异常判断依据的处理装置,包括:获取模块,用于获取从监控对象进行数据采集得到的多个数据,其中,所述多个数据是在预定时间范围内采集的;计算模块,用于计算所述多个数据的均值,并根据所述均值计算得到标准差;确定模块,用于根据所述均值和所述标准差确定数据范围,其中,所述数据范围的下限是所述多个数据的均值减去K个标准差,所述数据范围的上限是所述多个数据的均值加上K个标准差,所述K为正整数;所述数据范围用于确定从所述监控对象中采集的数据是否为异常数据,其中,未落入到所述数据范围则为异常数据。
该系统或者装置用于实现上述的实施例中的方法的功能,该系统或者装置中的每个模块与方法中的每个步骤相对应,已经在方法中进行过说明的,在此不再赘述。
可选地,所述计算模块用于:计算所述多个数据中的m个数据的第一均值,根据所述m个数据的均值计算所述m个数据的第一方差,其中,所述多个数据为:数据D1、数据D2……数据Dm、数据Dm+1……数据Dn,m小于n,所述n为所述多个数据的数量;根据所述第一均值和数据Dm+1的值计算从数据D1到数据Dm+1的均值,并根据数据D1到数据Dm+1的均值、所述第一方差和数据Dm+1的值计算从数据D1到数据Dm+1的方差;根据数据D1到数据Dm+1的均值和数据Dm+2的值计算从数据D1到数据Dm+2的均值,并根据数据D1到数据Dm+2的均值、数据D1到数据Dm+1的方差和数据Dm+2的值计算从数据D1到数据Dm+2的方差;依次类推,根据数据D1到数据Dn-1的均值和数据Dn的值计算从数据D1到数据Dn的均值,并根据数据D1到数据Dn的均值、数据D1到数据Dn-1的方差和数据Dn的值计算从数据D1到数据Dn的方差;根据数据D1到数据Dn的方差计算所述标准差,其中,所述方差是所述标准差的平方。
可选地,根据数据D1到数据Dm+i的均值和数据Dm+i+1的值使用如下公式计算从数据D1到数据Dm+i+1的均值:从数据D1到数据其中,v为数据Dm+i+1的值,avg为数据D1到数据Dm+i的均值;
根据数据D1到数据Dm+i+1的均值、数据D1到数据Dm+i的方差和数据Dm+i+1的值使用如下公式计算从数据D1到数据Dm+i+1的方差:从数据D1到数据 其中,variance为数据D1到数据Dm+i的方差,i为大于等于0并小于等于n-m-1的整数。
可选地,所述m等于1。
可选地,所述计算模块用于将所述多个数据分为多个组;计算每个组内的数据的均值,并根据每个组内的数据的均值计算该组数据的标准差;根据每个组的均值和标准差分别计算所述多个数据的均值和方差;根据所述多个数据的方差得到所述多个数据的标准差,其中,所述方差是所述标准差的平方。
可选地,所述获取模块用于获取在所述预定时间范围内从所述监控对象采集到的数据;
将从所述监控对象采集到的数据中除预定数量个数值最大或最小的数据之外的其余数据,作为用于计算所述均值和所述标准差的所述多个数据。
可选地,所述计算模块还用于:在所述堆中保存的数据为预定数量个数值最大的数据的情况下,将数据Dm+i+1的值与所述堆中的数据的最小数值进行比较,如果数据Dm+i+1的值大于所述堆中的数据的最小数值,将数据Dm+i+1放入所述堆中,将所述堆中的最小数值的数据取出作为数据Dm+i+1;和/或,在所述堆中保存的数据为预定数量个数值最小的数据的情况下,将数据Dm+i+1的值与所述堆中的数据的最大数值进行比较,如果数据Dm+i+1的值小于所述堆中的数据的最大数值,将数据Dm+i+1放入所述堆中,将所述堆中的最大数值的数据取出作为数据Dm+i+1。
在一种可选的实施方式中,还提供了一种异常判断装置,包括:采集模块,用于从监控对象采集数据,其中,所述数据用于判断所述监控对象是否出现异常;比较模块,用于将采集到的所述数据与预先得到的数据范围进行比较;判断模块,用于如果采集到的所述数据未在所述数据范围内,则确定所述数据为异常数据,其中,所述异常数据用于指示所述监控对象出现异常。
可选地,所述比较模块用于将采集到的所述数据与上一个预定时间范围采集的多个数据计算得到的数据范围进行比较,其中,所述上一个预定时间范围是距离从所述监控对象采集所述数据的时间点最近并且在所述时间点之前的时间范围。
通过上述可选实施方式,解决了人工配置异常数据判断规则所导致的消耗大量人力以及可能出现错误配置的问题,进而提高了异常数据判断规则配置的效率和准确性。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (13)
1.一种异常判断依据的处理方法,包括:
获取从监控对象进行数据采集得到的多个数据,其中,所述多个数据是在预定时间范围内采集的;
计算所述多个数据的均值,并根据所述均值计算得到标准差;
根据所述均值和所述标准差确定数据范围,其中,所述数据范围的下限是所述多个数据的均值减去K个标准差,所述数据范围的上限是所述多个数据的均值加上K个标准差,所述K为正整数;所述数据范围用于确定从所述监控对象中采集的数据是否为异常数据,其中,未落入到所述数据范围则为异常数据。
2.根据权利要求1所述的方法,其中,计算所述多个数据的均值并根据所述均值计算所述标准差包括:
计算所述多个数据中的m个数据的第一均值,根据所述m个数据的均值计算所述m个数据的第一方差,其中,所述多个数据为:数据D1、数据D2……数据Dm、数据Dm+1……数据Dn,m小于n,所述n为所述多个数据的数量;
根据所述第一均值和数据Dm+1的值计算从数据D1到数据Dm+1的均值,并根据数据D1到数据Dm+1的均值、所述第一方差和数据Dm+1的值计算从数据D1到数据Dm+1的方差;
根据数据D1到数据Dm+1的均值和数据Dm+2的值计算从数据D1到数据Dm+2的均值,并根据数据D1到数据Dm+2的均值、数据D1到数据Dm+1的方差和数据Dm+2的值计算从数据D1到数据Dm+2的方差;
依次类推,根据数据D1到数据Dn-1的均值和数据Dn的值计算从数据D1到数据Dn的均值,并根据数据D1到数据Dn的均值、数据D1到数据Dn-1的方差和数据Dn的值计算从数据D1到数据Dn的方差;
根据数据D1到数据Dn的方差计算所述标准差,其中,所述方差是所述标准差的平方。
4.根据权利要求2所述的方法,其中,所述m等于1。
5.根据权利要求1至4中任一项所述的方法,其中,计算所述多个数据的均值并根据所述均值计算所述标准差包括:
将所述多个数据分为多个组;
计算每个组内的数据的均值,并根据每个组内的数据的均值计算该组数据的标准差;
根据每个组的均值和标准差分别计算所述多个数据的均值和方差;
根据所述多个数据的方差得到所述多个数据的标准差,其中,所述方差是所述标准差的平方。
6.根据权利要求1至4中任一项所述的方法,其中,获取从所述监控对象进行数据采集得到的多个数据包括:
获取在所述预定时间范围内从所述监控对象采集到的数据;
将从所述监控对象采集到的数据中除预定数量个数值最大或最小的数据之外的其余数据,作为用于计算所述均值和所述标准差的所述多个数据。
7.根据权利要求6所述的方法,其中,将所述预定数量个数值最大或最小的数据保存在堆中,根据数据D1到数据Dm+i的均值和数据Dm+i+1的值计算从数据D1到数据Dm+i+1的均值之前,所述方法还包括:
在所述堆中保存的数据为预定数量个数值最大的数据的情况下,将数据Dm+i+1的值与所述堆中的数据的最小数值进行比较,如果数据Dm+i+1的值大于所述堆中的数据的最小数值,将数据Dm+i+1放入所述堆中,将所述堆中的最小数值的数据取出作为数据Dm+i+1;
和/或,
在所述堆中保存的数据为预定数量个数值最小的数据的情况下,将数据Dm+i+1的值与所述堆中的数据的最大数值进行比较,如果数据Dm+i+1的值小于所述堆中的数据的最大数值,将数据Dm+i+1放入所述堆中,将所述堆中的最大数值的数据取出作为数据Dm+i+1。
8.一种异常判断方法,包括:
从监控对象采集数据,其中,所述数据用于判断所述监控对象是否出现异常;
将采集到的所述数据与预先得到的数据范围进行比较,其中,所述数据范围是根据权利要求1至7中任一项所述的方法得到的;
如果采集到的所述数据未在所述数据范围内,则确定所述数据为异常数据,其中,所述异常数据用于指示所述监控对象出现异常。
9.根据权利要求8所述的方法,其中,将采集到的所述数据与预先得到的数据范围进行比较包括:
将采集到的所述数据与上一个预定时间范围采集的多个数据计算得到的数据范围进行比较,其中,所述上一个预定时间范围是距离从所述监控对象采集所述数据的时间点最近并且在所述时间点之前的时间范围。
10.一种异常判断依据的处理装置,包括:
获取模块,用于获取从监控对象进行数据采集得到的多个数据,其中,所述多个数据是在预定时间范围内采集的;
计算模块,用于计算所述多个数据的均值,并根据所述均值计算得到标准差;
确定模块,用于根据所述均值和所述标准差确定数据范围,其中,所述数据范围的下限是所述多个数据的均值减去K个标准差,所述数据范围的上限是所述多个数据的均值加上K个标准差,所述K为正整数;所述数据范围用于确定从所述监控对象中采集的数据是否为异常数据,其中,未落入到所述数据范围则为异常数据。
11.一种异常判断装置,包括:
采集模块,用于从监控对象采集数据,其中,所述数据用于判断所述监控对象是否出现异常;
比较模块,用于将采集到的所述数据与预先得到的数据范围进行比较,其中,所述数据范围是根据权利要求1至7中任一项所述的方法得到的;
判断模块,用于如果采集到的所述数据未在所述数据范围内,则确定所述数据为异常数据,其中,所述异常数据用于指示所述监控对象出现异常。
12.一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1至9任一项所述的方法步骤。
13.一种可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现权利要求1至9任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211369706.6A CN115690681A (zh) | 2022-11-03 | 2022-11-03 | 异常判断依据的处理方法、异常判断方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211369706.6A CN115690681A (zh) | 2022-11-03 | 2022-11-03 | 异常判断依据的处理方法、异常判断方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115690681A true CN115690681A (zh) | 2023-02-03 |
Family
ID=85047993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211369706.6A Pending CN115690681A (zh) | 2022-11-03 | 2022-11-03 | 异常判断依据的处理方法、异常判断方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115690681A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115861668A (zh) * | 2023-03-01 | 2023-03-28 | 上海合见工业软件集团有限公司 | 一种仿真波形中异常信号的溯源系统 |
-
2022
- 2022-11-03 CN CN202211369706.6A patent/CN115690681A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115861668A (zh) * | 2023-03-01 | 2023-03-28 | 上海合见工业软件集团有限公司 | 一种仿真波形中异常信号的溯源系统 |
CN115861668B (zh) * | 2023-03-01 | 2023-04-21 | 上海合见工业软件集团有限公司 | 一种仿真波形中异常信号的溯源系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6394726B2 (ja) | 運用管理装置、運用管理方法、及びプログラム | |
US20200387311A1 (en) | Disk detection method and apparatus | |
CN110601900A (zh) | 一种网络故障预警方法及装置 | |
CN107918579B (zh) | 一种批量生成基线数据的方法和装置 | |
CN110071854B (zh) | 节点间报文传输流量监控方法及装置 | |
CN111722952A (zh) | 业务系统的故障分析方法、系统、设备和存储介质 | |
CN114595210A (zh) | 一种多维数据的异常检测方法、装置及电子设备 | |
CN112148561B (zh) | 业务系统的运行状态预测方法、装置及服务器 | |
CN110727533A (zh) | 一种告警的方法、装置、设备和介质 | |
KR20170084445A (ko) | 시계열 데이터를 이용한 이상 감지 방법 및 그 장치 | |
CN115454778A (zh) | 大规模云网络环境下的时序指标异常智能监控系统 | |
CN115690681A (zh) | 异常判断依据的处理方法、异常判断方法及装置 | |
CN115495274B (zh) | 基于时序数据的异常处理方法、网络设备和可读存储介质 | |
CN112732517B (zh) | 一种磁盘故障告警方法、装置、设备及可读存储介质 | |
CN116663747A (zh) | 一种基于数据中心基础设施的智能预警方法及系统 | |
CN116914917A (zh) | 一种基于大数据的配电柜运行状态监测管理系统 | |
CN115664928A (zh) | 一种可解释的基于图的根因定位方法及装置 | |
CN116319255A (zh) | 一种基于kpi的根因定位方法、装置、设备及存储介质 | |
CN115543671A (zh) | 数据分析方法、装置、设备、存储介质及程序产品 | |
CN110058811A (zh) | 信息处理装置、数据管理系统、方法以及计算机可读介质 | |
CN112069168B (zh) | 一种设备运行数据云端存储方法 | |
CN116804957A (zh) | 一种系统监控方法及装置 | |
CN114331688A (zh) | 一种银行柜面系统业务批量运行状态检测方法及装置 | |
CN112838962A (zh) | 一种大数据集群的性能瓶颈检测方法及装置 | |
CN116992245B (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 |