具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本发明一个或多个实施例涉及的名词术语进行解释。
实例:任何系统请求都可以被转换为系统链路调用,在本说明书实施例中一个系统链路调用被称为一个实例。
实例量级:如果有n个请求经过同样的系统链路调用,则该系统链路调用组成的实例量级为n。
异动实例:当系统链路调用的节点发生了删除、修改或者增加操作,就称该实例发生了异动,判断某个实例是否发生了这些操作,可以通过与历史上最相似的实例进行对比而确定,具体可参见图3。
异动实例量级占比:由预设时间周期例如每一分钟内异动实例的总量级除以该分钟所有实例的总量级得出。
KPI曲线:指异动实例量级占比时序曲线,由预设时间周期例如每分钟内的异动实例量级占比构成的曲线为异动实例量级占比时序曲线,具体可参见图4。
异常点检测:通过前一段时间窗口的曲线波动规律来判断最新时间点是否是异常点。
在本申请中,提供了一种异常报警监控方法及装置、一种计算设备及存储介质,在下面的实施例中逐一进行详细说明。
图1是示出了根据本说明书一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备100的上述以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
其中,处理器120可以执行图2所示方法中的步骤。图2是示出了根据本说明书一实施例的异常报警监控方法的示意性流程图,包括步骤202至步骤208。
步骤202:获取监控周期t内系统业务链路的第一调用次数以及所述监控周期t之前的至少两个监控周期内的系统业务链路的第二调用次数,其中,t为正整数,t>2。
本说明书一个或多个实施例中,所述监控周期可以根据实际需求进行设置,例如可以设置一分钟为一个监控周期或者可以设置两分钟、三分钟等为一个监控周期,本申请对此不作任何限定。
所述系统业务链路可以为上述记载的实例,所述系统业务链路的第一调用次数可以为所述系统业务链路的实例量级。
所述监控周期t内系统业务链路的第一调用次数,即可以为以一分钟为一个监控周期的t内所有系统业务链路被调用的总次数。
所述监控周期t之前的至少两个监控周期内的系统业务链路的第二调用次数,即可以为以一分钟为一个监控周期的t之前的每个监控周期内所有系统业务链路被调用的总次数。例如,所述监控周期t之前存在两个监控周期:监控周期t-1和监控周期t-2,那么所述监控周期t之前的至少两个监控周期内的系统业务链路的第二调用次数,则为监控周期t-1内所有系统业务链路的总调用次数以及监控周期t-2内所有系统业务链路的总调用次数。
实际应用中,每个监控周期内可以包括多个系统业务链路,每个系统业务链路可以存在多次调用,所述监控周期t之前可以存在至少两个历史监控周期,而获取到的所述监控周期t之前的历史监控周期的数量越多、距离该监控周期t的时间点越远,所述方法对异常点的监控结果也会越准确,一般情况下均会选择十个或十个以上的历史监控周期,以提高监控结果的准确率。
步骤204:确定所述第一调用次数中异常调用次数的第一占比以及至少两个所述第二调用次数中异常调用次数的第二占比。
本说明书一个或多个实施例中,所述异常调用次数可以为上述记载的异动实例,所述第一调用次数中异常调用次数的第一占比可以为上述记载的异动实例量级占比。
其中,所述第一调用次数中异常调用次数的第一占比可以通过监控周期t内系统业务链路的总调用次数除以该监控周期t内系统业务链路的异常调用次数得到;所述至少两个所述第二调用次数中异常调用次数的第二占比可以通过所述监控周期t之前的至少两个监控周期内的系统业务链路的总调用次数除以所述监控周期t之前的至少两个监控周期内的系统业务链路的异常调用次数得到。
例如:若以一分钟为一个监控周期,那么监控周期t内的系统业务链路的总调用次数为10,该监控周期t内的系统业务链路的异常调用次数为2,则第一占比为2/10=0.2;对于第二占比的计算方式可以参见第一占比,在此不再赘述。
步骤206:在基于至少两个所述第二占比和对应的稳定系数确定出加权值的情况下,基于所述第一占比以及所述加权值确定所述监控周期t内的波动指标。
本说明书一个或多个实施例中,至少两个所述第二占比对应的稳定系数通过以下步骤获得:
基于至少两个所述第二调用次数以及对应的预设常量确定所述监控周期t之前的至少两个监控周期内的系统业务链路的稳定系数。
实际应用中,首先分别获取监控周期t内以及监控周期t之前的至少两个监控周期的系统业务链路的总调用次数和异常调用次数,根据总调用次数和异常调用次数确定第一占比和第二占比,组成KPI曲线图,然后再根据监控周期t之前的至少两个监控周期的系统业务链路的总调用次数即第二调用次数和对应的预设常量计算出每个第二占比对应的稳定系数,其中,预设常量可以根据具体业务场景进行调节,本申请对此不作任何限定。
其中,所述稳定系数可以通过公式(1)计算得到:
weight=h1/(h1+a) (1)
其中,weight表示稳定系数,h1表示第二调用次数,a表示h1对应的预设常量。
本说明书一个或多个实施例中,所述加权值包括加权中位数和加权中位数绝对偏差值,
参见图5,在确定出至少两个所述第二占比和对应的所述稳定系数的情况下,基于至少两个所述第二占比和对应的所述稳定系数确定出的加权值,再基于所述第一占比以及所述加权值确定所述监控周期t内的波动指标包括步骤502至步骤506。
步骤502:基于至少两个所述第二占比和对应的所述稳定系数确定所述第二占比的加权中位数。
本说明书一个或多个实施例中,所述加权中位数可以通过公式(2)计算得到:
wmedian_value=wmedian(r,weight) (2)
其中,wmedian_value表示加权中位数,r表示第二占比,weight表示r对应的稳定系数。
步骤504:基于至少两个所述第二占比、所述加权中位数以及对应的所述稳定系数确定所述第二占比的加权中位数绝对偏差值。
本说明书一个或多个实施例中,所述加权中位数绝对偏差值可以通过公式(3)计算得到:
wmad_value=wmedian(abs(r-wmedian_value),weight) (3)
其中,wmad_value表示加权中位数绝对偏差值,wmedian_value表示加权中位数,r表示第二占比,weight表示r对应的稳定系数。
步骤506:基于所述第一占比、所述加权中位数以及所述加权中位数绝对偏差值确定所述监控周期t内的波动指标。
本说明书一个或多个实施例中,所述监控周期t内的波动指标可以通过公式(4)计算得到:
wzscore=(r11-wmedian_value)/wmad_value (4)
其中,wzscore表示监控周期t内的波动指标,r11表示第一占比,wmedian_value表示加权中位数,wmad_value表示加权中位数绝对偏差值。
步骤208:在所述波动指标大于等于预设阈值的情况下,发出报警提示。
本说明书一个或多个实施例中,所述预设阈值根据实际需求进行设定,例如所述预设阈值设置为3,所述波动指标为5,则所述波动指标5大于所述预设阈值3,则发出报警提示;其中,报警提示的方式可以有多种,例如以邮件提醒的方式报警、以短信提醒的方式报警或者是以声音信号提醒等方式报警,只要可以实现报警效果的任何方式均可,本申请对此不作任何限定。
本说明书一个或多个实施例中,所述异常报警监控方法包括获取监控周期t内系统业务链路的第一调用次数以及所述监控周期t之前的至少两个监控周期内的系统业务链路的第二调用次数;确定所述第一调用次数中异常调用次数的第一占比以及至少两个所述第二调用次数中异常调用次数的第二占比;在基于至少两个所述第二占比和对应的稳定系数确定出加权值的情况下,基于所述第一占比以及所述加权值确定所述监控周期t内的波动指标;在所述波动指标大于等于预设阈值的情况下,发出报警提示,不仅考虑当前监控周期的数据,还考虑当前监控周期之前的历史监控周期的数据,对历史监控周期的数据采用计算加权中位数和加权中位数绝对偏差值的方式实现对异常点即当前监控周期检测,降低了某些低异常调用时刻的不稳定性对报警结果的影响,使得报警更加稳定准确。
其中,处理器120可以执行图6所示方法中的步骤。图6是示出了根据本说明书一实施例的异常报警监控方法的示意性流程图,包括步骤602至步骤614。
步骤602:获取监控周期t内系统业务链路的第一调用次数以及所述监控周期t之前的至少两个监控周期内的系统业务链路的第二调用次数,其中,t为正整数,t>2。
步骤604:确定所述第一调用次数中异常调用次数的第一占比以及至少两个所述第二调用次数中异常调用次数的第二占比。
步骤606:基于至少两个所述第二调用次数以及对应的预设常量确定所述监控周期t之前的至少两个监控周期内的系统业务链路的稳定系数。
本说明书一个或多个实施例中,以一分钟为一个监控周期,以实际获取的监控周期t(如表1中的12:11:00分)内系统业务链路的总调用次数h1、异常调用次数h2和所述监控周期t之前的至少两个监控周期内(如表1中12:01:00-12:10:00分)的系统业务链路的总调用次数h1、异常调用次数h2计算分别得出占比r,再根据总调用次数h1以及对应的预设常量计算得出稳定系数weight,参见表1。
表1
表1中,对于每个监控周期,如每分钟的占比和稳定系数通过公式“r=h2/h1,weight=h1/(h1+a),其中,常量参数a=10”计算得到。以12:01分钟为例,r1=2/100=0.02,weight1=100/110=0.91。采用类似的方法对各个监控周期的r和weight进行计算可以分别得到r1-r11,weight1-weight10。其中,所述r1-r10均表示第二占比,r11表示第一占比。
步骤608:基于至少两个所述第二占比和对应的所述稳定系数确定所述第二占比的加权中位数。
本说明书一个或多个实施例中,基于至少两个所述第二占比以及对应的所述稳定系数确定所述第二占比的加权中位数包括:按照预设的第一排列方式对至少两个所述第二占比进行排序;基于排序后的至少两个所述第二占比以及对应的所述稳定系数确定所述第二占比的加权中位数。
本说明书一个或多个实施例中,预设的第一排列方式包括升序排列方式,按照预设的第一排列方式对至少两个所述第二占比进行排序,即按照升序排列方式对至少两个所述第二占比进行排序。
本说明书一个或多个实施例中,仍以表1中的数据为例,对确定所述第二占比的加权中位数进行详细说明。
首先,按照升序排列方式对至少两个所述第二占比进行排序,参见表2。
表2
其中,表2中的r列的r1-r10为升序排列的第二占比,weight列为r1-r10列对应的稳定系数,weight_acc为根据稳定系数累计求和得出。
然后计算weight列的总和的二分之一并记为W,W为(0.91+0.95+0.94+0.92+0.91+0.88+0.88+0.74+0.57+0.38)/2=4.04,然后查找W在weight_acc列的位置,若存在weight_acc_i<W<=weight_acc_i+1,则weight_acc_i+1所在的行对应的r1-r10列的值即为r1-r10列的加权中位数。
根据表2可知,3.72<4.04<=4.63,即weight_acc5=4.63,而weight_acc列中的4.63所在的第5行对应的r1-r10列的值为0.04,因此可以确定r1-r10列的加权中位数为wmedian_value=wmedian(r,weight)=r5=0.04,即所述第二占比的加权中位数为0.04。
步骤610:基于至少两个所述第二占比、所述加权中位数以及对应的所述稳定系数确定所述第二占比的加权中位数绝对偏差值。
本说明书一个或多个实施例中,基于至少两个所述第二占比、所述加权中位数以及对应的所述稳定系数确定所述第二占比的加权中位数绝对偏差值包括:
基于至少两个所述第二占比以及所述加权中位数确定至少两个偏差值;
按照预设的第二排列方式对至少两个所述偏差值进行排序;
基于排序后的至少两个所述偏差值和对应的所述稳定系数确定所述第二占比的加权中位数绝对偏差值。
本说明书一个或多个实施例中,预设的第二排列方式包括升序排列方式,按照预设的第二排列方式对至少两个所述偏差值进行排序,即按照升序排列方式对至少两个所述偏差值进行排序。
本说明书一个或多个实施例中,仍以表1和表2为例,确定所述第二占比的加权中位数绝对偏差值进行详细说明。
首先,基于至少两个所述第二占比以及所述加权中位数确定至少两个偏差值,其中,偏差值根据每一个原始所述第二占比减所述加权中位数得到,并且按照升序排列方式对至少两个所述第二占比进行排序,参见表3。
表3
其中,r1-r10为表1中非升序排列的第二占比,weight为r1-r10对应的稳定系数,AD列为升序排列的偏差值。
然后计算weight列的总和的二分之一并记为W,W为(0.91+0.95+0.94+0.92+0.91+0.88+0.88+0.74+0.57+0.38)/2=4.04,然后查找W在weight_acc列的位置,若存在weight_acc_i<W<=weight_acc_i+1,则weight_acc_i+1所在的行对应的AD列的值即为r1-r10列的加权中位数绝对偏差值。
根据表3可知,3.72<4.04<=4.63,即weight_acc5=4.63,而weight_acc列中的4.63所在的第5行对应的AD列的值为0.02,因此可以确定r1-r10列的加权中位数绝对偏差值为wmedian_value=wmedian(abs(r-wmedian_value),weight)=AD5=0.02,即所述第二占比的加权中位数绝对偏差值为0.02。
步骤612:基于所述第一占比、所述加权中位数以及所述加权中位数绝对偏差值确定所述监控周期t内的波动指标。
本说明书一个或多个实施例中,以表1的r列r11的第一占比,表2和表3计算得到r列r1-r10的加权中位数以及加权中位数的绝对偏差值,根据wzscore=(r11-wmedian_value)/wmad_value计算得到所述监控周期t内的波动指标:wzscore=(0.05-0.04)/0.02=0.5。
步骤614:在所述波动指标大于等于预设阈值的情况下,发出报警提示。
本说明书一个或多个实施例中,若预设阈值为0.3,所述波动指标为0.5,则所述波动指标0.5>预设阈值0.3,达到报警阈值,发出报警提示。
本说明书一个或多个实施例中,计算加权中位数、加权中位数绝对偏差值以及波动指标时,还可以采用其他方式计算得到,本申请对此不作任何限定。
本说明书一个或多个实施例中,所述异常报警监控方法包括获取当前一分钟以及历史时间内每分钟所有系统业务链路的总调用次数以及识别的异动调用次数,计算每分钟异动调用次数的占比,组成KPI曲线,并根据历史时间内每分钟所有系统业务链路的总调用次数和预设常量计算每分钟的稳定系数,再最后根据当前一分钟内的所有系统业务链路的异动调用次数的占比以及根据历史时间内每分钟所有系统业务链路的异动调用次数的占比、加权中位数和加权中位数绝对偏差值计算得到当前一分钟内所有系统业务链路的波动指标;在该波动指标大于等于预设阈值的情况下,发出报警提示,所述异常监控方法可以对虑每一个时间点的可靠性权重,并且对历史监控周期的数据采用计算加权中位数和加权中位数绝对偏差值的方式实现对当前监控周期的监控,使得当前监控周期达到分钟级的精细度报警,降低了某些低异常调用时刻的不稳定性对报警结果的影响,使得报警更加稳定准确。
参见图7,本说明书一个或多个实施例提供了一种异常报警监控装置,包括:
获取模块702,被配置为获取监控周期t内系统业务链路的第一调用次数以及所述监控周期t之前的至少两个监控周期内的系统业务链路的第二调用次数,其中,t为正整数,t>2;
第一确定模块704,被配置为确定所述第一调用次数中异常调用次数的第一占比以及至少两个所述第二调用次数中异常调用次数的第二占比;
波动指标确定模块706,被配置为在基于至少两个所述第二占比和对应的稳定系数确定出加权值的情况下,基于所述第一占比以及所述加权值确定所述监控周期t内的波动指标;
报警决策模块708,被配置为在所述波动指标大于等于预设阈值的情况下,发出报警提示。
可选地,所述装置还包括:
第三确定模块,被配置为基于至少两个所述第二调用次数以及对应的预设常量确定所述监控周期t之前的至少两个监控周期内的系统业务链路的稳定系数。
可选地,所述波动指标确定模块706包括:
第四确定子模块,被配置为基于至少两个所述第二占比和对应的所述稳定系数确定所述第二占比的加权中位数;
第五确定子模块,被配置为基于至少两个所述第二占比、所述加权中位数以及对应的所述稳定系数确定所述第二占比的加权中位数绝对偏差值;
第六确定子模块,被配置为基于所述第一占比、所述加权中位数以及所述加权中位数绝对偏差值确定所述监控周期t内的波动指标。
可选地,所述第四确定子模块包括:
第一排序子模块,被配置为按照预设的第一排列方式对至少两个所述第二占比进行排序;
加权中位数确定子模块,被配置为基于排序后的至少两个所述第二占比以及对应的所述稳定系数确定所述第二占比的加权中位数。
可选地,所述第五确定子模块包括:
偏差值确定子模块,被配置为基于至少两个所述第二占比以及所述加权中位数确定至少两个偏差值;
第二排序子模块,被配置为按照预设的第二排列方式对至少两个所述偏差值进行排序;
绝对偏差值确定子模块,被配置为基于排序后的至少两个所述偏差值和对应的所述稳定系数确定所述第二占比的加权中位数绝对偏差值。
可选地,所述稳定系数包括:
weight=h1/(h1+a),
其中,weight表示稳定系数,h1表示第二调用次数,a表示h1对应的预设常量。
可选地,所述加权中位数包括:
wmedian_value=wmedian(r,weight),
其中,wmedian_value表示加权中位数,r表示第二占比,weight表示r对应的稳定系数。
可选地,所述加权中位数绝对偏差值包括:
wmad_value=wmedian(abs(r-wmedian_value),weight),
其中,wmad_value表示加权中位数绝对偏差值,wmedian_value表示加权中位数,r表示第二占比,weight表示r对应的稳定系数。
可选地,所述监控周期t内的波动指标包括:
wzscore=(r11-wmedian_value)/wmad_value,
其中,wzscore表示监控周期t内的波动指标,r11表示第一占比,wmedian_value表示加权中位数,wmad_value表示加权中位数绝对偏差值。
本说明书一个或多个实施例中,所述异常报警监控装置包括获取监控周期t内系统业务链路的第一调用次数以及所述监控周期t之前的至少两个监控周期内的系统业务链路的第二调用次数;确定所述第一调用次数中异常调用次数的第一占比以及至少两个所述第二调用次数中异常调用次数的第二占比;在基于至少两个所述第二占比和对应的稳定系数确定出加权值的情况下,基于所述第一占比以及所述加权值确定所述监控周期t内的波动指标;在所述波动指标大于等于预设阈值的情况下,发出报警提示,不仅考虑当前监控周期的数据,还考虑当前监控周期之前的历史监控周期的数据,对历史监控周期的数据采用计算加权中位数和加权中位数绝对偏差值的方式实现对异常点即当前监控周期检测,降低了某些低异常调用时刻的不稳定性对报警结果的影响,使得报警更加稳定准确。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述异常报警监控方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的异常报警监控方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述异常报警监控方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。