一种识别与应用服务变更相关的告警的方法及装置与流程

文档序号:27149355发布日期:2021-10-30 02:35阅读:86来源:国知局
一种识别与应用服务变更相关的告警的方法及装置与流程

1.本技术实施例涉及金融科技(fintech)领域,尤其涉及一种识别与应用服务变更相关的告警的方法及装置。


背景技术:

2.随着计算机技术的发展,越来越多的技术(例如:大数据、云计算或区块链)应用在金融领域,传统金融业正在逐步向金融科技转变。在大数据技术的背景下,随着应用系统对外提供的服务越来越多,将最新的应用特性通过发布包、配置文件等形式部署到生产环境的行为也急剧增加,即用户对应用系统进行变更也越来越频繁。
3.其中,应用服务在变更期间可能引发生产异常,比如产生错误日志、引起业务指标波动等问题。因此,对应用服务在变更期间产生的告警数据进行分析,准确识别出与变更相关的告警,这对应用服务的成功变更具有重要意义。其中,若简单地依据变更时间,取出变更时间段内所有的告警,并将所取出的所有与变更时间相符合的告警作为应用服务变更相关的告警,那么很可能会关联到这个变更时间段发生的很多与此变更无关联的告警;又如,若仅仅收集变更实体关联的告警,则可能会漏掉与其关联的其它类型与应用服务变更相关的告警。
4.显然,以上两种用于识别与应用服务变更关联的告警的方案的准确率都比较差,因此目前亟需一种更精确的可用于识别与应用服务变更相关的告警的方法。


技术实现要素:

5.本技术提供一种识别与应用服务变更相关的告警的方法及装置,用以准确地识别与应用服务变更相关的告警。
6.第一方面,本技术实施例提供一种识别与应用服务变更相关的告警的方法,该方法包括:获取应用服务在历史变更阶段产生的各告警数据;根据告警类型对应的各第一分类值、告警子系统对应的各第二分类值、告警时间对应的各第三分类值和告警实体对应的各第四分类值,确定所述各告警数据对应的告警数据集;其中,各第二分类值包括直接关联、间接关联和无关联,各第三分类值包括变更时间内和变更时间外,各第四分类值包括直接关联、间接关联和无关联;根据所述告警数据集,确定所述应用服务在变更阶段与变更相关的告警决策树;所述告警决策树用于识别所述应用服务在后续的各变更阶段产生的各告警数据是否与所述应用服务的变更相关。
7.基于该方案,一个产品或者服务的变更,无论是灰度变更或者非灰度变更,一般由运维人员发起,在某个时间点启动变更、以及在某个时间点结束变更,变更过程中涉及到一系列子系统,然后发生在某些变更实体上面,比如虚拟机或者容器,此外在变更期间可能会触发应用服务的某些监控项如业务成功率,或者实体的cpu、内存等发生变化。因此,通过分析可能导致应用服务在变更阶段产生告警的各因素,可以发现告警类型、告警子系统、告警时间和告警实体这4个因素对告警事件的形成存在影响,因此可以从告警类型、告警子系
统、告警时间和告警实体这4个告警维度对所获取的应用服务在历史各变更阶段产生的各告警数据进行整理,如针对各告警维度中的任一个告警维度,可确定各告警数据在该告警维度下的分类值,从而形成告警数据集,最后可以依据该告警数据集,确定应用服务在变更阶段与变更相关的告警决策树,该告警决策树可用于识别应用服务在后续的各变更阶段产生的各告警数据是否与应用服务的变更相关。该方式中通过采用对历史数据进行分析而构建告警决策树来对告警数据进行是否为与变更相关的告警的识别,避免了采用告警时间和/或告警实体即时确定告警所属的类别,该方式可以提升对告警类别进行识别的准确性;此外,该方式在构建用于识别告警类别的告警决策树的过程中,依据告警维度对各告警数据进行了优化建模,形成了各告警数据在各告警维度下分别对应一个分类值这样一种告警数据集,由于各告警维度分别具有的分类的数目均比较少且彼此是相接近的(2~3类),因此,所构建的告警决策树也将具有更佳的分类、识别告警类别的效果。
8.在一种可能实现的方法中,所述根据所述告警数据集,确定所述应用服务在变更阶段与变更相关的告警决策树,包括:分别针对所述告警类型对应的各第一分类值、所述告警子系统对应的各第二分类值、所述告警时间对应的各第三分类值和所述告警实体对应的各第四分类值,根据各第一分类值、各第二分类值、各第三分类值和各第四分类值分别在所述告警数据集中的各第一分布情况、各第二分布情况、各第三分布情况和各第四分布情况,确定所述告警类型、所述告警子系统、所述告警时间和所述告警实体分别对应的第一信息熵、第二信息熵、第三信息熵和第四信息熵;根据所述第一信息熵、所述第二信息熵、所述第三信息熵和所述第四信息熵,确定所述应用服务在变更阶段与变更相关的告警决策树。
9.基于该方案,针对各个告警维度中的每一个告警维度,其又可以划分为若干个分类(例如,在告警维度为告警子系统时,它对应的分类包括直接关联、间接关联和无关联3类),并针对任一个分类,可以根据该分类在告警数据集中的分布情况,确定该分类对应的信息熵,进而通过统计同一个告警维度具有的各分类分别对应的信息熵,则可以确定各告警维度对应的信息熵,由于信息熵在决策树构建过程中可以作为节点划分的依据——每次选择信息熵最小的告警维度作为分支节点(原因在于,信息熵越小,系统则越有序,表示若以该信息熵最小的告警维度进行节点划分的话,则可以实现以一种最佳的分类效果对告警数据集进行分类),从而可以构建出应用服务在变更阶段与变更相关的告警决策树。
10.在一种可能实现的方法中,所述根据各第二分类值分别在所述告警数据集中的各第二分布情况,确定所述告警子系统对应的第二信息熵,包括:分别获取第二分类值为直接关联、间接关联和无关联时的各正例的个数和对应的各反例的个数;其中,所述正例表示当前的告警数据与所述应用服务的变更相关,所述反例表示当前的告警数据与所述应用服务的变更不相关;根据各正例的个数和对应的各反例的个数,分别确定第二分类值为直接关联、间接关联和无关联时的直接关联信息熵、间接关联信息熵和无关联信息熵;根据所述直接关联信息熵、所述间接关联信息熵和所述无关联信息熵,确定所述告警子系统对应的第二信息熵。
11.基于该方案,在对一个告警维度对应的信息熵进行计算时,如在告警维度为告警子系统时,包括确定出告警子系统具有的直接关联这一分类对应的直接关联信息熵、间接关联这一分类对应的间接关联信息熵、无关联这一分类对应的无关联信息熵,从而基于该3个信息熵,就可以得到告警子系统这一告警维度对应的信息熵。
12.在一种可能实现的方法中,所述根据所述第一信息熵、所述第二信息熵、所述第三信息熵和所述第四信息熵,确定所述应用服务在变更阶段与变更相关的告警决策树,包括:针对所述第一信息熵、所述第二信息熵、所述第三信息熵和所述第四信息熵,根据所述第一信息熵与所述告警数据集对应的信息熵、所述第二信息熵与所述告警数据集对应的信息熵、所述第三信息熵与所述告警数据集对应的信息熵和所述第四信息熵与所述告警数据集对应的信息熵,确定所述告警类型、所述告警子系统、所述告警时间和所述告警实体分别对应的第一信息增益、第二信息增益、第三信息增益和第四信息增益;其中,所述告警数据集对应的信息熵是根据所述告警数据集中正例的个数以及反例的个数确定的;从所述第一信息增益、所述第二信息增益、所述第三信息增益和所述第四信息增益中,将符合设定条件的信息增益对应的告警维度作为根节点;根据所述根节点和第二告警维度,构建所述应用服务在变更阶段与变更相关的告警决策树;其中,所述第二告警维度是所述告警类型、所述告警子系统、所述告警时间和所述告警实体中除去所述根节点的各告警维度。
13.基于该方案,在使用信息熵构建告警决策树之外,还可以使用信息增益来构建告警决策树,如可以将各告警维度分别对应的信息增益中最大值的信息增益对应的告警维度作为告警决策树的根节点(原因在于,当在使用最大值的信息增益对应的告警维度对告警数据集进行划分时,则可以一种最佳的分类效果对告警数据集进行划分),进而可以在以根节点对告警数据集进行划分的后的各个类别继续执行信息增益的计算,如此可以得到应用服务在变更阶段与变更相关的告警决策树。
14.在一种可能实现的方法中,针对通过所述告警决策树识别出的与所述应用服务的变更相关的各告警数据,确定所述各告警数据指示的告警类型分别对应的告警权重;对各告警类型指示的各告警按照告警权重由大到小的顺序进行处理。
15.基于该方案,在将形成的告警决策树应用于对某一次的该应用服务变更的过程中时,可将识别的各告警按一定的告警权重进行重要度排序,将有利于运维人员快速准确判断当前变更告警的状况,做出正确的告警处理方案。
16.在一种可能实现的方法中,所述确定各告警数据指示的告警类型分别对应的告警权重,包括:针对预设历史时段,获取各告警类型中的任一告警类型在所述应用服务任一次变更阶段中产生的告警次数;根据各告警次数,确定所述告警类型的平均告警次数;针对各告警类型中的任一告警类型,根据所述告警类型的平均告警次数和所述告警类型在当前变更阶段发生告警的次数,确定告警比率;根据预设阈值和各告警比率,确定各告警类型分别对应的告警权重。
17.基于该方案,在构建好应用服务的告警决策树后,当后续过程中该应用服务在进行变更时,可通过所构建的告警决策树来识别变更期间发生的告警是否是由于变更引起的告警,其中,对于确定出的是由变更引起的各告警,可以统计出各告警在历史阶段发生的平均告警次数,然后基于平均告警次数和本次发生的告警次数,可以确定告警比率,然后通过与一个预设阈值进行计算,即可得到各告警分别对应的告警权重。该方式中基于经常发生的由变更导致的告警本次变更时也将容易产生,而偶一发生的告警在本次变更时出现则表示比较特殊,需要重点关注,因此通过该方式可以对本次与变更相关的告警进行重要度的排序,以为运维人员在对各告警进行处理时提供一个较佳的指导思想。
18.在一种可能实现的方法中,所述针对各告警类型中的任一告警类型,根据所述告
警类型的平均告警次数和所述告警类型在当前变更阶段发生告警的次数,确定告警比率,包括:若所述告警类型的平均告警次数大于所述告警类型在当前变更阶段发生告警的次数,则将所述告警类型在当前变更阶段发生告警的次数占所述告警类型的平均告警次数的比率作为告警比率;若所述告警类型的平均告警次数小于所述告警类型在当前变更阶段发生告警的次数,则将所述告警类型的平均告警次数占所述告警类型在当前变更阶段发生告警的次数的比率作为告警比率。
19.第二方面,本技术实施例提供一种识别与应用服务变更相关的告警的装置,包括:告警数据获取单元,用于获取应用服务在历史变更阶段产生的各告警数据;告警数据集确定单元,用于根据告警类型对应的各第一分类值、告警子系统对应的各第二分类值、告警时间对应的各第三分类值和告警实体对应的各第四分类值,确定所述各告警数据对应的告警数据集;其中,各第二分类值包括直接关联、间接关联和无关联,各第三分类值包括变更时间内和变更时间外,各第四分类值包括直接关联、间接关联和无关联;告警决策树确定单元,用于根据所述告警数据集,确定所述应用服务在变更阶段与变更相关的告警决策树;所述告警决策树用于识别所述应用服务在后续的各变更阶段产生的各告警数据是否与所述应用服务的变更相关。
20.第三方面,本技术实施例提供了一种计算设备,包括:
21.存储器,用于存储程序指令;
22.处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如第一方面任一实现方法。
23.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面任一实现方法。
附图说明
24.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
25.图1为本技术实施例提供的一种识别与应用服务变更相关的告警的方法的示意图;
26.图2为本技术实施例提供的一种告警决策树构建示意图;
27.图3为本技术实施例提供的一种识别与应用服务变更相关的告警的装置的示意图;
28.图4为本技术实施例提供的一种计算设备。
具体实施方式
29.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的
所有其它实施例,都属于本技术保护的范围。
30.目前,对于应用服务变更期间产生的各告警,准确识别出各告警是否是由变更引起的,这对应用服务的成功变更具有重要的意义。其中,采用告警时间和/或告警实体即时确定应用服务变更期间产生的各告警是否是由变更引起的方案,并不能够准确地对各告警所属的类别进行判断。
31.针对上述技术问题,本技术提供一种识别与应用服务变更相关的告警的方法。如图1所示,为本技术实施例提供的一种识别与应用服务变更相关的告警的方法的示意图,该方法包括以下步骤:
32.步骤101,获取应用服务在历史变更阶段产生的各告警数据。
33.每一个应用服务在对外提供服务时,具体是通过构成该应用服务的若干个子系统实现的;进一步的,各个子系统具体是通过机房当中的若干个实体构成的,其中实体可包括虚拟机和容器等。例如,可设机房中存在有编号分别为1、2、3
……
m共m个实体,该m个实体分别具有的ip地址不同,如编号为1的实体的ip地址可以设为ip_1,编号为2的实体的ip地址可以设为ip_2,编号为3的实体的ip地址可以设为ip_3,以此类推,编号为m的实体的ip地址可以设为ip_m;设根据设定的需求对该m个实体进行组合,可以得到子系统1(s1)、子系统2(s2)、子系统3(s3)
……
子系统n(sn)共n个子系统,其中,如s1可以由ip_1、ip_3、ip_4、ip_6共4个实体构成,s2可以由ip_1、ip_2、ip_4、ip_5、ip_7共5个实体构成,s3可以由ip_1、ip_5、ip_8、ip_m共4个实体构成,以此类推,sn可以由ip_1、ip_2、ip_9、ip_11、ip_m

1共5个实体构成。基于形成的各个子系统,则可以根据需求形成各个应用服务,如设应用服务a可以由s1、s2和s4构成,应用服务b可以由s1、s3、s5和s8构成,应用服务c可以由s2、s3、sn构成。
34.对于一应用服务,当有新的应用特性进行发布时,并非总是能顺利地实现对应用服务的变更的。其中,无论是灰度变更或者非灰度变更,在应用服务的变更过程中将伴随有各种告警数据的产生,因此首先可以获取应用服务在历史变更阶段产生的各告警数据。
35.步骤102,根据告警类型对应的各第一分类值、告警子系统对应的各第二分类值、告警时间对应的各第三分类值和告警实体对应的各第四分类值,确定所述各告警数据对应的告警数据集;所述告警数据集包括所述各告警数据分别在所述告警类型下的第一分类值、在所述告警子系统下的第二分类值、在所述告警时间下的第三分类值和在所述告警实体下的第四分类值;其中,各第二分类值包括直接关联、间接关联和无关联,各第三分类值包括变更时间内和变更时间外,各第四分类值包括直接关联、间接关联和无关联。
36.对应用服务进行的变更,一般是由运维人员发起,在某个时间点启动变更(t_start)、以及在某个时间点结束变更(t_end),变更过程中涉及到一系列子系统,然后发生在某些变更实体上面,比如虚拟机或者容器,此外在变更期间可能会触发应用服务的某些监控项如业务成功率,或者实体的cpu、内存等发生变化。因此,通过分析可能导致应用服务在变更阶段产生告警的各因素,可以发现告警类型(如主机告警、中间件告警、应用程序告警)、告警子系统、告警时间和告警实体这4个因素对告警事件的形成存在影响,因此可以从告警类型、告警子系统、告警时间和告警实体这4个告警维度对所获取的应用服务在历史各变更阶段产生的各告警数据进行整理,如针对各告警维度中的任一个告警维度,可确定各告警数据在该告警维度下的分类值,从而形成告警数据集。所形成的告警数据集包括各告警数据分别在所述告警类型下的第一分类值、在所述告警子系统下的第二分类值、在所述
告警时间下的第三分类值和在所述告警实体下的第四分类值。其中,各第二分类值包括直接关联、间接关联和无关联,各第三分类值包括变更时间内和变更时间外,各第四分类值包括直接关联、间接关联和无关联。
37.下面通过一个例子说明如何对告警数据进行整理,以形成告警数据集。
38.在运维启动的时间点之前,需要进行一些变更准备操作,以及变更完成之后,需要一定的观察时间段,因此可定义对应用服务在变更阶段产生的告警数据进行采集的时间段为运维启动时间点前第一设定时长至变更结束时间点后第二设定时长,其中第一设定时长和第二设定时长可以相同,如为半小时,收集此段时间内所有的告警数据,同时人工辅助确认所采集的各告警数据是否和变更关联。这样则可以建立一个告警数据集。假设某次变更的对象是应用服务x,然后根据架构模型或者调用链模型确认到应用服务x依赖的子系统有{s1,s2,s3,s4},那么,若目前是对s1进行变更,则可定义子系统具有三个分类:(1)、若发生的是s1的告警信息,则此告警信息在子系统维度定义为直接关联;(2)、若发生的是s2的告警信息,则由于s2是处在目前变更所属的应用服务x的子系统集合中,则此告警信息在子系统维度定义间接关联;(3)、若发生的是s5的告警信息,但由于s5并没有处在目前变更所属的应用服务x的子系统集合中,则此告警信息在子系统维度定义为无关联。进一步的,s1部署的所有实体集合如下:{ip_1,ip_2,ip_3,ip_4,ip_5},那么,若目前是对ip_1,ip_2进行变更,则对于变更的实体,可定义实体具有三个分类:(1)、若发生的是ip_1的告警信息,则此告警信息在实体维度定义为直接关联;(2)、若发生的是ip_3的告警信息,则由于ip_3是处在目前变更所属的应用服务x的实体集合中,则此告警信息在实体维度定义为间接关联;(3)、若发生的是ip_7的告警信息,则由于ip_7并没有处在目前变更所属的应用服务x的实体集合中,则此告警信息在实体维度定义为无关联。对于变更的时间点,如果t属于[t_start,t_end],则定义关系为变更时间内,如果t不属于[t_start,t_end],则定义为变更时间外,这里可以用一个具体的例子说明对告警时间的分类,如设本次对应用服务x变更时间为上午9点到上午10点,为期一小时,则如果一个告警数据的告警时间显示为8:40,则该告警时间定义为变更时间外,如果一个告警数据的告警时间显示为9:20,则该告警时间定义为变更时间内。
[0039]
例如,如表1所示,为本技术实施例提供的一种告警数据集。
[0040][0041][0042]
表1告警数据集
[0043]
参考表1,共有17条告警数据,其中在告警维度为告警类型时,可包括有11、22和33共3种分类,在告警维度为告警子系统时,可包括有直接关联、间接关联和无关联共3种分类,在告警维度为告警时间时,可包括有变更时间内和变更时间外共2种分类,在告警维度为告警实体时,可包括有直接关联、间接关联和无关联共3种分类。
[0044]
步骤103,根据所述告警数据集,确定所述应用服务在变更阶段与变更相关的告警决策树;所述告警决策树用于识别所述应用服务在后续的各变更阶段产生的各告警数据是否与所述应用服务的变更相关。
[0045]
该方式中通过采用对历史数据进行分析而构建告警决策树来对告警数据进行是否为与变更相关的告警的识别,避免了采用告警时间和/或告警实体即时确定告警所属的类别,该方式可以提升对告警类别进行识别的准确性;此外,该方式在构建用于识别告警类别的告警决策树的过程中,依据告警维度对各告警数据进行了优化建模,形成了各告警数据在各告警维度下分别对应一个分类值这样一种告警数据集,由于各告警维度分别具有的
分类的数目均比较少且彼此是相接近的(2~3类),因此,所构建的告警决策树也将具有更佳的分类、识别告警类别的效果。
[0046]
以下将结合示例分别对上述一些步骤进行详细说明。
[0047]
在上述步骤102的一个实施中,所述根据所述告警数据集,确定所述应用服务在变更阶段与变更相关的告警决策树,包括:分别针对所述告警类型对应的各第一分类值、所述告警子系统对应的各第二分类值、所述告警时间对应的各第三分类值和所述告警实体对应的各第四分类值,根据各第一分类值、各第二分类值、各第三分类值和各第四分类值分别在所述告警数据集中的各第一分布情况、各第二分布情况、各第三分布情况和各第四分布情况,确定所述告警类型、所述告警子系统、所述告警时间和所述告警实体分别对应的第一信息熵、第二信息熵、第三信息熵和第四信息熵;根据所述第一信息熵、所述第二信息熵、所述第三信息熵和所述第四信息熵,确定所述应用服务在变更阶段与变更相关的告警决策树。
[0048]
在本技术的某些实施中,所述根据各第二分类值分别在所述告警数据集中的各第二分布情况,确定所述告警子系统对应的第二信息熵,包括:分别获取第二分类值为直接关联、间接关联和无关联时的各正例的个数和对应的各反例的个数;其中,所述正例表示当前的告警数据与所述应用服务的变更相关,所述反例表示当前的告警数据与所述应用服务的变更不相关;根据各正例的个数和对应的各反例的个数,分别确定第二分类值为直接关联、间接关联和无关联时的直接关联信息熵、间接关联信息熵和无关联信息熵;根据所述直接关联信息熵、所述间接关联信息熵和所述无关联信息熵,确定所述告警子系统对应的第二信息熵。
[0049]
例如,针对表1所示的告警数据集,建立它对应的告警决策树的过程,就是选择不同的特征维度的数据集,对数据集不断进行划分的过程。该决策树构建过程中希望决策树的分支节点所包含的样本尽可能属于同一类别,分支节点的纯度越来越高。本技术实施例中采用度量样本集合纯度所常用的信息熵这一指标进行计算,假定当前样本集合d第k类样本所占的比例为p
k
(k=1,2,3

n),则d的信息熵(ent(d))的定义如下:
[0050][0051]
其中,ent(d)的值越小,则d的纯度越高。
[0052]
例如,对于表1所示的告警数据集,共有17条告警数据;在这17条告警数据中,子系统维度有三个可能的取值:直接关联、间接关联、无关联,且在表示出的17个告警数据中,有6个是直接关联(记录1、记录4、记录6、记录10、记录13、记录17),有6个是间接关联(记录2、记录3、记录7、记录8、记录9、记录15),有5个是无关联(记录5、记录11、记录12、记录14、记录16);其中,在6个是直接关联的里面,有3个是与变更相关的(记录1、记录4、记录6、),有3个不是与变更相关的(记录10、记录13、记录17),在6个是间接关联的里面,有4个是与变更相关的(记录2、记录3、记录7、记录8),有2个不是与变更相关的(记录9、记录15),在5个无关联里面,有1个是与变更相关的(记录11),有4个不是与变更相关的(记录5、记录12、记录14、记录16),如果告警和变更关联代表正例,和变更无关联代表反例,那么计算子系统特征维度的信息熵过程如下所示:
[0053]
d1{子系统=直接关联},正例3/6,反例3/6
[0054]
d2{子系统=间接关联},正例4/6,反例2/6
[0055]
d3{子系统=无关联},正例1/5,反例4/5
[0056]
这三个分支节点的信息熵为:
[0057][0058][0059][0060]
其中,ent(d1)表示子系统这一告警维度下的直接关联信息熵,ent(d2)表示子系统这一告警维度下的间接关联信息熵,ent(d3)表示子系统这一告警维度下的无关联信息熵。
[0061]
针对子系统这一告警维度,在得到直接关联信息熵ent(d1)、间接关联信息熵ent(d2)和无关联信息熵ent(d3)后,可计算子系统这一告警维度对应的第二信息熵:
[0062][0063]
同理,根据表1的数据,可以分别计算告警类型、告警时间和告警实体对应的第一信息熵(ent(d,类型))、第三信息熵(ent(d,时间))和第四信息熵(ent(d,实体)):
[0064]
ent(d,类型)=0.855
[0065]
ent(d,时间)=0.992
[0066]
ent(d,实体)=0.617
[0067]
从而,由于告警实体这一告警维度是4个告警维度中信息熵最小的一个告警维度,因此可以将表1表示的告警数据集以告警实体作为根节点进行数据集的划分,如图2所示,为本技术实施例提供的一种告警决策树构建示意图,其中,在将表1中表示的告警数据集以告警实体进行直接关联、间接关联和无关联这3种类型的数据集的划分后,在直接关联数据集d1中包括有记录1、记录2、记录3、记录4、记录5、记录6、记录8、记录10和记录15,在间接关联数据集d2中包括有记录7、记录9、记录13、记录14和记录17,在无关联数据集d3中包括有记录11、记录12和记录16。因此,针对于表1所示的告警数据集进行告警决策树的计算后,可以得到以告警实体作为根节点进行各子数据集的划分后,则针对任一个子数据集,可以告警类型、告警子系统、告警时间和告警实体中除去告警实体这一告警维度以外的其他3个告警维度进行新一轮的分支节点的确定,该确定分支节点的过程可以参考上述结合信息熵这一指标、将告警实体作为告警数据集的根节点的过程,此处不再赘述,直到没有告警维度可以选择位置,至此则得到最终的告警决策树。
[0068]
在本技术的某些实施中,所述根据所述第一信息熵、所述第二信息熵、所述第三信息熵和所述第四信息熵,确定所述应用服务在变更阶段与变更相关的告警决策树,包括:针对所述第一信息熵、所述第二信息熵、所述第三信息熵和所述第四信息熵,根据所述第一信息熵与所述告警数据集对应的信息熵、所述第二信息熵与所述告警数据集对应的信息熵、所述第三信息熵与所述告警数据集对应的信息熵和所述第四信息熵与所述告警数据集对应的信息熵,确定所述告警类型、所述告警子系统、所述告警时间和所述告警实体分别对应的第一信息增益、第二信息增益、第三信息增益和第四信息增益;其中,所述告警数据集对应的信息熵是根据所述告警数据集中正例的个数以及反例的个数确定的;从所述第一信息增益、所述第二信息增益、所述第三信息增益和所述第四信息增益中,将符合设定条件的信
息增益对应的告警维度作为根节点;根据所述根节点和第二告警维度,构建所述应用服务在变更阶段与变更相关的告警决策树;其中,所述第二告警维度是所述告警类型、所述告警子系统、所述告警时间和所述告警实体中除去所述根节点的各告警维度。
[0069]
例如,除了上述使用信息熵这一指标确定告警数据集对应的告警决策树的方式以外,还可以使用信息增益这一指标作为确定告警数据集对应的告警决策树的方式。
[0070]
假设告警维度a有v个可能的取值{a1,a2,

,av},若使用告警维度a对样本集d进行划分,则会产生v个分支,其中第v个分支包含了d中所有在告警维度a上取值为av的样本,记为dv;因此,首先可以计算出dv的信息熵,再考虑到不同的分支节点包含的样本数不同,给分支节点赋予权重|dv|/|d|,于是可以计算告警维度a对样本集d进行划分所获得的信息增益。
[0071][0072]
一般而言,信息增益越大,则意味着使用告警维度a进行划分所获得的纯度提升越大,因此可以选择信息增益来进行决策树的划分属性选择,其中可选取信息增益最大的告警维度作为决策树的分裂节点,即根节点。
[0073]
例如,根据前述的例子,在得到告警子系统、告警类型、告警时间和告警实体各自的信息熵后,可继续计算表1所示的告警数据集的信息熵,记作ent(d),由于表1所示的告警数据集中存在有8是与变更相关的告警,即有8个正例,存在有9个不是与变更相关的告警,即有9个反例,因此ent(d)可以通过下述方式进行确定:
[0074][0075]
因此,在得到表1所示的告警数据集对应的信息熵ent(d),则可以得到告警子系统、告警类型、告警时间和告警实体这4个告警维度分别对应的信息增益,其中:
[0076]
gain(d,告警子系统)=ent(d)

ent(d,子系统)=0.109
[0077]
gain(d,告警类型)=ent(d)

ent(d,类型)=0.143
[0078]
gain(d,告警时间)=ent(d)

ent(d,时间)=0.006
[0079]
gain(d,告警实体)=ent(d)

ent(d,实体)=0.381
[0080]
根据上述告警子系统、告警类型、告警时间和告警实体分别对应的信息增益,可确定其中的告警实体这一告警维度的信息增益最大,因此可选择告警实体作为对表1所示的告警数据集进行决策树建立的根节点。可以理解的是,通过计算,可以确定以信息增益这一指标对表1所示的告警数据集进行分类时,具有的效果与以信息熵这一指标对表1所示的告警数据集进行分类的效果是一致的,因此,在将表1所示的告警数据集以告警实体作为根节点进行子数据集的划分,所得到的各子数据集如图2所示。基于同样的道理,针对图2所示的各子数据集,可以告警类型、告警子系统、告警时间和告警实体中除去告警实体这一告警维度以外的其他3个告警维度进行新一轮的分支节点的确定,该确定分支节点的过程可以参考上述结合信息增益这一指标、将告警实体作为告警数据集的根节点的过程,此处不再赘述,直到没有告警维度可以选择为止,至此则得到最终的告警决策树。
[0081]
在上述步骤103的一个实施中,针对通过所述告警决策树识别出的与所述应用服
务的变更相关的各告警数据,确定所述各告警数据指示的告警类型分别对应的告警权重;对各告警类型指示的各告警按照告警权重由大到小的顺序进行处理。
[0082]
在本技术的某些实施中,所述确定各告警数据指示的告警类型分别对应的告警权重,包括:针对预设历史时段,获取各告警类型中的任一告警类型在所述应用服务任一次变更阶段中产生的告警次数;根据各告警次数,确定所述告警类型的平均告警次数;针对各告警类型中的任一告警类型,根据所述告警类型的平均告警次数和所述告警类型在当前变更阶段发生告警的次数,确定告警比率;根据预设阈值和各告警比率,确定各告警类型分别对应的告警权重。
[0083]
在本技术的某些实施中,所述针对各告警类型中的任一告警类型,根据所述告警类型的平均告警次数和所述告警类型在当前变更阶段发生告警的次数,确定告警比率,包括:若所述告警类型的平均告警次数大于所述告警类型在当前变更阶段发生告警的次数,则将所述告警类型在当前变更阶段发生告警的次数占所述告警类型的平均告警次数的比率作为告警比率;若所述告警类型的平均告警次数小于所述告警类型在当前变更阶段发生告警的次数,则将所述告警类型的平均告警次数占所述告警类型在当前变更阶段发生告警的次数的比率作为告警比率。
[0084]
例如,在根据表1所示的告警数据集确定出应用服务x对应的告警决策树后,当在未来的某一时刻点t,运维人员需要对应用服务x进行新一轮的变更时,可运用所构建的告警决策树对本次变更期间的各告警数据进行是否为变更引起的告警的准确识别。
[0085]
例如,设运维人员从时刻点t开始对应用服务x进行变更,变更时间为期1小时,则可以按照预设时间对该变更时间内产生的各告警数据进行是否为变更引起的告警的识别,如每10分钟执行一次识别操作,或每15分钟执行1次识别操作,本技术对预设时间不做限定。
[0086]
如此,设在某一次的识别操作过程中,可通过告警决策树而识别出来一些跟变更关联的告警;但是针对该些所识别出来的跟变更关联的告警,虽然它们与变更关联,由变更触发,但是却是属于运维人员实现变更过程中可预期的与变更关联的告警,此类告警可能不需要运维人员作出重点关注。例如一般有对程序服务进程存活性的监控,而在变更期间可能需要重启服务进程,那么可能触发进程存活性的告警;又如在变更过程中,可能涉及到变更发布包的分发传输、解压和部署等步骤,这些操作可能导致磁盘io,cpu的突发性升高,进而触发告警。以上列举的两类告警都是和变更关联,由变更触发,但却是变更过程中的正常现象,重要性不那么高,运维人员不需要特别关注。而对于偶现或者以前变更期间仅发生一到两次而本次突然频繁发生的告警类型,则可能跟本次变更强关联,比较重要,需要运维人员作出重点关注。因此,为了区分与变更相关的各告警的重要程度,可假设在过去一个历史时间段(如过去半年,或者过去3个月的时间)发生了n次变更,其中a类型告警在过去发生了{a1,a2,a3

an}次,那么在过去的历史时间段发生平均次数为:
[0087][0088]
如果当a类型告警在此次变更期间产生的次数为a
n+
1;
[0089]
则计算告警比率raito:或者,或者,
[0090]
如果绝对值raito(a)越接近1,则说明a类型告警越可能是在平时历史变更过程中也会触发的告警,不需要运维用户高度关注,因此可计算a类型告警的告警权重weight(a),其中:
[0091]
weight(a)=1

raito(a)
[0092]
比如,对于a类型告警,历史上10次变更中发生1次告警,则avg(a)=1/10=0.1,在此次变更中出现了一次,则a
n+1
=1,则weight(a)=1

0.1/1=0.99;
[0093]
b类型告警,历史上10次变更中发生11次告警,则avg(b)=11/10=1.1,在此次变更中出现了一次,则a
n+1
=1,则weight(b)=1

1/1.1=0.09;
[0094]
c类型告警,历史上10次变更中发生20次告警,则avg(c)=20/10=2,在此次变更中出现了6次,则a
n+1
=6,则weight(c)=1

2/6=0.67。
[0095]
则各类型告警的重要程度的排序为:a>c>b。因此,运维人员对于该3种类型告警,可以优先关注告警a,c类型告警次之,b类型告警最后予以关注。
[0096]
另外,对于历史变更阶段从未出现的、此次变更首次出现的告警,可将其平均值直接定义为0,告警权重则为其本次变更发生的次数。例如,上述例子中设还存在有d类型告警,该d类型告警此次变更首次出现,发生了2次,则weight(d)=2,其重要性在以上a、b、c、d这4类告警最为重要,运维人员需要首要关注。
[0097]
基于同样的构思,本技术实施例提供一种识别与应用服务变更相关的告警的装置的示意图,如图3所示,该装置包括告警数据获取单元301、告警数据集确定单元302和告警决策树确定单元303;
[0098]
告警数据获取单元301,用于获取应用服务在历史变更阶段产生的各告警数据。
[0099]
告警数据集确定单元302,用于根据告警类型对应的各第一分类值、告警子系统对应的各第二分类值、告警时间对应的各第三分类值和告警实体对应的各第四分类值,确定所述各告警数据对应的告警数据集;其中,各第二分类值包括直接关联、间接关联和无关联,各第三分类值包括变更时间内和变更时间外,各第四分类值包括直接关联、间接关联和无关联。
[0100]
告警决策树确定单元303,用于根据所述告警数据集,确定所述应用服务在变更阶段与变更相关的告警决策树;所述告警决策树用于识别所述应用服务在后续的各变更阶段产生的各告警数据是否与所述应用服务的变更相关。
[0101]
进一步的,对于该装置,告警决策树确定单元303,具体用于:分别针对所述告警类型对应的各第一分类值、所述告警子系统对应的各第二分类值、所述告警时间对应的各第三分类值和所述告警实体对应的各第四分类值,根据各第一分类值、各第二分类值、各第三分类值和各第四分类值分别在所述告警数据集中的各第一分布情况、各第二分布情况、各第三分布情况和各第四分布情况,确定所述告警类型、所述告警子系统、所述告警时间和所述告警实体分别对应的第一信息熵、第二信息熵、第三信息熵和第四信息熵;根据所述第一
信息熵、所述第二信息熵、所述第三信息熵和所述第四信息熵,确定所述应用服务在变更阶段与变更相关的告警决策树。
[0102]
进一步的,对于该装置,告警决策树确定单元303,具体用于:分别获取第二分类值为直接关联、间接关联和无关联时的各正例的个数和对应的各反例的个数;其中,所述正例表示当前的告警数据与所述应用服务的变更相关,所述反例表示当前的告警数据与所述应用服务的变更不相关;根据各正例的个数和对应的各反例的个数,分别确定第二分类值为直接关联、间接关联和无关联时的直接关联信息熵、间接关联信息熵和无关联信息熵;根据所述直接关联信息熵、所述间接关联信息熵和所述无关联信息熵,确定所述告警子系统对应的第二信息熵。
[0103]
进一步的,对于该装置,告警决策树确定单元303,具体用于:针对所述第一信息熵、所述第二信息熵、所述第三信息熵和所述第四信息熵,根据所述第一信息熵与所述告警数据集对应的信息熵、所述第二信息熵与所述告警数据集对应的信息熵、所述第三信息熵与所述告警数据集对应的信息熵和所述第四信息熵与所述告警数据集对应的信息熵,确定所述告警类型、所述告警子系统、所述告警时间和所述告警实体分别对应的第一信息增益、第二信息增益、第三信息增益和第四信息增益;其中,所述告警数据集对应的信息熵是根据所述告警数据集中正例的个数以及反例的个数确定的;从所述第一信息增益、所述第二信息增益、所述第三信息增益和所述第四信息增益中,将符合设定条件的信息增益对应的告警维度作为根节点;根据所述根节点和第二告警维度,构建所述应用服务在变更阶段与变更相关的告警决策树;其中,所述第二告警维度是所述告警类型、所述告警子系统、所述告警时间和所述告警实体中除去所述根节点的各告警维度。
[0104]
进一步的,对于该装置,还包括处理单元304;处理单元304,用于:针对通过所述告警决策树识别出的与所述应用服务的变更相关的各告警数据,确定所述各告警数据指示的告警类型分别对应的告警权重;对各告警类型指示的各告警按照告警权重由大到小的顺序进行处理。
[0105]
进一步的,对于该装置,处理单元304,具体用于:针对预设历史时段,获取各告警类型中的任一告警类型在所述应用服务任一次变更阶段中产生的告警次数;根据各告警次数,确定所述告警类型的平均告警次数;针对各告警类型中的任一告警类型,根据所述告警类型的平均告警次数和所述告警类型在当前变更阶段发生告警的次数,确定告警比率;根据预设阈值和各告警比率,确定各告警类型分别对应的告警权重。
[0106]
进一步的,对于该装置,处理单元304,具体用于:若所述告警类型的平均告警次数大于所述告警类型在当前变更阶段发生告警的次数,则将所述告警类型在当前变更阶段发生告警的次数占所述告警类型的平均告警次数的比率作为告警比率;若所述告警类型的平均告警次数小于所述告警类型在当前变更阶段发生告警的次数,则将所述告警类型的平均告警次数占所述告警类型在当前变更阶段发生告警的次数的比率作为告警比率。
[0107]
本技术实施例还提供了一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(personal digital assistant,pda)等。该计算设备可以包括中央处理器(center processing unit,cpu)、存储器、输入/输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(liquid crystal display,lcd)、阴极射线管(cathode ray tube,crt)等。
[0108]
存储器,可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器提供存储器中存储的程序指令和数据。在本技术实施例中,存储器可以用于存储识别与应用服务变更相关的告警的方法的程序指令;
[0109]
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行识别与应用服务变更相关的告警的方法。
[0110]
如图4所示,为本技术实施例提供的一种计算设备的示意图,该计算设备包括:
[0111]
处理器401、存储器402、收发器403、总线接口404;其中,处理器401、存储器402与收发器403之间通过总线405连接;
[0112]
所述处理器401,用于读取所述存储器402中的程序,执行上述识别与应用服务变更相关的告警的方法;
[0113]
处理器401可以是中央处理器(central processing unit,简称cpu),网络处理器(network processor,简称np)或者cpu和np的组合。还可以是硬件芯片。上述硬件芯片可以是专用集成电路(application

specific integrated circuit,简称asic),可编程逻辑器件(programmable logic device,简称pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,简称cpld),现场可编程逻辑门阵列(field

programmable gate array,简称fpga),通用阵列逻辑(generic array logic,简称gal)或其任意组合。
[0114]
所述存储器402,用于存储一个或多个可执行程序,可以存储所述处理器401在执行操作时所使用的数据。
[0115]
具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器402可以包括易失性存储器(volatile memory),例如随机存取存储器(random

access memory,简称ram);存储器402也可以包括非易失性存储器(non

volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,简称hdd)或固态硬盘(solid

state drive,简称ssd);存储器402还可以包括上述种类的存储器的组合。
[0116]
存储器402存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
[0117]
操作指令:包括各种操作指令,用于实现各种操作。
[0118]
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
[0119]
总线405可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0120]
总线接口404可以为有线通信接入口,无线总线接口或其组合,其中,有线总线接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线总线接口可以为wlan接口。
[0121]
本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行识别与应用服务变更相关的告警的方法。
[0122]
本领域内的技术人员应明白,本技术的实施例可提供为方法、或计算机程序产品。
因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0123]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0124]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0125]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0126]
尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
[0127]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1