告警根因定位方法和装置、电子设备
技术领域
本说明书一个或多个实施例涉及计算机应用技术领域,尤其涉及一种告警根因定位。
背景技术
现如今,在信息化时代,业务场景日新月异,频繁的业务功能更新和配置参数变更,都会导致层出不穷的异常告警,从而导致安全隐患和潜在损失,因此,如何在业务系统发生异常告警时,迅速定位异常告警的根因(Root Cause,根本原因)以及时止损,就成为亟待解决的问题。
发明内容
本说明书提供一种告警根因定位方法,所述方法包括:
基于历史业务调用数据计算各个潜在告警根因对应的权重值;
在检测到系统发生异常告警时,获取告警时刻之前预设时间段内的业务调用数据,并统计获取到的所述业务调用数据中,包含各个潜在告警根因的业务调用数据的数量;
基于所述权重值,对统计得到的包含各个潜在告警根因的业务调用数据的数量分别进行加权计算,并将加权值最高的至少一个潜在告警根因作为对应于所述异常告警的根因向用户输出,以使用户基于输出的潜在告警根因对所述异常告警进行告警根因定位。
本说明书还提供一种告警根因定位装置,所述装置包括:
计算模块,用于基于历史业务调用数据计算各个潜在告警根因对应的权重值;
统计模块,用于在检测到系统发生异常告警时,获取告警时刻之前预设时间段内的业务调用数据,并统计获取到的所述业务调用数据中,包含各个潜在告警根因的业务调用数据的数量;
输出模块,用于基于所述权重值,对统计得到的包含各个潜在告警根因的业务调用数据的数量分别进行加权计算,并将加权值最高的至少一个潜在告警根因作为对应于所述异常告警的根因向用户输出,以使用户基于输出的潜在告警根因对所述异常告警进行告警根因定位。
本说明书还提供一种电子设备,所述电子设备包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与用户注册的控制逻辑对应的机器可执行指令,所述处理器被促使:
基于历史业务调用数据计算各个潜在告警根因对应的权重值;
在检测到系统发生异常告警时,获取告警时刻之前预设时间段内的业务调用数据,并统计获取到的所述业务调用数据中,包含各个潜在告警根因的业务调用数据的数量;
基于所述权重值,对统计得到的包含各个潜在告警根因的业务调用数据的数量分别进行加权计算,并将加权值最高的至少一个潜在告警根因作为对应于所述异常告警的根因向用户输出,以使用户基于输出的潜在告警根因对所述异常告警进行告警根因定位。
在上述技术方案中,由于可以在检测到业务系统发生异常告警时,基于预先根据历史业务调用数据确定的各个潜在告警根因对应的权重值,对统计得到的包含该潜在告警根因业务调用数据的数量进行加权计算,并将加权值最高的至少一个潜在告警根因作为对应于本次异常告警的根因向用户输出,以供用户完成告警根因定位,因此对于业务系统的每次异常告警而言,都可以直接向用户输出对应的告警根因,而不再需要用户进行人工告警根因定位;另一方面,由于进行告警根因定位时采用的加权算法复杂度较低,因此也可以提高告警根因定位的效率。
附图说明
图1是本说明书一示例性实施例示出的一种告警根因定位方法的流程图;
图2是本说明书一示例性实施例示出的另一种告警根因定位方法的流程图;
图3是本说明书一示例性实施例示出的另一种告警根因定位方法的流程图;
图4是本说明书一示例性实施例示出的一种告警根因定位装置所在设备的硬件结构图;
图5是本说明书一示例性实施例示出的一种告警根因定位装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本说明书旨在提供一种告警根因定位的技术方案,具体地,可以基于历史业务调用数据确定各个潜在告警根因对应的权重值,并在检测到业务系统发生异常告警时,针对各个潜在告警根因,基于该潜在告警根因对应的权重值对统计得到的包含该潜在告警根因的业务调用数据的数量进行加权计算,以将加权值最高的至少一个潜在告警根因作为对应于本次异常告警的根因向用户输出,从而使用户可以基于输出的潜在告警根因对本次异常告警进行告警根因定位,即用户可以将输出的告警根因确定为本次异常告警的根因。
在上述技术方案中,由于可以在检测到业务系统发生异常告警时,基于预先根据历史业务调用数据确定的各个潜在告警根因对应的权重值,对统计得到的包含该潜在告警根因业务调用数据的数量进行加权计算,并将加权值最高的至少一个潜在告警根因作为对应于本次异常告警的根因向用户输出,以供用户完成告警根因定位,因此对于业务系统的每次异常告警而言,都可以直接向用户输出对应的告警根因,而不再需要用户进行人工告警根因定位;另一方面,由于进行告警根因定位时采用的加权算法复杂度较低,因此也可以提高告警根因定位的效率。
相关技术中,为了在业务系统发生异常告警时,确定异常告警的根因,可以基于不断累积的异常告警,以及对该异常告警进行人工告警根因定位后得到的告警根因,构建告警根因树。如果业务系统再次发生这种异常告警,则可以通过查询该告警根因树,直接得到该异常告警的根因并输出给用户,以供用户查看;但对于业务系统新发生的异常告警,则无法通过查询该告警根因树,得到新发生的异常告警的根因,而是需要重新对该异常告警进行人工告警根因定位,因此告警根因定位的效率较低。
或者,由于一次异常告警通常伴随有众多的潜在告警根因,因此可以通过分析多次异常告警中相似的根因,从共性角度出发,认为在本次异常告警中出现频繁的根因即为该异常告警的根因。然而采用这种方式,对业务系统发生的异常告警的根因的定位通常不够准确,即告警根因定位的错误率较高;另一方面,由于分析异常告警中的根因时采用的算法复杂度较高,因此告警根因定位的效率也较低。
为了解决上述问题,本说明书提供一种告警根因定位方法和装置、电子设备,以提高告警根因定位的效率。
请参考图1,图1是本说明书一示例性实施例示出的一种告警根因定位方法的流程图。该告警根因定位方法可以应用于业务系统中的计算机等电子设备,包括如下步骤:
步骤102,基于历史业务调用数据计算各个潜在告警根因对应的权重值。
在本实施例中,业务系统可以提供多个接口,通过调用这些接口,可以执行对应的业务。但在每次调用某个接口以执行对应的业务时,业务调用数据都可能不同。其中,业务调用数据可以包括:接口、接口请求参数、接口返回参数、请求量级、系统内部节点的有向无环结构、调用的上下游系统和部署单元等。在实际应用中,可以对业务调用数据进行分析,以将单位时间内(例如:1分钟内)相似的业务调用数据添加至同一个集合中,例如:可以将接口请求参数和接口返回参数的MD5值均相等的业务调用数据添加至同一个集合中。
对于各个业务调用数据集合而言,可以对该业务调用数据集合进行检测,以确定该业务调用数据集合是否为发生业务调用异常的业务调用数据集合。举例来说,可以预先建立正常业务调用数据库,该正常业务调用数据库中可以存储业务调用正常时得到的业务调用数据集合。后续,可以检测各个业务调用数据集合与该正常业务调用数据库中的业务调用数据集合是否匹配,如果是,则可以认为该业务调用数据集合是正常的业务调用数据集合,否则可以认为该业务调用数据集合是异常的业务调用数据集合。或者,也可以直接将上述业务系统发生异常告警的时刻之前单位时间内的业务调用数据集合确定为异常的业务调用数据集合。
另一方面,在每次调用某个接口以执行对应的业务后,还可以将本次调用生成的业务调用数据集合存储在历史业务调用数据库中,即该历史业务调用数据库中可以用于存储历史业务调用数据。其中,该历史业务调用数据库可以搭载在上述业务系统中,也可以是与该业务系统对接的数据库。在实际应用中,可以由用户设置该历史业务调用数据库中存储的历史业务调用数据集合的时间跨度。举例来说,假设用户针对该历史业务调用数据库存储的历史业务调用数据集合设置的时间跨度为一周,进一步地假设当前时刻为8月20日上午8:00,则该历史业务调用数据库中可以存储从8月13日上午8:00至8月20日上午8:00这段时间内的历史业务调用数据集合。
在本实施例中,由于异常的业务调用数据中通常包括告警根因,因此为了在业务系统发生异常告警时实现告警根因定位,可以提前获取该业务系统的历史业务调用数据。
具体地,可以获取存储在与上述业务系统对接的历史业务调用数据库中的所有历史业务调用数据集合;或者,在实际应用中,可以由用户设置获取的历史业务调用数据集合的时间跨度。举例来说,假设用户针对获取的历史业务调用数据集合设置的时间跨度为一周,进一步地假设开始获取该业务系统的历史业务调用数据集合的时刻为8月20日上午8:00,则可以获取存储在该历史业务调用数据库中的从8月13日上午8:00至8月20日上午8:00这段时间内的历史业务调用数据集合。
在获取到上述历史业务调用数据集合后,可以先从获取到的这些历史业务调用数据集合中确定异常的业务调用数据集合,再进一步地从确定的异常的业务调用数据集合中确定潜在告警根因。
在从上述历史业务调用数据中确定出各个潜在告警根因后,可以基于该历史调用数据计算确定的该潜在告警根因对应的权重值。
具体地,在示出的一种实施方式中,请参考图2,可以采用如下步骤实现基于上述历史调用数据计算确定的各个潜在告警根因对应的权重值:
步骤202,分别计算历史业务调用数据中包含各个潜在告警根因的历史业务调用数据的数量在所述历史业务调用数据的数量中的占比。
步骤204,将计算得到的所述占比确定为所述潜在告警根因对应的权重值。
针对确定的各个潜在告警根因,可以在上述历史业务调用数据中统计包含该潜在告警根因的历史业务调用数据的数量,并计算统计得到的数量在该历史业务调用数据的数量中的占比,以将计算得到的占比确定为该潜在告警根因对应的权重值。
举例来说,假设获取到的上述业务系统的历史业务调用数据集合的集合个数为N,进一步地假设针对确定的潜在告警根因1,在获取到的所有历史业务调用数据集合中,包含潜在告警根因1的历史业务调用数据集合的集合个数为M,则可以计算集合个数M在集合个数N中的占比X=M/N,并将占比X确定为潜在告警根因1对应的权重值。
在示出的一种实施方式中,请参考图3,可以采用如下步骤实现基于上述历史调用数据计算确定的各个潜在告警根因对应的权重值:
步骤302,分别计算历史业务调用数据中包含各个潜在告警根因的历史业务调用数据的时间跨度在所述历史业务调用数据的时间跨度中的占比。
步骤304,将计算得到的所述占比确定为所述潜在告警根因对应的权重值。
针对确定的各个潜在告警根因,可以在上述历史业务调用数据中统计包含该潜在告警根因的历史业务调用数据的时间跨度,并计算统计得到的时间跨度在该历史业务调用数据的时间跨度中的占比,以将计算得到的占比确定为该潜在告警根因对应的权重值。
举例来说,假设获取到的上述业务系统的历史业务调用数据的最早生成时间为T1,且最晚生成时间为T2,进一步地假设针对确定的潜在告警根因1,在获取到的所有历史业务调用数据中,包含潜在告警根因1的历史业务调用数据的最早生成时间为T3,且最晚生成时间为T4,则可以计算时间段T3~T4在时间段T1~T2中的占比Y=(T2-T1)/(T4-T3),并将占比Y确定为潜在告警根因1对应的权重值。
在示出的一种实施方式,针对某个潜在告警根因,可以在计算得到历史业务调用数据中包含该潜在告警根因的历史业务调用数据的数量在所述历史业务调用数据的数量中的占比X,以及计算得到历史业务调用数据中包含该潜在告警根因的历史业务调用数据的时间跨度在所述历史业务调用数据的时间跨度中的占比Y后,将占比X和占比Y同时确定为该潜在告警根因对应的权重值。
步骤104,在检测到系统发生异常告警时,获取告警时刻之前预设时间段内的业务调用数据,并统计获取到的所述业务调用数据中,包含各个潜在告警根因的业务调用数据的数量。
在前述步骤102中计算得到各个潜在告警根因对应的权重值后,可以在检测到系统发生异常告警时,获取告警时刻之前预设时间段内的业务调用数据。其中,该预设时间段可以由用户设置。举例来说,假设用户设置的预设时间段为10分钟,进一步地假设上述业务系统发生异常告警的时刻为8月25日下午17:45,则可以获取从8月25日下午17:35至8月25日下午17:45这段时间内的业务调用数据。
在获取到上述业务调用数据后,可以在该业务调用数据中,统计包含各个潜在告警根因的业务调用数据的数量。
举例来说,针对潜在告警根因1,可以在检测到系统发生异常告警时,获取告警时刻之前预设时间段内的业务调用数据集合,并在这些业务调用数据集合中,统计包含潜在告警根因1的业务调用数据集合的集合个数,并将统计得到的集合个数确定为上述业务调用数据中包含潜在告警根因1的业务调用数据的数量。
步骤106,基于所述权重值,对统计得到的包含各个潜在告警根因的业务调用数据的数量分别进行加权计算,并将加权值最高的至少一个潜在告警根因作为对应于所述异常告警的根因向用户输出,以使用户基于输出的潜在告警根因对所述异常告警进行根因定位。
针对各个潜在告警根因,可以在前述步骤104中统计得到上述业务调用数据中包含该潜在告警根因的业务调用数据的数量后,基于在前述步骤102中计算得到的该潜在告警根因对应的权重值,对统计得到的包含该潜在告警根因的业务调用数据的数量进行加权计算。
在示出的一种实施方式中,可以基于上述潜在告警根因对应的权重值,以及统计得到的包含该潜在告警根因的业务调用数据的数量进行线性计算,以得到该潜在告警根因的权重值。
具体地,假设统计得到的包含上述潜在告警根因的业务调用数据的数量为M0。
如果该潜在告警根因对应的权重值仅包括历史业务调用数据中包含该潜在告警根因的历史业务调用数据的数量在所述历史业务调用数据的数量中的占比X,则可以计算加权值1=M0×X作为该潜在告警根因对应的加权值。
如果该潜在告警根因对应的权重值仅包括历史业务调用数据中包含该潜在告警根因的历史业务调用数据的时间跨度在所述历史业务调用数据的时间跨度中的占比Y,则可以计算加权值2=M0×Y作为该潜在告警根因对应的加权值。
如果该潜在告警根因对应的权重值包括:历史业务调用数据中包含该潜在告警根因的历史业务调用数据的数量在所述历史业务调用数据的数量中的占比X,以及历史业务调用数据中包含该潜在告警根因的历史业务调用数据的时间跨度在所述历史业务调用数据的时间跨度中的占比Y,则可以计算加权值3=M0×Y+M0×Y作为该潜在告警根因对应的加权值。
在分别计算得到各个潜在告警根因对应的加权值后,可以将加权值最高的至少一个潜在告警根因作为对应于本次异常告警的根因向用户输出,从而使用户可以根据输出的潜在告警根因对本次异常告警进行告警根因定位。
在示出的一种实施方式中,可以将各个潜在告警根因,按照计算得到的对应的加权值按照从高到低的顺序进行排序。在完成排序后,可以从排序结果中排在首位的潜在告警根因开始,依次获取预设数量的潜在告警根因。其中,预设数量可以由用户设置。后续,可以将获取到的潜在告警根因作为对应于本次异常告警的根因向用户输出。
举例来说,假设用户设置的预设数量为3个,进一步地假设将各个潜在告警根因进行排序后得到的排序结果为:潜在告警根因1、潜在告警根因2、潜在告警根因3、潜在告警根因4、……,则可以将潜在告警根因1、潜在告警根因2、潜在告警根因3作为对应于本次异常告警的根因向用户输出,从而使用户可以根据潜在告警根因1、潜在告警根因2、潜在告警根因3对本次异常告警进行告警根因定位。
在上述技术方案中,由于可以在检测到业务系统发生异常告警时,基于预先根据历史业务调用数据确定的各个潜在告警根因对应的权重值,对统计得到的包含该潜在告警根因业务调用数据的数量进行加权计算,并将加权值最高的至少一个潜在告警根因作为对应于本次异常告警的根因向用户输出,以供用户完成告警根因定位,因此对于业务系统的每次异常告警而言,都可以直接向用户输出对应的告警根因,而不再需要用户进行人工告警根因定位;另一方面,由于进行告警根因定位时采用的加权算法复杂度较低,因此也可以提高告警根因定位的效率。
与前述告警根因定位方法的实施例相对应,本说明书还提供了告警根因定位装置的实施例。
本说明书告警根因定位装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书告警根因定位装置所在电子设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该告警根因定位的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图5,图5是本说明书一示例性实施例示出的一种告警根因定位装置的框图。该装置500可以应用于图4所示的电子设备,包括:
计算模块501,用于基于历史业务调用数据计算各个潜在告警根因对应的权重值;
统计模块502,用于在检测到系统发生异常告警时,获取告警时刻之前预设时间段内的业务调用数据,并统计获取到的所述业务调用数据中,包含各个潜在告警根因的业务调用数据的数量;
输出模块503,用于基于所述权重值,对统计得到的包含各个潜在告警根因的业务调用数据的数量分别进行加权计算,并将加权值最高的至少一个潜在告警根因作为对应于所述异常告警的根因向用户输出,以使用户基于输出的潜在告警根因对所述异常告警进行告警根因定位。
在本实施例中,所述计算模块501具体可以用于:
分别计算历史业务调用数据中包含各个潜在告警根因的历史业务调用数据的数量在所述历史业务调用数据的数量中的占比;
将计算得到的所述占比确定为所述潜在告警根因对应的权重值。
在本实施例中,所述计算模块501具体可以用于:
分别计算历史业务调用数据中包含各个潜在告警根因的历史业务调用数据的时间跨度在所述历史业务调用数据的时间跨度中的占比;
将计算得到的所述占比确定为所述潜在告警根因对应的权重值。
在本实施例中,所述输出模块503具体可以用于:
基于各个潜在告警根因对应的权重值,以及统计得到的包含所述潜在告警根因的业务调用数据的数量进行线性计算。
在本实施例中,所述输出模块503具体可以用于:
将所述潜在告警根因按照加权值从高到低的顺序进行排序;
从排序结果中排在首位的潜在告警根因开始,依次获取预设数量的潜在告警根因;
将获取到的所述潜在告警根因作为对应于所述异常告警的根因向用户输出。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与前述告警根因定位方法的实施例相对应,本说明书还提供了一种电子设备的实施例。该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与用户注册的控制逻辑对应的机器可执行指令,所述处理器被促使:
基于历史业务调用数据计算各个潜在告警根因对应的权重值;
在检测到系统发生异常告警时,获取告警时刻之前预设时间段内的业务调用数据,并统计获取到的所述业务调用数据中,包含各个潜在告警根因的业务调用数据的数量;
基于所述权重值,对统计得到的包含各个潜在告警根因的业务调用数据的数量分别进行加权计算,并将加权值最高的至少一个潜在告警根因作为对应于所述异常告警的根因向用户输出,以使用户基于输出的潜在告警根因对所述异常告警进行告警根因定位。
在本实施例中,通过读取并执行所述存储器存储的与用户注册的控制逻辑对应的机器可执行指令,所述处理器被促使:
分别计算历史业务调用数据中包含各个潜在告警根因的历史业务调用数据的数量在所述历史业务调用数据的数量中的占比;
将计算得到的所述占比确定为所述潜在告警根因对应的权重值。
在本实施例中,通过读取并执行所述存储器存储的与用户注册的控制逻辑对应的机器可执行指令,所述处理器被促使:
分别计算历史业务调用数据中包含各个潜在告警根因的历史业务调用数据的时间跨度在所述历史业务调用数据的时间跨度中的占比;
将计算得到的所述占比确定为所述潜在告警根因对应的权重值。
在本实施例中,通过读取并执行所述存储器存储的与用户注册的控制逻辑对应的机器可执行指令,所述处理器被促使:
基于各个潜在告警根因对应的权重值,以及统计得到的包含所述潜在告警根因的业务调用数据的数量进行线性计算。
在本实施例中,通过读取并执行所述存储器存储的与用户注册的控制逻辑对应的机器可执行指令,所述处理器被促使:
将所述潜在告警根因按照加权值从高到低的顺序进行排序;
从排序结果中排在首位的潜在告警根因开始,依次获取预设数量的潜在告警根因;
将获取到的所述潜在告警根因作为对应于所述异常告警的根因向用户输出。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。