发明内容
有鉴于此,本申请实施例的目的在于提供一种告警事件规则的解析方法、装置、电子设备及存储介质,能够对现有的告警事件规则进行简化,并结合告警事件规则中每个事件特征的特征内容,生成具有解释性的告警事件规则,进而提高处理告警事件的工作人员的工作效率。
第一方面,本申请实施例提供了一种告警事件规则的解析方法,所述解析方法包括:
获取包括多个事件特征的告警事件规则;其中,所述多个事件特征之间通过逻辑连接词和括号进行连接;
对所述告警事件规则中包括的多对最外层括号分别进行识别,根据识别出的每对最外层括号,以及所述告警事件规则中包括的逻辑连接词的类别,确定所述告警事件规则对应的多个第一规则单元;
逐级识别所述第一规则单元中包括的多对最外层括号,剔除所述第一规则单元中包括的逻辑连接词和所述多对最外层括号,得到所述第一规则单元对应的第一子集合;其中,多个第一子集合组成所述告警事件规则对应的第一总集合;
获取所述告警事件规则中每个事件特征对应的特征内容,基于每个事件特征对应的特征内容,以及每个事件特征在所述第一总集合中所处的位置,生成所述告警事件规则对应的目标规则。
在一种可能的实施方式中,所述对所述告警事件规则中包括的多对最外层括号分别进行识别,包括:
遍历所述告警事件规则,若检测到当前所在的第一字符为左括号,则将该左括号入栈至第一栈,并将该第一字符对应的第一序号在第二栈内进行存储;其中,所述告警事件规则中包括多个字符,每个字符均对应有唯一的序号;
若检测到当前所在的第二字符为右括号,则控制所述第一栈中栈顶的左括号出栈,将该第二字符对应的第二序号在第二栈内进行存储;
判断所述第一栈内是否为空,若为空,则返回第二栈内最新存储的第二序号,以及最新出栈的左括号对应的第一序号,基于返回的第一序号和第二序号,识别所述告警事件规则中包括的每对最外层括号。
在一种可能的实施方式中,通过如下方式确定每个事件特征对应的特征内容:
获取包括多个信号的事件特征规则;其中,所述多个信号之间通过逻辑连接词和括号进行连接;每个所述事件特征对应有唯一的所述事件特征规则;每个信息对应有目标状态值;
对所述事件特征规则中包括的多对最外层括号分别进行识别,根据识别出的每对最外层括号,以及所述事件特征规则中包括的逻辑连接词的类别,确定所述事件特征规则对应的多个第二规则单元;
逐级识别所述第二规则单元中包括的多对最外层括号,剔除所述第二规则单元中包括的逻辑连接词和所述多对最外层括号,得到所述第二规则单元对应的第二子集合;其中,多个第二子集合组成所述事件特征规则对应的第二总集合;
获取所述事件特征规则中每个信号对应的信号内容,基于每个信号对应的信号内容和目标状态值,以及每个信号在所述第二总集合中所处的位置,生成所述事件特征对应的特征内容。
在一种可能的实施方式中,所述第二总集合中每两个第二子集合之间是或的逻辑关系,每个第一子集合包括多个第二总集合,且所述多个第二总集合之间是与的逻辑关系,所述解析方法还包括:
针对每个第一子集合,从该第一子集合包括的每个第二总集合中随机选取一个第二子集合,得到该第一子集合对应的多个第一目标组合;
对所述多个第一目标组合进行去重处理,得到多个第二目标组合。
在一种可能的实施方式中,通过如下方式确定每个信息对应的目标状态值:
获取每个信号的初始状态值和对象名称;
针对每个信号,查找与该信息的初始状态值和对象名称相匹配的目标状态值。
在一种可能的实施方式中,在确定所述事件特征规则对应的多个第二规则单元之前,所述解析方法还包括:
遍历所述事件特征规则,若检测到当前所在的第三字符为左括号,则将该左括号入栈至第三栈;其中,所述事件特征规则中包括多个字符;
若检测到当前所在的第四字符为右括号,则控制所述第三栈中栈顶的左括号出栈;
在所述事件特征规则遍历完成后,判断所述第三栈内是否为空,若不为空,则显示括号不完整的提示信息,并终止对所述事件特征规则进行处理;若为空,则将所述事件特征规则确定为用于确定第二规则单元的事件特征规则。
在一种可能的实施方式中,在确定所述事件特征规则对应的多个第二规则单元之前,所述解析方法还包括:
获取所述事件特征规则中每个信号对应的取值方式和逻辑连接词;
将对应的取值方式为目标取值方式的信号确定为无效信号;和/或,将对应的逻辑连接词为目标逻辑连接词的信号确定为无效信号;
在所述事件特征规则中,将所述无效信号以及所述无效信号对应的逻辑连接词和目标状态值删除,得到用于确定第二规则单元的事件特征规则。
第二方面,本申请实施例提供了一种告警事件规则的解析装置,所述解析装置包括:
第一获取模块,用于获取包括多个事件特征的告警事件规则;其中,所述多个事件特征之间通过逻辑连接词和括号进行连接;
第一确定模块,用于对所述告警事件规则中包括的多对最外层括号分别进行识别,根据识别出的每对最外层括号,以及所述告警事件规则中包括的逻辑连接词的类别,确定所述告警事件规则对应的多个第一规则单元;
第一剔除模块,用于逐级识别所述第一规则单元中包括的多对最外层括号,剔除所述第一规则单元中包括的逻辑连接词和所述多对最外层括号,得到所述第一规则单元对应的第一子集合;其中,多个第一子集合组成所述告警事件规则对应的第一总集合;
第一生成模块,用于获取所述告警事件规则中每个事件特征对应的特征内容,基于每个事件特征对应的特征内容,以及每个事件特征在所述第一总集合中所处的位置,生成所述告警事件规则对应的目标规则。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行第一方面任一项所述的告警事件规则的解析方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行第一方面任一项所述的告警事件规则的解析方法的步骤。
本申请实施例提供的告警事件规则的解析方法、装置、电子设备及存储介质,获取包括多个事件特征的告警事件规则;其中,所述多个事件特征之间通过逻辑连接词和括号进行连接;对所述告警事件规则中包括的多对最外层括号分别进行识别,根据识别出的每对最外层括号,以及所述告警事件规则中包括的逻辑连接词的类别,确定所述告警事件规则对应的多个第一规则单元;逐级识别所述第一规则单元中包括的多对最外层括号,剔除所述第一规则单元中包括的逻辑连接词和所述多对最外层括号,得到所述第一规则单元对应的第一子集合;其中,多个第一子集合组成所述告警事件规则对应的第一总集合;获取所述告警事件规则中每个事件特征对应的特征内容,基于每个事件特征对应的特征内容,以及每个事件特征在所述第一总集合中所处的位置,生成所述告警事件规则对应的目标规则。本申请实施例能够对现有的告警事件规则进行简化,并结合告警事件规则中每个事件特征的特征内容,生成具有解释性的告警事件规则,进而提高处理告警事件的工作人员的工作效率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
现阶段,在对电网的运行状态进行监控时,通常对采集到的多种告警信号进行判断,确定多种告警信号对应的电网告警事件,进而对确定的电网告警事件进行相关处理。实际中,随着智能变电设备、采集设备在输配电网络中的大规模使用,电网的告警信号数量也随之增加,监控人员在短时间内无法处理所有的告警信号,因此,通常使用监督学习模型对告警信号进行处理,监督学习模型对应有告警事件规则,将告警信号输入到监督学习模型中,监督学习模型基于告警事件规则对告警信号进行相关处理,输出对应的告警事件。但是,监督学习模型对应的告警事件规则并不具备直观的可解释性,导致处理告警事件的工作人员难以理解告警事件所触发的具体规则,不便于对告警事件进行准确高效地处理。
基于上述问题,本申请实施例提供的告警事件规则的解析方法、装置、电子设备及存储介质,获取包括多个事件特征的告警事件规则;其中,所述多个事件特征之间通过逻辑连接词和括号进行连接;对所述告警事件规则中包括的多对最外层括号分别进行识别,根据识别出的每对最外层括号,以及所述告警事件规则中包括的逻辑连接词的类别,确定所述告警事件规则对应的多个第一规则单元;逐级识别所述第一规则单元中包括的多对最外层括号,剔除所述第一规则单元中包括的逻辑连接词和所述多对最外层括号,得到所述第一规则单元对应的第一子集合;其中,多个第一子集合组成所述告警事件规则对应的第一总集合;获取所述告警事件规则中每个事件特征对应的特征内容,基于每个事件特征对应的特征内容,以及每个事件特征在所述第一总集合中所处的位置,生成所述告警事件规则对应的目标规则。本申请实施例能够对现有的告警事件规则进行简化,并结合告警事件规则中每个事件特征的特征内容,生成具有解释性的告警事件规则,进而提高处理告警事件的工作人员的工作效率。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本申请针对上述问题所提出的解决方案,都应该是发明人在本申请过程中对本申请做出的贡献。
下面将结合本申请中附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本申请实施例所公开的一种告警事件规则的解析方法进行详细介绍,本申请实施例所提供的告警事件规则的解析方法的执行主体是计算机服务器。
参见图1所示,图1为本申请实施例提供的告警事件规则的解析方法的流程图,该解析方法包括以下步骤:
S101、获取包括多个事件特征的告警事件规则;其中,所述多个事件特征之间通过逻辑连接词和括号进行连接。
本申请实施例中,在对电网的运行状态进行监控时,需要获取电网的智能变电设备、采集设备等多种设备的监控告警信号,以及电网的电能传输线路的监控告警信号,并基于获取到的多种信号,将分散的信号聚合为有逻辑关联的告警事件,比如,35kV及以下线路瞬时故障,这里,为了方便确定由信号生成告警事件的电网规则,引入了事件特征这个中间量,事件特征是介于信号和事件之间的虚拟概念。这里,告警事件规则是事件规则表中的规则表达式。
在确定电网规则时,首先确定包括多个信号的事件特征规则,以及包括多个事件特征的告警事件规则,再基于事件特征规则和告警事件规则确定由信号生成告警事件的电网规则,使用电网规则,可以确定多个信号对应的告警事件。
需要说明的是,每个告警事件对应有唯一的告警事件规则,且告警事件规则不具备直观的可解释性,工作人员基于告警事件规则无法确定告警事件的哪些信号不符合对应的规则,也无法确定不同的告警事件规则之间的区别,告警事件规则是抽象的规则,比如,某一告警事件的告警事件规则为(@1∣@2∣@3∣@4)&@5,其中,@1、@2、@3、@4、@5分别为事件特征,“∣”为逻辑连接词“或”,“&”为逻辑连接词“和”。
S102、对所述告警事件规则中包括的多对最外层括号分别进行识别,根据识别出的每对最外层括号,以及所述告警事件规则中包括的逻辑连接词的类别,确定所述告警事件规则对应的多个第一规则单元。
本申请实施例中,每个告警事件规则中可以包括一个最外层括号,比如,(@1∣@2∣@3∣@4)&@5,也可以包括多个最外层括号,其中,每两个相邻的最外层括号之间用逻辑连接词进行连接,比如,(@1∣@2∣@3∣@4)∣(@5&@6),或者,(@1∣@2∣@3∣@4)&(@5&@6),还可以不包括最外层括号,即不包括任何括号,比如,@1&@2&@3&@4,这个告警事件规则中没有括号,那么这个告警事件规则的整体就是一次解析时要解析的规则。对告警事件规则进行一次解析,在一次解析时,解析的内容不能跨越括号,如果有括号,把最外层括号中的内容当成一个整体,没有括号就不处理。在对告警事件规则中最外层括号进行识别后,对告警事件规则进行一次解析,得到告警事件规则对应的多个第一规则单元。
对告警事件规则中包括的每对最外层括号进行识别,将最外层括号包含的信息视作一个整体,也即一个元素,由该整体与其他元素进行逻辑运算。其中,“&”表示将两个元素兼并至一个第一规则单元中;“|”表示将参与运算的元素划分至不同的第一规则单元中。
比如,针对告警事件规则(@1∣@2∣@3∣@4)∣(@5&@6),(@1∣@2∣@3∣@4)和(@5&@6)都是由最外层括号包括的整体,用X代表(@1∣@2∣@3∣@4),用Y代表(@5&@6),该告警事件规则等同于X∣Y,X和Y由逻辑连接词“∣”连接,“∣”表示将参与运算的元素划分至不同的第一规则单元中,因此,该告警事件规则可以表示为[[X],[Y]],这里,(@1∣@2∣@3∣@4)和(@5&@6)都是第一规则单元。
针对告警事件规则(@1&@2&@3&@4)∣@5,(@1&@2&@3&@4)是由最外层括号包括的整体,@5是一个元素,用X代表(@1&@2&@3&@4),用Y代表@5,该告警事件规则等同于X∣Y,X和Y由逻辑连接词“∣”连接,因此,该告警事件规则可以表示为[[X],[Y]],这里,(@1&@2&@3&@4)和@5都是第一规则单元。
针对告警事件规则(@1∣@2∣@3)&(@4∣@5),(@1∣@2∣@3)和(@4∣@5)都是由最外层括号包括的整体,用X代表(@1∣@2∣@3),用Y代表(@4∣@5),X和Y由逻辑连接词“&”连接,因此,该告警事件规则可以表示为[[X,Y]],确定(@1∣@2∣@3)&(@4∣@5)为第一规则单元。
S103、逐级识别所述第一规则单元中包括的多对最外层括号,剔除所述第一规则单元中包括的逻辑连接词和所述多对最外层括号,得到所述第一规则单元对应的第一子集合;其中,多个第一子集合组成所述告警事件规则对应的第一总集合。
本申请实施例中,第一规则单元的实质内容中可能包括逻辑连接词和最外层括号,逐级识别第一规则单元中包括的最外层括号,参照步骤102的方式剔除每个第一规则单元中包括的最外层括号和逻辑连接词,得到每个第一规则单元对应的第一子集合,并将多个第一规则单元分别对应的第一子集合作为告警事件规则对应的第一总集合。
比如,告警事件规则为(((@1&@2&@3)&@4)&(@5&@6))∣@5,其中,第一规则单元X=(((@1&@2&@3)&@4)&(@5&@6)),第一规则单元Y=@5,采用步骤102的方法识别X的最外层括号,并将识别出的最外层括号剔除,得到((@1&@2&@3)&@4)&(@5&@6),进而识别第一规则单元X内的第一级最外层括号,得到((@1&@2&@3)&@4)和(@5&@6),参照步骤102的处理方式,得到X=[(@1&@2&@3),@4,@5,@6],进而识别该第一规则单元X内的第二级最外层括号,得到(@1&@2&@3),参照步骤102的处理方式,(@1&@2&@3)可以表示为@1,@2,@3,进而将第一规则单元X表示为X=[@1,@2,@3,@4,@5,@6],这里,“[]”用于表示“[]”内包含的内容是第一规则单元,此时,第一规则单元内部不包含逻辑连接词和最外层括号,将不含有逻辑连接词和最外层括号的表达形式确定为第一规则单元对应的第一子集合。并将多个第一规则单元分别对应的第一子集合作为告警事件规则对应的第一总集合,得到[[@1,@2,@3,@4,@5,@6],[@5]]。
需要说明的是,告警事件规则对应的第一总集合是二层嵌套的结构,即[[A],[B],[C],[D],……]的结构,其中,[A],[B],[C],[D],……分别为每个第一规则单元对应的第一子集合。
S104、获取所述告警事件规则中每个事件特征对应的特征内容,基于每个事件特征对应的特征内容,以及每个事件特征在所述第一总集合中所处的位置,生成所述告警事件规则对应的目标规则。
本申请实施例中,第一总集合中不包括逻辑连接词和最外层括号,第一总集合内包括多个事件特征,预存有每个事件特征对应的特征内容,其中,特征内容具体为每个事件特征对应的多个信号的具体内容,根据每个事件特征对应的特征内容,以及每个事件特征在第一总集合中所处的位置,生成告警事件规则对应的目标规则,其中,目标规则为前文中的电网规则,是一种具有解释性的告警事件规则,完成了告警事件规则从不具有解释性到具有解释性的转变。
比如,告警事件规则(rule)对应的第一总集合为[[@1]],告警事件规则的名称(“event_feat_name)为[精准]主变升档(远方操作成功),事件范围(event_scope)为系统内,事件类型(event_type)为主要特征,在告警事件解析结果中,增加了空间约束字典,即scope内容,该字典中,针对告警事件内的所有事件特征,给出了每个事件特征内部信号的空间约束条件,这里,事件特征@1对应有两个信号,该两个信号的空间约束条件分别为:同主变、同间隔,事件特征@1的有效时间(time)为10.0,事件特征@1的事件特征属性(type)为主要特征(main)。
{“content”:[
[{“event_feat_name”:“[精准]主变升档(远方操作成功)”,
“event_scope”:“系统内”,
“event_type”:“主要特征”}]],
“name”:“[精准]主变升档(远方操作成功)”,
“rule”:“@1”,
“scope”:{“[精准]主变升档(远方操作成功)”:“同主变”,
“主变档位调节伴随信号”:“同间隔”},
“time”:10.0,
“type”:“main”}
根据事件特征@1对应的特征内容,以及事件特征@1在第一总集合[[@1]]中所处的位置,生成告警事件规则对应的目标规则:
{“array”:[
[{“event_feat_name”:“[精准]主变升档(远方操作成功)”,
“event_feat_time”:60.0,
“norm_bay”:“空”,
“norm_bay_type”:“空”,
“norm_equip”:“空”,
“signal_feature”:“空”,
“status”:“1”,},
{“event_feat_name”:“[精准]主变升档(远方操作成功)”,
“event_feat_time”:60.0,
“norm_bay”:“空”,
“norm_bay_type”:“空”,
“norm_equip”:“空”,
“signal_feature”:“空”,
“status”:“311”,}]],
“content”:[
[{“event_feat_name”:“[精准]主变升档(远方操作成功)”,
“event_scope”:“系统内”,
“event_type”:“主要特征”}]],
“name”:“[精准]主变升档(远方操作成功)”,
“rule”:“@1”,
“scope”:{“[精准]主变升档(远方操作成功)”:“同主变”,
“主变档位调节伴随信号”:“同间隔”},
“time”:10.0,
“type”:“main”}
需要说明的是,目标规则中存在一种新的结构,即[2,(x,y,z)],表示在括号内的元素中任选2个的组合。
本申请实施例提供的告警事件规则的解析方法,能够对现有的告警事件规则进行简化,并结合告警事件规则中每个事件特征的特征内容,生成具有解释性的告警事件规则,进而提高处理告警事件的工作人员的工作效率。
进一步的,参见图2所示,本申请实施例提供的告警事件规则的解析方法中,所述对所述告警事件规则中包括的多对最外层括号分别进行识别,包括:
S201、遍历所述告警事件规则,若检测到当前所在的第一字符为左括号,则将该左括号入栈至第一栈,并将该第一字符对应的第一序号在第二栈内进行存储;其中,所述告警事件规则中包括多个字符,每个字符均对应有唯一的序号。
本申请实施例中,使用栈算法对告警事件规则中包括的多对最外层括号分别进行识别,其中,栈是一种线性序列结构,它的特殊之处在于,栈对于其中的元素的访问做了限制,只能从序列的某一端进行读写操作,栈最底部的元素是最先入栈的,而栈顶元素是最后入栈的,但是出栈时则倒了过来,栈顶元素先出栈,栈底元素最后出栈。所以,栈中元素遵循“后进先出”的规律。
本申请实施例中,对应有第一栈和第二栈,第一栈用于存储告警事件规则中的左括号,第二栈用于存储存储告警事件规则中左括号和右括号的序号,这里,告警事件规则中包括多个字符,每个字符均对应有唯一的序号,遍历告警事件规则中的每个字符,若检测到当前所在的第一字符为左括号,则将该左括号入栈至第一栈,并将第一字符的第一序号在第二栈内进行存储。
S202、若检测到当前所在的第二字符为右括号,则控制所述第一栈中栈顶的左括号出栈,将该第二字符对应的第二序号在第二栈内进行存储。
本申请实施例中,若检测到当前所在的第二字符为右括号,则确定该右括号与第一栈中位于栈顶的左括号是一对括号,此时,第一栈中位于栈顶的左括号对应有匹配的右括号,将栈顶的左括号出栈,并记录该第二字符对应的第二序号,将第二序号在第二栈内进行存储。第一栈内用于存储未匹配到右括号的左括号,第二栈用于存储每个左括号和右括号的序号。
S203、判断所述第一栈内是否为空,若为空,则返回第二栈内最新存储的第二序号,以及最新出栈的左括号对应的第一序号,基于返回的第一序号和第二序号,识别所述告警事件规则中包括的每对最外层括号。
本申请实施例中,在控制第一栈中栈顶的左括号出栈之后,判断当前的第一栈是否为空,若为空,说明在当前所在的第二字符之前所有的左括号都对应有匹配的右括号,将当前所在的第二字符的右括号确定为最外层括号的右括号,将与当前所在的第二字符的右括号相匹配的左括号确定为最外层括号的左括号,其中,从第一栈中最新出栈的左括号为与当前所在的第二字符的右括号相匹配的左括号,返回其在第二栈中的第一序号,以及当前所在的第二字符的第二序号,基于返回的第一序号和第二序号,确定告警事件规则的最外层括号。
进一步的,参见图3所示,本申请实施例提供的告警事件规则的解析方法中,通过如下方式确定每个事件特征对应的特征内容:
S301、获取包括多个信号的事件特征规则;其中,所述多个信号之间通过逻辑连接词和括号进行连接;每个所述事件特征对应有唯一的所述事件特征规则;每个信息对应有目标状态值。
本申请实施例中,每个事件特征对应有唯一的事件特征规则,且事件特征规则不具备直观的可解释性,需要把事件特征规则转换为具有解释性的特征内容,事件特征规则中包括多个信号以及每个信号对应的初始状态值,上述多个信号之间通过逻辑连接词和括号进行连接。这里,事件特征规则是事件特征规则表中的规则表达式。
比如,某一事件特征的事件特征规则为((@1=1->@1=0->@1=1)&@2=1)∣((@3=1->@3=0)&@4=1),其中,@1、@2、@3、@4分别为信号,每个信号的等号后面是该信号的初始状态值,“∣”为逻辑连接词“或”,“&”为逻辑连接词“和”,逻辑连接词“->”连接的元素是一个有序子集合,(@1=1->@1=0->@1=1)表示信号@1的初始状态值由1变0再变1。
需要说明的是,在每个事件特征下,每个@1、@2、@3、@4……代表唯一的信号,但是在不同的事件特征下,相同的@1、@2、@3、@4……可能代表不同的信号。
S302、对所述事件特征规则中包括的多对最外层括号分别进行识别,根据识别出的每对最外层括号,以及所述事件特征规则中包括的逻辑连接词的类别,确定所述事件特征规则对应的多个第二规则单元。
本申请实施例中,确定事件特征规则对应的多个第二规则单元的方法,参照步骤102中确定告警事件规则对应的多个第一规则单元的方法,重复之处不再赘述。
举例来讲,针对事件特征规则((@1=1->@1=0->@1=1)&@2=1)∣((@3=1->@3=0)&@4=1),首先识别到两个最外层括号的存在,分别为((@1=1->@1=0->@1=1)&@2=1)=X,((@3=1->@3=0)&@4=1)=Y,并将其作为整体处理,事件特征规则等同于X∣Y,应用“∣”运算的定义,X∣Y转化为[[X],[Y]],至此,事件特征规则的一次解析完成,得到事件特征规则对应的多个第二规则单元X、Y。
S303、逐级识别所述第二规则单元中包括的多对最外层括号,剔除所述第二规则单元中包括的逻辑连接词和所述多对最外层括号,得到所述第二规则单元对应的第二子集合;其中,多个第二子集合组成所述事件特征规则对应的第二总集合。
本申请实施例中,以一次解析结果[[X],[Y]]作为入参,查看每个第二规则单元的信息,对于第二规则单元X,去除X的最外层括号后,得到(@1=1->@1=0->@1=1)&@2=1,由于字符串中仍然存在最外层括号与逻辑连接词,因此对(@1=1->@1=0->@1=1)&@2=1继续执行一次解析,即X=[[M,@2=1]],其中M=(@1=1->@1=0->@1=1)。在[[X],[Y]]中将X进行替换,替换的结果要继续保持二层嵌套的结构,因此需要将X的子元素作为与Y同级的元素进行替换,总的解析结果变为[[M,@2=1],[Y]]对于M,Y的分解遵从此思想,该数据结构将被不断的扩充,直到该第二规则单元的表达式没有最外层括号和逻辑连接词为止,该第二规则单元的最终解析结果为:[[(@1=1,@1=0,@1=1),@2=1],[(@3=1,@3=0),@4=1]],为了对有序元素和无序元素进行区分,以小括号形式包含所有的有序元素,使之与集合内的无序元素为同级关系,其中,(@1=1,@1=0,@1=1)与(@1=1->@1=0->@1=1)相对应,括号内是有序元素,表示信号@1的初始状态值由1变0再变1,(@3=1,@3=0)与(@3=1->@3=0)相对应,括号内是有序元素,表示信号@3的初始状态值由1变0。
S304、获取所述事件特征规则中每个信号对应的信号内容,基于每个信号对应的信号内容和目标状态值,以及每个信号在所述第二总集合中所处的位置,生成所述事件特征对应的特征内容。
本申请实施例中,对应有每个信号的信号内容,获取特定的事件特征规则下每个信号对应的信号内容和目标状态值。这里,通过如下方式确定每个信息对应的目标状态值:
获取每个信号的初始状态值和对象名称;针对每个信号,查找与该信息的初始状态值和对象名称相匹配的目标状态值。
事件特征规则中包括每个信号对应的初始状态值,且每个信号均对应有对象名称,这里,初始状态值只能是0、1两种情况,但是信号的目标状态值可能会对应有多种情况,因此,使用初始状态值和对象名称两个参数进行排列组合,得到多种组合方式,每种组合方式均对应唯一的目标状态值,即信号的类别,建立初始状态值和对象名称,与目标状态值的对应关系,比如,若@1=1且@1的对象名称为人工遥控执行,则@1的目标状态值为300。
需要说明的是,事件特征可能存在嵌套,即作为信号的元素可能为另一个事件特征,此时,为了对信号和事件特征进行区分,信号表示为@1=1,事件特征表示为nf1@1=1,其中,“nf”为nested feature的缩写,意为嵌套特征,nf1即被嵌套事件特征的第一个嵌套特征,nf2为第二个,以此类推。
本申请实施例中,在获取事件特征规则中每个信号对应的信号内容和目标状态值之后,基于每个信号在第二总集合中所处的位置,生成事件特征对应的特征内容。
其中,每个信号的信号内容包括:所属间隔、所属设备、信号特征、取值方式、所属间隔类型、取值方式等多种信息。
举例来讲,信号@1的信号内容为:
{“event_feat_name”:“[精准]主变升档(远方操作成功)”,
“event_feat_time”:60.0,
“norm_bay”:“空”,
“norm_bay_type”:“空”,
“norm_equip”:“空”,
“signal_feature”:“空”,
“status”:“311”}
进一步的,参见图4所示,本申请实施例提供的告警事件规则的解析方法中,所述第二总集合中每两个第二子集合之间是或的逻辑关系,每个第一子集合包括多个第二总集合,且所述多个第二总集合之间是与的逻辑关系,所述解析方法还包括:
S401、针对每个第一子集合,从该第一子集合包括的每个第二总集合中随机选取一个第二子集合,得到该第一子集合对应的多个第一目标组合。
本申请实施例中,第一子集合包括多个第二总集合,第二总集合之间是“与”的逻辑关系,即多个第二总集合需要同时存在,第二总集合中包括多个第二子集合,且多个第二子集合之间是“或”的逻辑关系,即只要存在一个第二子集合,第二总集合就是成立的,针对每个第一子集合,采用笛卡尔积的计算方法,从第一子集合下的每个第二总集合中随机选取该个第二总集合的任一第二子集合,得到一个第一目标组合,经过多次随机选取,可以得到多个第一目标组合。
比如,第一子集合对应有两个第二总集合,分别为第二总集合A[[3,4,5],[1,2,3,4],[4,5]],第二总集合B[[1,2,3],[1,2]],第二总集合A中包括三个第二子集合,分别为A1[3,4,5],A2[1,2,3,4],A3[4,5],第二总集合B中包括两个第二子集合,分别为B1[1,2,3],B2[1,2],对A1、A2、A3,以及B1、B2进行排列组合,得到A1&B1、A2&B1、A3&B1、A1&B2、A2&B2、A3&B2六种情况。
S402、对所述多个第一目标组合进行去重处理,得到多个第二目标组合。
本申请实施例中,多个第一目标组合中可能包括内容相同的第一目标组合,针对内容相同的多个第一目标组合,仅保留一个第一目标组合,将其余重复的第一目标组合删除,得到内容互不相同的多个第二目标组合。
比如,A1&B2、A3&B1的内容都是[1,2,3,4,5],保留A1&B2、A3&B1中的任一个,剔除另外一个,得到互不重复的第二目标组合。
进一步的,参见图5所示,本申请实施例提供的告警事件规则的解析方法中,在对事件特征规则进行解析之前,需要对事件特征规则进行预处理,具体的,需要对事件特征规则的括号完整性进行检查,在确定所述事件特征规则对应的多个第二规则单元之前,所述解析方法还包括:
S501、遍历所述事件特征规则,若检测到当前所在的第三字符为左括号,则将该左括号入栈至第三栈;其中,所述事件特征规则中包括多个字符。
本申请实施例中,每个事件特征规则中包括多个字符,遍历事件特征规则的每个字符,若检测到当前所在的第三字符为左括号,则将该左括号入栈至第三栈。
S502、若检测到当前所在的第四字符为右括号,则控制所述第三栈中栈顶的左括号出栈。
本申请实施例中,若检测到当前所在的第四字符为右括号,将最靠近该右括号的左括号,确定为与该右括号匹配的左括号,即第三栈中栈顶的左括号为与该右括号匹配的左括号,将该左括号从第三栈中出栈,此时,第三栈中的左括号都是没有匹配到右括号的左括号。
S503、在所述事件特征规则遍历完成后,判断所述第三栈内是否为空,若不为空,则显示括号不完整的提示信息,并终止对所述事件特征规则进行处理;若为空,则将所述事件特征规则确定为用于确定第二规则单元的事件特征规则。
本申请实施例中,当遍历完事件特征规则的最后一个字符后,判断第三栈是否为空,若不为空,则说明此时第三栈中还存在没有匹配到右括号的左括号,事件特征规则的括号不具有完整性,进而显示括号不完整的提示信息,并终止对事件特征规则进行处理;若为空,说明事件特征规则中的每个左括号都有匹配的右括号,事件特征规则的括号具有完整性,可以对事件特征规则进行解析。
进一步的,当前只能进行正向搜索,即支持“与”、“或”逻辑,而“非”逻辑属于反向搜索,即排除不包含的内容,考虑到搜索的效率,目前没有加入反向搜索逻辑,为此,需要对事件特征规则中的“非”逻辑进行剔除,如“!@1=1&!@2=1&@3=1&@4=1”,处理后的结果变为“@3=1&@4=1”。需要说明的是,上文中“搜索”是指将规则转化为集合(即将告警事件规则转化为第一总集合,或者,将事件特征规则转化为第二总集合),再将集合转化成点、边构成的图,生成规则图谱,当接入真实的告警信号时,对接入的告警信号进行解析,并生成该告警信号对应的信号图谱,“搜索”就是在实时告警信号生成的信号图谱中查找所有的规则图谱,以确定特定的告警信号对应的事件名称,从而实现离散告警信号的事件化。
另外,每个信号均对应有取值方式,取值方式包括“告警”、“特征”、“实时库”三种值,其中,“实时库”属于遥测数据,目前无法获得,因此需要清除实时库信息,具体的,参见图6所示,在确定所述事件特征规则对应的多个第二规则单元之前,所述解析方法还包括:
S601、获取所述事件特征规则中每个信号对应的取值方式和逻辑连接词。
S602、将对应的取值方式为目标取值方式的信号确定为无效信号;和/或,将对应的逻辑连接词为目标逻辑连接词的信号确定为无效信号。
S603、在所述事件特征规则中,将所述无效信号以及所述无效信号对应的逻辑连接词和目标状态值删除,得到用于确定第二规则单元的事件特征规则。
本申请实施例中,综合步骤601-步骤603,目标取值方式为“实时库”,若信号的取值方式为“实时库”,则确定该信号为无效信号,目标逻辑连接词为“非”逻辑,若信号对应的逻辑连接词为“非”,则确定该信号为无效信号,在事件特征规则中,将与无效信号相关的内容全部删除,具体的,将无效信号的对应的逻辑连接词和初始状态值删除,基于删除处理后的事件特征规则,对事件特征规则进行解析。
除了对事件特征规则的括号完整性进行检查,“非”逻辑的元素去除,清洗实时库元素之外,预处理还包括:
(1)判断事件特征规则是否为空,若为空,则不对事件特征规则进行解析。
(2)连续逻辑符号检查。解析算法通过定义“&”,“|”,“!”,“->”的计算逻辑和括号的优先级执行解析,要保证一个运算符的两端都是参与运算的元素(即@x),如果出现“@1=1&|&@2=1”,即逻辑运算符连续出现两个或两个以上的情况,不予执行该条规则的解析。
(3)@符号缺失检查。@符号为元素的标识符,如果事件特征规则中缺失@符号,无法完成后续的处理,比如“@1=1&2=1”,由于缺失@符号,不予执行该条规则的解析。
(4)事件特征规则与信号类型一致性的检查。如果事件特征规则中出现了@1、@2、@3,但不存在@3信号,则不予执行该条规则的解析。
(5)去除多余的括号。括号的识别是解析流程中重要的一环,其中递归流程的思想便是每次将最外层括号包含的信息视为一个整体,不断下钻嵌套括号内的信息,直至抵达最内层没有括号为止。但如果出现“((@1=1&@2=2))”、“(&)”、“()”等情况,便可能导致解析过程出现错误,因此,应该去除多余的括号,且括号内如果没有元素信息时,应该将括号内部的信息一并去除。
基于同一发明构思,本申请实施例中还提供了与告警事件规则的解析方法对应的告警事件规则的解析装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述告警事件规则的解析方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图7所示,图7为本申请一实施例提供的一种告警事件规则的解析装置的结构示意图,该解析装置包括:
第一获取模块701,用于获取包括多个事件特征的告警事件规则;其中,所述多个事件特征之间通过逻辑连接词和括号进行连接;
第一确定模块702,用于对所述告警事件规则中包括的多对最外层括号分别进行识别,根据识别出的每对最外层括号,以及所述告警事件规则中包括的逻辑连接词的类别,确定所述告警事件规则对应的多个第一规则单元;
第一剔除模块703,用于逐级识别所述第一规则单元中包括的多对最外层括号,剔除所述第一规则单元中包括的逻辑连接词和所述多对最外层括号,得到所述第一规则单元对应的第一子集合;其中,多个第一子集合组成所述告警事件规则对应的第一总集合;
第一生成模块704,用于获取所述告警事件规则中每个事件特征对应的特征内容,基于每个事件特征对应的特征内容,以及每个事件特征在所述第一总集合中所处的位置,生成所述告警事件规则对应的目标规则。
在一种可能的实施方式中,所述第一确定模块702,在对所述告警事件规则中包括的多对最外层括号分别进行识别时,包括:
遍历所述告警事件规则,若检测到当前所在的第一字符为左括号,则将该左括号入栈至第一栈,并将该第一字符对应的第一序号在第二栈内进行存储;其中,所述告警事件规则中包括多个字符,每个字符均对应有唯一的序号;
若检测到当前所在的第二字符为右括号,则控制所述第一栈中栈顶的左括号出栈,将该第二字符对应的第二序号在第二栈内进行存储;
判断所述第一栈内是否为空,若为空,则返回第二栈内最新存储的第二序号,以及最新出栈的左括号对应的第一序号,基于返回的第一序号和第二序号,识别所述告警事件规则中包括的每对最外层括号。
在一种可能的实施方式中,所述告警事件规则的解析装置,还包括:
第二获取模块,用于获取包括多个信号的事件特征规则;其中,所述多个信号之间通过逻辑连接词和括号进行连接;每个所述事件特征对应有唯一的所述事件特征规则;每个信息对应有目标状态值;
第二确定模块,用于对所述事件特征规则中包括的多对最外层括号分别进行识别,根据识别出的每对最外层括号,以及所述事件特征规则中包括的逻辑连接词的类别,确定所述事件特征规则对应的多个第二规则单元;
第二剔除模块,用于逐级识别所述第二规则单元中包括的多对最外层括号,剔除所述第二规则单元中包括的逻辑连接词和所述多对最外层括号,得到所述第二规则单元对应的第二子集合;其中,多个第二子集合组成所述事件特征规则对应的第二总集合;
第二生成模块,用于获取所述事件特征规则中每个信号对应的信号内容,基于每个信号对应的信号内容和目标状态值,以及每个信号在所述第二总集合中所处的位置,生成所述事件特征对应的特征内容。
在一种可能的实施方式中,所述第二总集合中每两个第二子集合之间是或的逻辑关系,每个第一子集合包括多个第二总集合,且所述多个第二总集合之间是与的逻辑关系,所述告警事件规则的解析装置,还包括:
选取模块,用于针对每个第一子集合,从该第一子集合包括的每个第二总集合中随机选取一个第二子集合,得到该第一子集合对应的多个第一目标组合;
去重模块,用于对所述多个第一目标组合进行去重处理,得到多个第二目标组合。
在一种可能的实施方式中,所述告警事件规则的解析装置,还包括:
第三获取模块,用于获取每个信号的初始状态值和对象名称;
查找模块,用于针对每个信号,查找与该信息的初始状态值和对象名称相匹配的目标状态值。
在一种可能的实施方式中,在确定所述事件特征规则对应的多个第二规则单元之前,所述告警事件规则的解析装置,还包括:
入栈模块,用于遍历所述事件特征规则,若检测到当前所在的第三字符为左括号,则将该左括号入栈至第三栈;其中,所述事件特征规则中包括多个字符;
出栈模块,用于若检测到当前所在的第四字符为右括号,则控制所述第三栈中栈顶的左括号出栈;
判断模块,用于在所述事件特征规则遍历完成后,判断所述第三栈内是否为空,若不为空,则显示括号不完整的提示信息,并终止对所述事件特征规则进行处理;若为空,则将所述事件特征规则确定为用于确定第二规则单元的事件特征规则。
在一种可能的实施方式中,在确定所述事件特征规则对应的多个第二规则单元之前,所述告警事件规则的解析装置,还包括:
第四获取模块,用于获取所述事件特征规则中每个信号对应的取值方式和逻辑连接词;
第三确定模块,用于将对应的取值方式为目标取值方式的信号确定为无效信号;和/或,将对应的逻辑连接词为目标逻辑连接词的信号确定为无效信号;
删除模块,用于在所述事件特征规则中,将所述无效信号以及所述无效信号对应的逻辑连接词和目标状态值删除,得到用于确定第二规则单元的事件特征规则。
本申请实施例提供的告警事件规则的解析装置,能够对现有的告警事件规则进行简化,并结合告警事件规则中每个事件特征的特征内容,生成具有解释性的告警事件规则,进而提高处理告警事件的工作人员的工作效率。
参见图8所示,图8为本申请实施例提供的一种电子设备800,该电子设备800包括:处理器801、存储器802和总线,所述存储器802存储有所述处理器801可执行的机器可读指令,当电子设备运行时,所述处理器801与所述存储器802之间通过总线通信,所述处理器801执行所述机器可读指令,以执行如上述告警事件规则的解析方法的步骤。
具体地,上述存储器802和处理器801能够为通用的存储器和处理器,这里不做具体限定,当处理器801运行存储器802存储的计算机程序时,能够执行上述告警事件规则的解析方法。
对应于上述告警事件规则的解析方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述告警事件规则的解析方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。