掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本公开实施例涉及计算机技术领域,尤其涉及信息处理方法、装置、存储介质及设备。

背景技术

随着移动互联网技术的快速发展,对海量数据的维护、管理和监控等越来越重要。目前,可以在监控平台或监控系统中实现对各种数据或指标等的监控,这类监控平台通常可以具有采集和监控异常数据、并在出现异常时进行异常报警的功能。

目前,数据异常监控平台的报警模式均基于报警规则,例如某项数据指标的数值超过相应的阈值则报警,某个错误出现次数达到预设次数以上则报警等等,开发人员可以针对不同的业务需求来编写各种报警规则。报警规则中通常包含如阈值等可调节项目,开发人员可以对可调节项目进行调节,以达到更加理想的监控效果。然而,现有技术中,开发人员一般仅能依据经验来对可调节项目的具体数值进行设置,或多次尝试不同数值后根据监控结果反复调节,难以快速准确地得到合适的报警规则。

发明内容

本公开实施例提供了信息处理方法、装置、存储介质及设备,可以优化现有的信息处理方案。

第一方面,本公开实施例提供了一种信息处理方法,包括:

获取原始报警规则源码信息对应的原始报警规则表达式;

对所述原始报警规则表达式进行报警规则要素拆分,并从拆分得到的报警规则要素中筛选出目标报警规则要素,其中,所述目标报警规则要素中包含可调节项目;

获取所述目标报警规则要素对应的历史数据,并对所述历史数据的变化进行可视化输出处理,以供用户根据可视化输出结果输入相应的可调节项目的调节目标信息;

根据接收到的调节目标信息对相应的可调节项目进行调节,并根据调整后的报警规则要素生成目标报警规则源码信息。

第二方面,本公开实施例提供了一种信息处理装置,包括:

规则表达式获取模块,用于获取原始报警规则源码信息对应的原始报警规则表达式;

目标报警规则要素确定模块,用于对所述原始报警规则表达式进行报警规则要素拆分,并从拆分得到的报警规则要素中筛选出目标报警规则要素,其中,所述目标报警规则要素中包含可调节项目;

可视化处理模块,用于获取所述目标报警规则要素对应的历史数据,并对所述历史数据的变化进行可视化输出处理,以供用户根据可视化输出结果输入相应的可调节项目的调节目标信息;

目标报警规则源码生成模块,用于根据接收到的调节目标信息对相应的可调节项目进行调节,并根据调整后的报警规则要素生成目标报警规则源码信息。

第三方面,本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开实施例提供的信息处理方法。

第四方面,本公开实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本公开实施例提供的信息处理方法。

本公开实施例中提供的信息处理方案,对原始报警规则源码信息对应的原始报警规则表达式进行报警规则要素拆分,并从拆分得到的报警规则要素中筛选出包含可调节项目的目标报警规则要素,对目标报警规则要素对应的历史数据的变化进行可视化输出处理,以供用户根据可视化输出结果输入相应的可调节项目的调节目标信息,根据接收到的调节目标信息对相应的可调节项目进行调节,并根据调整后的报警规则要素生成目标报警规则源码信息。通过采用上述技术方案,可以自动筛选出报警规则源码中的可调节项目,并对可调节项目所属的报警规则要素对应的历史数据的变化进行可视化处理,使得用户可以更加直观地查看历史数据的变化趋势,进而快速设置可调节项目的合理目标值,再调节完成后,自动生成调节后的目标报警规则源码信息,提高报警规则源码的调试效率。

附图说明

图1为本公开实施例提供的一种信息处理方法的流程示意图;

图2为本公开实施例提供的又一种信息处理方法的流程示意图;

图3为本公开实施例提供的再一种信息处理方法的流程示意图;

图4为本公开实施例提供的一种语法树结构示意图;

图5为本公开实施例提供的又一种语法树结构示意图;

图6为本公开实施例提供的一种基于语法树的报警规则要素拆分示意图;

图7为本公开实施例提供的一种显示界面示意图;

图8为本公开实施例提供的另一种显示界面示意图;

图9为本公开实施例提供的再一种显示界面示意图;

图10为本公开实施例提供的另一种基于语法树的报警规则要素拆分示意图;

图11为本公开实施例提供的一种信息处理装置的结构框图;

图12为本公开实施例提供的一种计算机设备的结构框图。

具体实施方式

下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。

应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。

本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。

需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。

需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。

下述各实施例中,每个实施例中同时提供了可选特征和示例,实施例中记载的各个特征可进行组合,形成多个可选方案,不应将每个编号的实施例仅视为一个技术方案。

图1为本公开实施例提供的一种信息处理方法的流程示意图,该方法可以由信息处理装置执行,其中该装置可由软件和/或硬件实现,一般可集成在计算机设备中。如图1所示,该方法包括:

步骤101、获取原始报警规则源码信息对应的原始报警规则表达式。

本公开实施例中,报警规则源码信息可以包括开发人员(以下可简称用户)采用预设程序设计语言编写的能够体现报警策略的文本信息,监控平台或监控系统可以支持对报警规则源码信息的识别进而进行应用,其中,预设程序设计语言的具体类型和原始报警规则源码信息的编写语法等不做限定,可根据实际需求进行选取。原始报警规则源码信息的来源不做限定,可以是用户当前编写的,也可以是从网络或其他设备中获取到的,可以是初始编写的报警规则源码信息,也可以是经过一次或多次调试之后的报警规则源码信息。

本公开实施例对所采用的监控系统不做限定,例如可以是Bosun。Bosun是一个开源的监视和报警系统,它有一种表达性的领域特定语言,用于评估警报和创建详细的通知,允许用户根据历史记录测试警报以获得更快的开发体验,下文中将以Bosun为例进行说明。可以理解的是,其他类似的监控系统同样适用,如Cabot等,Bosun仅作为示意性说明。

本公开实施例中,报警规则表达式可以理解为完整的报警规则对应的表达式,可以由多个表达式通过数学关系符号和/或逻辑运算符号等连接而成,一般最终可以得到布尔类型的表达式,将原始报警规则源码信息对应的报警规则表达式记为原始报警规则表达式。在一些情况下,若开发人员采用与报警规则表达式相同的编写方式对报警规则源码进行编写时,原始报警规则源码信息与原始报警规则表达式可以相同。

步骤102、对所述原始报警规则表达式进行报警规则要素拆分,并从拆分得到的报警规则要素中筛选出目标报警规则要素,其中,所述目标报警规则要素中包含可调节项目。

示例性的,报警规则要素可以理解为报警规则中的重要组成部分,可以根据报警规则的编写方式自由设定。例如,报警规则要素可包括数据源观测指标、时序数据监控目标、报警触发阈值、报警触发条件和报警触发条件组合方式等等。需要说明的是,此处仅列举出了几种在报警规则中可能存在的报警规则要素,但并不表示报警规则中需要包括上述所有报警规则要求,也就是说,原始报警规则表达式中可以包含上述一种或多种报警规则要素。此外,还可设计更多的报警规则要素,如报警功能关闭条件等,又如可以对报警触发阈值进行进一步划分,如报警触发阈值中的变量阈值和常量阈值等。

示例性的,数据源观测指标可理解为所需要监控的数据源中原始数据对应的名称,可根据实际情况进行定义,其中的数据源可以包括度量类库或数据库等,例如Metrics或InfluxDB等。其中,Metrics是一款监控指标的度量类库,提供了许多工具帮助开发者来完成各项数据的监控;InfluxDB是用Go语言编写的开源分布式时序、事件和指标数据库。以Metrics为例,可以将数据源观测指标命名为metrics,go.{psm}.numGos表示psm(服务名称)这个服务的goroutine(协程)数量。

示例性的,时序数据监控目标可理解为基于数据源观测指标检索出来的时序数据设定的监控目标,可记为target,其中,时序数据可以指时间序列数据,时间序列数据可以指同一统一指标按时间顺序记录的数据列。例如,q("sum:rate:go.{psm}.numGos","5m","2m")代表查询psm近5分钟~2分钟的goroutine的每秒的增长量。

示例性的,报警触发阈值可理解为用于触发报警的阈值,可记为threshold。例如,avg(q("sum:rate:go.{psm}.numGos","5m","2m"))>120,其中的120为报警触发阈值,表示psm近5分钟~2分钟的goroutine的每秒的增长量的平均值大于120时,可能会触发报警(是否会触发报警需要视后续的报警触发条件组合方式来确定)。

示例性的,报警触发条件可理解为触发报警的条件,可记为condition,如上述的avg(q("sum:rate:go.{psm}.numGos","5m","2m"))>120,作为一个整体可视为一个报警触发条件。

示例性的,随着报警规则越来越复杂,可能需要存在多个报警触发条件,报警触发条件组合方式可理解为多个报警触发条件的组合,可记为trigger,在当前情况满足报警触发条件组合方式的要求时,触发报警。例如,condition1&&condition2,也即,在同时满足报警触发条件1和报警触发条件2时,进行报警。

本公开实施例中,对原始报警规则表达式进行报警规则要素拆分后,一般可以得到多个报警规则要素,从拆分得到的报警规则要素中筛选出包含可调节项目的目标报警规则要素。其中,可调节项目可包括报警规则中允许用户进行调节的项目,如报警触发阈值,又如时序数据监控目标中的时间范围(如上述的5分钟和2分钟)等。目标报警规则要素的数量可以是一个或多个,一个目标报警规则要素中包含的可调节项目的数量也可以是一个或多个。

步骤103、获取所述目标报警规则要素对应的历史数据,并对所述历史数据的变化进行可视化输出处理,以供用户根据可视化输出结果输入相应的可调节项目的调节目标信息。

示例性的,历史数据可以包括业务实际运行时产生的数据,也可以包括业务测试阶段试运行时产生的数据等,具体不做限定。

现有技术中,在进行报警规则调试时,用户只能看到每个时间点分别对应的所有报警规则表达式对应的历史数据,且当报警规则复杂时,每个时间点对一个的历史数据的数据量也较大,很难从中筛选出当前关心的数据,在进行调试时,通常需要参考大量时间点的历史数据,但现有的查看方式并无法看出各时间点之间所关心的数据之间的联系,因此不仅工作量巨大,且容易出错,难以快速准确地将需要调节的项目调节至合理数值。

本公开实施例中,有针对性地获取目标报警规则要素对应的历史数据,使得用户可以仅关注所关心的报警规则要素的历史数据情况,减少其他数据的干扰。在获取到目标报警规则要素对应的历史数据后,对历史数据的变化进行可视化输出处理,使得用户能够直观地看出历史数据的变化情况,便于总结规律,进而更加快速合理地对可调节项目进行调节。其中,可视化输出处理的形式不做具体限定,例如可以绘制表格或统计图并在显示界面中显示等。

示例性的,可以在显示界面中显示可调节项目对应的输入控件,用户可以利用该输入控件输入可调节项目的调节目标信息,调节目标信息可以是调节方式,也可以是具体的数值。

步骤104、根据接收到的调节目标信息对相应的可调节项目进行调节,并根据调整后的报警规则要素生成目标报警规则源码信息。

示例性的,在接收到用户输入的调节目标信息后,根据调节目标信息对相应的可调节项目进行调节。例如,当调节目标信息包括调节方式时,可以按照调节方式来调节可调节项目,如增大或减小;当调节目标信息包括具体的数值时,可以将可调节项目的取值修改为该具体的数值。

本公开实施例中提供的信息处理方案,对原始报警规则源码信息对应的原始报警规则表达式进行报警规则要素拆分,并从拆分得到的报警规则要素中筛选出包含可调节项目的目标报警规则要素,对目标报警规则要素对应的历史数据的变化进行可视化输出处理,以供用户根据可视化输出结果输入相应的可调节项目的调节目标信息,根据接收到的调节目标信息对相应的可调节项目进行调节,并根据调整后的报警规则要素生成目标报警规则源码信息。通过采用上述技术方案,可以自动筛选出报警规则源码中的可调节项目,并对可调节项目所属的报警规则要素对应的历史数据的变化进行可视化处理,使得用户可以更加直观地查看历史数据的变化趋势,进而快速设置可调节项目的合理目标值,再调节完成后,自动生成调节后的目标报警规则源码信息,提高报警规则源码的调试效率。

示例性的,随着业务的复杂化和多样化发展,需要监控的数据或指标等越来越多,报警规则也越来越复杂,为了便于灵活编写,一些监控系统可以允许开发人员在编写报警规则源码的过程中增加自定义变量,例如上文举例的Bosun支持提供定义变量的能力。这里的自定义变量可以理解为相对于已经由实际使用场景规定好的变量来说,可以由开发人员自行命名并设计相应表达式的变量。例如,上文举例中的go.{psm}.numGos,不同的时间点对应的数值可能不同,可认为是一种变量,但一般已经是监控系统中规定好的写法,因此可以视为其不是自定义变量。而开发人员在编写时,可以自定义变量如:$metrics=“sum:rate:go.{psm}.numGos”,这里的$metrics可以认为是自定义变量。为了便于说明,下文中出现的变量均可理解为所述的自定义变量。

当原始报警规则源码信息中包含自定义变量时,可以先对原始报警规则源码信息进行去变量化处理,也即去掉其中包含的自定义变量,成为纯运算表达式。在一些实施例中,所述原始报警规则表达式为预设类型表达式,所述预设类型表达式中不包含自定义变量,所述获取原始报警规则源码信息对应的原始报警规则表达式,包括:对原始报警规则源码信息进行自定义变量的替换处理,得到原始报警规则表达式,其中,在进行所述替换处理的过程中,记录所述原始报警规则源码信息中包含的自定义变量在所述原始报警规则表达式中的位置信息。相应的,所述根据调整后的报警规则要素生成目标报警规则源码信息,包括:根据调整后的报警规则要素和所述位置信息生成目标报警规则源码信息。这样设置的好处在于,对自定义变量进行替换处理,可以得到监控系统实际运行时所依赖的完整的报警规则对应的表达式,在进行替换处理过程中,记录自定义变量在原始报警规则表达式中的位置信息,便于后续操作中,可以准确还原出原来的自定义变量,最终得到准确的目标报警规则源码信息。

示例性的,在对原始报警规则源码信息进行自定义变量的替换处理时,针对某个自定义变量,可以将其替换为前面出现的该自定义变量对应的表达式。也就是说,对于某个自定义变量来说,在其他自定义变量中可能会引用该自定义变量。例如,$q1=1+1,$q2=2+$q1,对于后面的表达式,可以视为在$q2中引用了$q1,可以将$q2的表达式中的$q1替换为前面出现的$q1的表达式1+1,则可以得到$q2=2+1+1。

在一些实施例中,所述对所述原始报警规则表达式进行报警规则要素拆分,包括:基于所述原始报警规则表达式构建语法树;根据所述语法树中各节点对应的表达式进行报警规则要素拆分。相应的,所述根据接收到的调节目标信息对相应的可调节项目进行调节,并根据调整后的报警规则要素生成目标报警规则源码信息,包括:根据接收到的调节目标信息对所述语法树中相应的可调节项目进行调节;根据调整后的语法树和所述位置信息生成目标报警规则源码信息。这样的好处在于,通过构建原始报警规则表达式对应的语法树,可以更好地解析原始报警规则表达式,理清原始报警规则表达式中包含的数学关系和逻辑关系,从而更加合理准确地实现报警规则要素的拆分。在对语法树中相应的可调节项目进行调节后,可以直接根据调整后的语法树和自定义变量在原始报警规则表达式中的位置信息生成目标报警规则源码信息。

示例性的,以所述报警规则要素包括时序数据监控目标、报警触发阈值、报警触发条件和报警触发条件组合方式为例。所述根据所述语法树中各节点对应的表达式进行报警规则要素拆分,包括:将所述语法树中的第一节点对应的第一表达式确定为报警触发条件,其中,所述第一表达式中包含数学关系符号;将所述第一表达式中的数学关系符号中的一侧确定为时序数据监控目标,另一侧确定为报警触发阈值;将所述语法树中的第二节点对应的第二表达式确定为报警触发条件组合方式,其中,所述第二表达式中包括报警触发条件,当所述第二表达式中包含至少两个报警触发条件时,所述至少两个报警触发条件由逻辑运算符号连接。这样设置的好处在于,可以更加准确地识别出各报警规则要素。

示例性的,数学关系符号例如可包括“>”(大于)、“<”(小于)、“>=”(大于或等于)、“<=”(小于或等于)、“==”(等于)以及“!=”(不等于)等,与数学关系符号关联的部分一般可以描述触发报警的条件,因此,可以将包含数学关系符号的第一表达式确定为报警触发条件,对应第一表达式的第一节点的数量可以是一个或多个。对于报警触发条件来说,一般的编写方式是左侧为时序数据监控目标,右侧为报警触发阈值,当然,也可相反,可根据实际的编写情况来确定。逻辑运算符号例如可包括“&&”(逻辑与)、“||”(逻辑或)以及“!”(逻辑非)等,与逻辑运算符号关联的部分一般可以描述多个条件之间的逻辑关系,因此,可以将包含逻辑运算符号的第二表达式确定为报警触发条件组合方式。需要说明的是,对于一些简单的报警规则,可能仅存在一个报警触发条件,则可视为报警触发条件组合方式与报警触发条件等同。

图2为本公开实施例提供的又一种信息处理方法的流程示意图,在上述各可选实施例基础上进行优化,可适用于原始报警规则源码信息中包含自定义变量的情况,如图2所示,该方法可包括:

步骤201、对原始报警规则源码信息进行自定义变量的替换处理,得到原始报警规则表达式,其中,在进行替换处理的过程中,记录原始报警规则源码信息中包含的自定义变量在原始报警规则表达式中的位置信息。

示例性的,在进行替换处理时,可以先构建各自定义变量(可以变量名表示)与表达式的映射图(map),将原始报警规则源码信息按照换行符号(如‘\n’)分割,得到多行源码信息,并遍历每一行进行替换处理。在针对每一行进行替换处理时,可以通过正则表达式或者其他形式的识别方法来区分出变量名和表达式,例如通过‘(\$\w+)\s*=(.*)’来区分出变量名和表达式。判断当前变量的表达式中是否包含其他变量,若包含,则采用映射图中对应的该其他变量关联的表达式对当前变量的表达式中的其他变量进行替换,并记录该被替换的其他变量在当前变量中的相对位置(也可理解为偏移量)。也即,记录原始报警规则源码信息中包含的第一自定义变量在第二自定义变量对应的预设类型表达式中的相对位置。这里的第二自定义变量可理解为上述当前变量,第一自定义变量可理解为上述的其他变量。如上文举例,$q1可视为第一自定义变量,$q2可视为第二自定义变量,判断出第二自定义变量$q2的表达式2+$q1中包含了第一自定义变量$q1,采用映射图中$q1关联的表达式1+1对$q2的表达式中的$q1进行替换,并记录$q1在$q2的预设类型表达式2+1+1中的相对位置。随后,可将当前变量与新的表达式的对应关系存储映射图,例如,将$q2和2+1+1的对应关系存入映射图,便于后续处理引用$q2的变量所在行时,对$q2进行替换。对于表达式中不包含其他变量的变量所在行来说,可以跳过,处理下一行。

示例性的,在遍历所有行之后,遍历原始报警规则源码信息中包含的所有自定义变量,根据相对位置确定每个自定义变量在原始报警规则表达式中的位置信息,并对位置信息进行记录,从而实现记录原始报警规则源码信息中包含的自定义变量在原始报警规则表达式中的位置信息。

需要说明的是,本公开实施例可以基于原始报警规则表达式构建语法树,在进行替换处理之前,可以为原始报警规则源码信息中的每个自定义变量对应的表达式增加括号,避免在构建语法树后无法还原回原来的表达式。例如,上述$q1的表达式可以是(1+1),$q2的替换处理后的表达式可以是2+(1+1)。对于一些特殊情况,例如被引用的变量存在于是最后的报警(warn)语句,也可不需要添加括号。

步骤202、基于原始报警规则表达式构建语法树。

可选的,在步骤202之前,还可包括:根据所述位置信息确定原始报警规则表达式中的各位置所对应的自定义变量,得到第一信息;汇总每个自定义变量对应的预设类型表达式,得到第二信息。这样设置的好处在于,更准确地记录变量与表达式之间的关联,便于后续还原语法树中每个节点对应的变量名。

可选的,在语法树构建完成后,根据第一信息和第二信息确定语法树中各节点对应的自定义变量。这样设置的好处在于,可以便于后续根据调整后的语法树和语法树中各节点对应的自定义变量快速准确地生成目标报警规则源码信息。

示例性的,可以将语法树中的任意一个节点记为第三节点,此时,所述根据所述第一信息和所述第二信息确定所述语法树中各节点对应的自定义变量,可包括:根据所述第三节点的最左叶子节点的第一位置查询所述第一信息,得到所述第一位置对应的候选自定义变量;在所述第二信息中查询所述候选自定义变量对应的预设类型表达式,当所查询到的第一预设类型表达式与所述第三节点的预设类型表达式一致时,将所述第一预设类型表达式对应的自定义变量记为所述第三节点对应的自定义变量。这样设置的好处在于,可以准确还原出语法树中的节点对应的变量名。

步骤203、根据语法树中各节点对应的表达式进行报警规则要素拆分。

具体的拆分方式可以参考上文相关描述。

步骤204、从拆分得到的报警规则要素中筛选出目标报警规则要素,其中,目标报警规则要素中包含可调节项目。

步骤205、获取目标报警规则要素对应的历史数据。

步骤206、对历史数据的变化进行可视化输出处理,以供用户根据可视化输出结果输入相应的可调节项目的调节目标信息。

步骤207、根据接收到的调节目标信息对语法树中相应的可调节项目进行调节。

步骤208、根据调整后的语法树和所述位置信息生成目标报警规则源码信息。

可选的,在得到目标报警规则源码信息后,可以将目标报警规则源码信息发送至相应的监控系统进行应用。

本公开实施例提供的信息处理方法,对于包含自定义变量的原始报警规则源码信息先进行去变量化处理,得到不包含自定义变量的原始报警规则表达式,并记录各自定义变量在原始报警规则表达式的位置信息,再基于原始报警规则表达式构建语法树,根据语法树中各节点对应的表达式进行报警规则要素拆分并筛选出包含可调节项目的目标报警规则要素,并对其对应的历史数据的变化进行可视化输出处理,方便用户直观地根据变化规律对可调节项目进行调节,根据用户输入的调节目标信息对语法树进行调整,最后自动根据调整后的语法树和位置信息生成目标报警规则源码信息,有效提高了报警规则的调试效率和准确度。

在一些实施例中,所述从拆分得到的报警规则要素中筛选出目标报警规则要素,包括:从拆分得到的报警规则要素中筛选出报警触发条件;对于所筛选出来的每个报警触发条件,在确定当前报警触发条件中的报警触发阈值可调节的情况下,将所述当前报警触发条件确定为目标报警规则要素,并将所述当前报警触发条件中的报警触发阈值确定为可调节项目。这样设置的好处在于,对于很多报警规则而言,报警触发阈值是重要的可调节项目,可针对报警触发阈值进行目标报警规则要素的筛选,快速优化报警规则。

在一些实施例中,所述获取所述目标报警规则要素对应的历史数据,并对所述历史数据的变化进行可视化输出处理,包括:获取所述目标报警规则要素中的时序数据监控目标在预设历史时段内各时间点对应的历史数据;在统计图坐标系中显示所述历史数据和所述目标报警规则要素中的报警触发阈值分别对应的变化曲线,以及显示可调节项目对应的调节目标信息输入控件,其中,所述统计图坐标系以时间和所述时序数据监控目标分别为横轴及纵轴。这样设置的好处在于,对于报警触发阈值的调节,可以更加合理地进行可视化输出处理,方便用户快速准确地调试出符合当前需求的报警触发阈值。

图3为本公开实施例提供的再一种信息处理方法的流程示意图,在上述各可选实施例基础上进行优化,如图3所示,该方法可包括:

步骤301、对原始报警规则源码信息进行自定义变量的替换处理,得到原始报警规则表达式。

为了便于理解本公开实施例的技术方案,下面以比较简单的例子为例进行说明。假设原始报警规则源码信息如下:

$q1=1+1

$q2=2+$q1

$q1=$q2+1

$q3=$q1+$q2

warn=$q3>2

可以先为各变量对应的表达式添加括号,因为在构建语法树的时候,如果表达式没有用括号括起来,会导致在构建树的时候难以还原原来的表达式,所以提前给每个带运算符的表达式加上括号,最终的warn语句可以不用加,可以得到:

$q1=(1+1)

$q2=(2+$q1)

$q1=($q2+1)

$q3=($q1+$q2)

warn=$q3>2

经过自定义变量的替换处理后,可以得到最终表达式(((2+(1+1))+1)+(2+(1+1)))>2,也即得到原始报警规则表达式。在去变量化的同时,可以记录每个变量在最终表达式的位置信息,用于后续根据最终表达式构建语法树时,进行划分metrics、target、threshold、condition以及trigger后,可以还原原来的变量名。记录位置信息的具体过程详见后续步骤。此处记录位置信息的原因在于,若缺少此步,后续划分Bosun语法树得到的各节点的表达式无法找出对应的变量名或是找错变量名,造成误解。另外,因为Bosun最终执行的语句是不带变量名的纯表达式(也即上述预设类型表达式),在对可调节项目进行调节后,也即语法树节点变更后,若语法树节点未对应相应的变量名,则无法修改原始带变量的原始报警规则源码信息中对应的具体位置,也即无法用字符串匹配出可调节项目的变更。需要说明的是,上述添加括号后,虽然构建Bosun语法树后,语法树节点上会自动剔除掉多余的空格和括号,但是每个节点的位置(Pos)还是相对原来的表达式(也即最终表达式)的位置,所以要记录的是每个变量对应的表达式的最左边第一个非括号且非空格的字符在最终表达式的位置。

步骤302、记录原始报警规则源码信息中包含的第一自定义变量在第二自定义变量对应的预设类型表达式中的相对位置。

本步骤中,相当于记录每个变量的最左非括号非空格的第一个字符相对被引用的变量的最左非括号非空格的第一个字符的位置。如果被引用的变量是在warn语句中,由于warn语句未添加括号,可以直接记录相对起始点的位置。另外,对于原始报警规则源码信息中出现重复使用的变量的情况,如上述举例中的$q1,可以记录变量被引用的表达式在原始报警规则源码信息中的行数(Line),在计算相对位置时,可以只计算被引用的表达式所在行数比该变量所在行数大的,也即,第二自定义变量引用第一自定义变量时所在行数大于第一自定义变量对应的表达式所在行,如$q2=(2+$q1)所在行数大于$q1=(1+1)所在行数。另外,记录行数后,还可便于根据调整后的语法树准确还原出各变量的表达式在原始报警规则源码信息中的行数,得到更准确的目标报警规则源码信息。

对于上述举例,相对位置计算过程如下:

1.$q1=(1+1),Line=0,没有用到其他变量,可以跳过;

2.$q2=(2+$q1)=>(2+(1+1)),Line=1,$q2字节表达式=[0:'(',1:'2',2:'+',3:'(',4:'1',5:'+',6:'1',7:')',8:')'],$q2最左非括号非空格的字符是1:'2',$q1的最左非括号非空格的字符在$q2的位置是4:'1',所以$q1相对$q2的位置就是4-1=3;

3.$q1=($q2+1)=>((2+(1+1))+1),Line=2,$q1字节表达式=[0:'(',1:'(',2:'2',3:'+',4:'(',5:'1',6:'+',7:'1',8:')',9:')',10:'+',11:'1',12:')'],$q1最左非括号非空格的字符是2:'2',$q2的最左非括号非空格的字符在$q1的位置是2:'2',所以$q2相对$q1的位置就是2-2=0;

4.$q3=($q1+$q2)=>(((2+(1+1))+1)+(2+(1+1))),Line=3,$q3字节表达式=[0:'(',1:'(',2:'(',3:'2',4:'+',5:'(',6:'1',7:'+',8:'1',9:')',10:')',11:'+',12:'1',13:')',14:'+',15:'(',16:'2',17:'+',18:'(',19:'1',20:'+',21:'1',22:')',23:')',24:')'],$q3最左非括号非空格的字符是3:'2',$q1的最左非括号非空格的字符在$q3的位置是3:'2',所以$q1相对$q3的位置就是3-3=0;$q2的最左非括号非空格的字符在$q3的位置是16:'2';所以$q2相对$q3的位置就是16-3=13;

5.warn=$q3>2=>(((2+(1+1))+1)+(2+(1+1)))>2,Line=4,warn字节表达式=[0:'(',1:'(',2:'(',3:'2',4:'+',5:'(',6:'1',7:'+',8:'1',9:')',10:')',11:'+',12:'1',13:')',14:'+',15:'(',16:'2',17:'+',18:'(',19:'1',20:'+',21:'1',22:')',23:')',24:')',25:'>',26:'2'],因为warn语句只用到了$q3,且在最终warn语句不需要相对最左非括号非空格的第一个字符,直接相对起始点就可以了,所以$q3在warn语句的位置就是3:'2'。

可以通过如下形式进行记录,其中,Name表示第二自定义变量的变量名,Pos表示相对位置,Line表示所在行数。

$q1作为第一自定义变量时:Name为$q2,Pos为3,Line为1;Name为$q3,Pos为0,Line为3;

$q2作为第一自定义变量时:Name为$q1,Pos为0,Line为2;Name为$q3,Pos为13,Line为3;

$q3作为第一自定义变量时:Name为warn,Pos为3,Line为4。

步骤303、遍历原始报警规则源码信息中包含的所有自定义变量,根据相对位置确定每个自定义变量在原始报警规则表达式中的位置信息,并对位置信息进行记录。

位置信息可以用偏移量表示,如上述举例,可以通过如下方式计算偏移量:

$q1的偏移量为9,19和3。其中,[$q1 in$q2=3]+[$q2 in$q1=0]+[$q1 in$q3=3]+[$q3 in warn=3]=3+0+3+3=9,$q1 in$q2=3表示$q1在$q2中的相对位置为3;[$q1in$q2=3]+[$q2 in$q3=13]+[$q3 in warn=3]=3+13+3=19;[$q1 in$q3=0]+[$q3 inwarn=3]=0+3=3。

$q2的偏移量为3和16。其中,[$q2 in$q1=0]+[$q1 in$q3=0]+[$q3 in warn=3]=0+0+3=3;[$q2 in$q3=13]+[$q3 in warn=3]=13+3=16。

$q2的偏移量为3,。其中,[$q3 in warn=3]=3。

可见,同一个自定义变量在原始报警规则表达式中可能存在多个偏移量。

步骤304、根据位置信息确定原始报警规则表达式中的各位置所对应的自定义变量,得到第一信息。

示例性的,本步骤可理解为计算原始报警规则表达式中相对于起始位置的各位置可能对应的变量名,便于后续语法树通过节点上的位置找到可能对应的变量名。

如前述举例,第一信息可以表示为:位置“16”对应的变量名可以是$q2,位置“9”对应的变量名可以是$q1,位置“19”对应的变量名可以是$q1,位置“3”对应的变量名可以是$q3、$q2和$q1。

步骤305、汇总每个自定义变量对应的预设类型表达式,得到第二信息。

示例性的,可以用Value表示自定义变量对应的预设类型表达式,则如上述举例可以得到第二信息:

$q1:Value为1+1,Line为0;Value为2+1+1+1,Line为2。

$q2:Value为2+1+1,Line为1。

$q2:Value为2+1+1+1+2+1+1,Line为3。

步骤306、基于原始报警规则表达式构建语法树。

图4为本公开实施例提供的一种语法树结构示意图,如图4所示,根据不包含自定义变量的原始报警规则表达式构建出语法树。

步骤307、根据第一信息和第二信息确定所述语法树中各节点对应的自定义变量。

图5为本公开实施例提供的又一种语法树结构示意图,如图5所示,在图4基础上,为各节点确定了对应的自定义变量。

示例性的,以节点2+1+1为例,最左叶子节点为2,对应的位置为3,通过查询第一信息可以得到,可能对应的变量为$q3、$q2和$q1,再查询第二信息,找到$q2的Value为2+1+1,因此,该节点对应的自定义变量为$q2。

步骤308、根据语法树中各节点对应的表达式进行报警规则要素拆分,从拆分得到的报警规则要素中筛选出报警触发条件。

示例性的,可以依据metrics、target、threshold、condition以及trigger根据语法树中各节点对应的表达式进行报警规则要素拆分,通过拆分可以标准化报警规则,使得机器可以理解报警规则,便于后续根据需求提取关键表达式,也即目标报警规则要素。此外,为了对各报警规则要素进行有效区分,可以在划分后生成每个报警规则要素对应的身份标识(Identification,ID)。

图6为本公开实施例提供的一种基于语法树的报警规则要素拆分示意图,如图6所示,对于上述举例,由于仅作为简单示例,并未关联数据源,可认为metrics为无;将包含“>”的表达式"q3>2"确定为condition,对应变量名可以是warn,ID为1;将“>”左侧的表达式"(((2+(1+1))+1)+(2+(1+1)))"确定为target,对应变量名可以是q3,ID为2;将“>”左侧的表达式“2”确定为threshold,无对应变量名,ID为3;由于仅有一个condition,因此trigger与condition相同。

示例性的,在需要对阈值进行调节时,可以从拆分出来的报警规则要素中筛选出报警触发条件,也即筛选出condition。

步骤309、对于所筛选出来的每个报警触发条件,在确定当前报警触发条件中的报警触发阈值可调节的情况下,将当前报警触发条件确定为目标报警规则要素,并将当前报警触发条件中的报警触发阈值确定为可调节项目。

示例性的,判断报警触发阈值是否可调节的依据可以是报警触发阈值对应的表达式是否为纯数学表达式(如2或1+1等,也可以是带有变量的数学表达式,如a+1等),若是,则认为可调节。若报警触发阈值对应的表达式不是纯数学表达式,例如包含时间序列,则认为不可调节。

如上述举例,仅存在一个condition,由于其中的threshold为2,是纯数学表达式,可以供调节,所以q3>2可以成为目标报警规则要素。

步骤310、获取目标报警规则要素中的时序数据监控目标在预设历史时段内各时间点对应的历史数据。

示例性的,对于成为目标报警规则要素的报警触发条件,可以获取其中的时序数据监控目标在预设历史时段内各时间点对应的历史数据,具体的获取方式不做限定。

步骤311、在统计图坐标系中显示所述历史数据和目标报警规则要素中的报警触发阈值分别对应的变化曲线,以及显示可调节项目对应的调节目标信息输入控件。

其中,所述统计图坐标系以时间为横轴,以时序数据监控目标为纵轴。图7为本公开实施例提供的一种显示界面示意图,如图7所示,由于上述简单举例中q3的值在任意时刻均为9,因此,q3对应的变化曲线为一条平行于横轴的纵坐标为9的直线,报警触发阈值为2,所以报警触发阈值对应的变化曲线为一条平行于横轴的纵坐标为2的直线,在统计坐标图上方可以显示报警触发阈值对应的调节目标信息输入控件,如图中方框所示,用户可以在方框中输入调节目标信息,由于当前报警触发阈值为2,而9>2,所以会触发报警,若实际业务需求不想触发报警,则可以对2进行调节。图8为本公开实施例提供的另一种显示界面示意图,如图8所示,在方框中输入10,则报警触发阈值变为10,此时报警触发阈值对应的变化曲线为一条平行于横轴的纵坐标为10的直线,则不会触发报警。

步骤312、根据接收到的调节目标信息对所述语法树中相应的可调节项目进行调节,根据调整后的语法树和语法树中各节点对应的自定义变量生成目标报警规则源码信息。

示例性的,在对报警触发阈值进行调整后,将语法树中报警触发阈值对应的数值2修改为10,然后根据调整后的语法树和语法树中各节点对应的自定义变量生成目标报警规则源码信息。

可选的,还可在显示界面上提供用于显示报警规则源码信息的区域,在调整前可以显示原始报警规则源码信息,在调整后可以显示目标报警规则源码信息。示例性的,可在调节目标信息输入控件上方显示该区域。图9为本公开实施例提供的再一种显示界面示意图,如图9所示,在将报警触发阈值对应的数值2修改为10后,报警规则源码信息显示区域中自动显示目标报警规则源码信息。

本公开实施例提供的信息处理方法,对于包含自定义变量的原始报警规则源码信息先进行去变量化处理,得到不包含自定义变量的原始报警规则表达式,并记录各自定义变量在原始报警规则表达式的位置信息,再基于原始报警规则表达式构建语法树,根据语法树中各节点对应的表达式进行报警规则要素拆分并筛选出包含可调节的报警触发阈值的目标报警触发条件,并采用统计图表对目标报警触发条件中的时序数据监控目标对应的历史数据的变化曲线和报警触发阈值对应的变化曲线进行可视化输出处理,方便用户直观地根据历史数据的变化规律对报警触发阈值进行调节,并根据用户输入的期望的报警触发阈值对语法树进行调整,最后自动根据调整后的语法树生成目标报警规则源码信息,有效提高了报警规则的调试效率和准确度。

需要说明的是,上述举例比较简单,在实际应用中,报警规则可能会比较复杂。下面列举一个稍微复杂的例子进行进一步说明:

假设原始报警规则源码信息如下:

$metrics="sum:rate:go.{psm}.numGos"

$numGos1=avg(q($metrics,"3m","2m"))

$numGos2=avg(q($metrics,"4m","3m"))

$condition1=$numGos1>120

$condition2=$numGos2>200

$trigger=$condition1&&$condition2

warn=$trigger

针对上述原始报警规则源码信息进行去变量化处理,将原始报警规则源码信息转换成具体的表达式,可以得到:

avg(q("sum:rate:go.{psm}.numGos","3m","2m"))>120&&avg(q("sum:rate:go.{psm}.numGos","4m","3m"))>200

基于上述表达式构建语法树,并进行报警规则要素拆分,图10为本公开实施例提供的另一种基于语法树的报警规则要素拆分示意图,如图10所示,metrics为$metrics,trigger为$trigger,condition为$condition1和$condition2,target为$numGos1和$numGos2,threshold为120和200。

用户可以只关注$numGos1>120和$numGos2>200这两个表达式,可以获取$numGos1和$numGos2的如近6小时的历史数据,并绘制相应的统计图,便于用户观察历史数据的变化,只需调节120和200这两个阈值,计算机设备可以自动同步修改原始报警规则源码信息中的相应数值,生成目标报警规则源码信息。

由此可见,通过采用本公开实施例提供的技术方案,将报警规则中的决定触发报警的关键表达式和用户经常会调节的部分抽取出来,用户可以更好的关注监控目标,而不必关注完整复杂的报警规则,通过图表模拟出condition中的target和threshold的历史曲线于一张图上,用户可以直观观察历史曲线表现形式,从而快速调节阈值,通过定位变量或表达式在语法树和原报警规则位置,修改表达式中的值,可以自动关联修改报警规则,降低编辑报警规则的难度。

图11为本公开实施例提供的一种信息处理装置的结构框图,该装置可由软件和/或硬件实现,一般可集成在计算机设备中,可通过执行信息处理方法来进行信息处理。如图11所示,该装置包括:

规则表达式获取模块1101,用于获取原始报警规则源码信息对应的原始报警规则表达式;

目标报警规则要素确定模块1102,用于对所述原始报警规则表达式进行报警规则要素拆分,并从拆分得到的报警规则要素中筛选出目标报警规则要素,其中,所述目标报警规则要素中包含可调节项目;

可视化处理模块1103,用于获取所述目标报警规则要素对应的历史数据,并对所述历史数据的变化进行可视化输出处理,以供用户根据可视化输出结果输入相应的可调节项目的调节目标信息;

目标报警规则源码生成模块1104,用于根据接收到的调节目标信息对相应的可调节项目进行调节,并根据调整后的报警规则要素生成目标报警规则源码信息。

本公开实施例中提供的信息处理装置,可以自动筛选出报警规则源码中的可调节项目,并对可调节项目所属的报警规则要素对应的历史数据的变化进行可视化处理,使得用户可以更加直观地查看历史数据的变化趋势,进而快速设置可调节项目的合理目标值,再调节完成后,自动生成调节后的目标报警规则源码信息,提高报警规则源码的调试效率。

可选的,所述原始报警规则表达式为预设类型表达式,所述预设类型表达式中不包含自定义变量,所述获取原始报警规则源码信息对应的原始报警规则表达式,包括:对原始报警规则源码信息进行自定义变量的替换处理,得到原始报警规则表达式,其中,在进行所述替换处理的过程中,记录所述原始报警规则源码信息中包含的自定义变量在所述原始报警规则表达式中的位置信息;相应的,所述根据调整后的报警规则要素生成目标报警规则源码信息,包括:根据调整后的报警规则要素和所述位置信息生成目标报警规则源码信息。

可选的,所述对所述原始报警规则表达式进行报警规则要素拆分,包括:基于所述原始报警规则表达式构建语法树;根据所述语法树中各节点对应的表达式进行报警规则要素拆分;相应的,所述根据接收到的调节目标信息对相应的可调节项目进行调节,并根据调整后的报警规则要素生成目标报警规则源码信息,包括:根据接收到的调节目标信息对所述语法树中相应的可调节项目进行调节;根据调整后的语法树和所述位置信息生成目标报警规则源码信息。

可选的,所述报警规则要素包括时序数据监控目标、报警触发阈值、报警触发条件和报警触发条件组合方式。

可选的,所述根据所述语法树中各节点对应的表达式进行报警规则要素拆分,包括:将所述语法树中的第一节点对应的第一表达式确定为报警触发条件,其中,所述第一表达式中包含数学关系符号;将所述第一表达式中的数学关系符号中的一侧确定为时序数据监控目标,另一侧确定为报警触发阈值;将所述语法树中的第二节点对应的第二表达式确定为报警触发条件组合方式,其中,所述第二表达式中包括报警触发条件,当所述第二表达式中包含至少两个报警触发条件时,所述至少两个报警触发条件由逻辑运算符号连接。

可选的,所述记录所述原始报警规则源码信息中包含的自定义变量在所述原始报警规则表达式中的位置信息,包括:记录所述原始报警规则源码信息中包含的第一自定义变量在第二自定义变量对应的预设类型表达式中的相对位置;遍历所述原始报警规则源码信息中包含的所有自定义变量,根据所述相对位置确定每个自定义变量在所述原始报警规则表达式中的位置信息,并对所述位置信息进行记录。

可选的,该装置还包括:第一信息确定模块,用于在所述基于所述原始报警规则表达式构建语法树之前,根据所述位置信息确定所述原始报警规则表达式中的各位置所对应的自定义变量,得到第一信息;第一信息确定模块,用于汇总每个自定义变量对应的预设类型表达式,得到第二信息;节点变量确定模块,用于在所述根据所述语法树中各节点对应的表达式进行报警规则要素拆分之前,根据所述第一信息和所述第二信息确定所述语法树中各节点对应的自定义变量;相应的,所述根据调整后的语法树和所述位置信息生成目标报警规则源码信息,包括:根据调整后的语法树和所述语法树中各节点对应的自定义变量生成目标报警规则源码信息。

可选的,将所述语法树中的任意一个节点记为第三节点,所述根据所述第一信息和所述第二信息确定所述语法树中各节点对应的自定义变量,包括:根据所述第三节点的最左叶子节点的第一位置查询所述第一信息,得到所述第一位置对应的候选自定义变量;在所述第二信息中查询所述候选自定义变量对应的预设类型表达式,当所查询到的第一预设类型表达式与所述第三节点的预设类型表达式一致时,将所述第一预设类型表达式对应的自定义变量记为所述第三节点对应的自定义变量。

可选的,所述从拆分得到的报警规则要素中筛选出目标报警规则要素,包括:从拆分得到的报警规则要素中筛选出报警触发条件;对于所筛选出来的每个报警触发条件,在确定当前报警触发条件中的报警触发阈值可调节的情况下,将所述当前报警触发条件确定为目标报警规则要素,并将所述当前报警触发条件中的报警触发阈值确定为可调节项目。

可选的,所述获取所述目标报警规则要素对应的历史数据,并对所述历史数据的变化进行可视化输出处理,包括:获取所述目标报警规则要素中的时序数据监控目标在预设历史时段内各时间点对应的历史数据;在统计图坐标系中显示所述历史数据和所述目标报警规则要素中的报警触发阈值分别对应的变化曲线,以及显示可调节项目对应的调节目标信息输入控件,其中,所述统计图坐标系以时间和所述时序数据监控目标分别为横轴及纵轴。

下面参考图12,其示出了适于用来实现本公开实施例的计算机设备1200的结构示意图。本公开实施例中的计算机设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图12示出的计算机设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图12所示,计算机设备1200可以包括处理装置(例如中央处理器、图形处理器等)1201,其可以根据存储在只读存储器(ROM)1202中的程序或者从存储装置1208加载到随机访问存储器(RAM)1203中的程序而执行各种适当的动作和处理。在RAM 1203中,还存储有计算机设备1200操作所需的各种程序和数据。处理装置1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。

通常,以下装置可以连接至I/O接口1205:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1206;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1207;包括例如磁带、硬盘等的存储装置1208;以及通信装置1209。通信装置1209可以允许计算机设备1200与其他设备进行无线或有线通信以交换数据。虽然图12示出了具有各种装置的计算机设备1200,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1209从网络上被下载和安装,或者从存储装置1208被安装,或者从ROM 1202被安装。在该计算机程序被处理装置1201执行时,执行本公开实施例的方法中限定的上述功能。

需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。

上述计算机可读介质可以是上述计算机设备中所包含的;也可以是单独存在,而未装配入该计算机设备中。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该计算机设备执行时,使得该计算机设备:对所述原始报警规则表达式进行报警规则要素拆分,并从拆分得到的报警规则要素中筛选出目标报警规则要素,其中,所述目标报警规则要素中包含可调节项目;获取所述目标报警规则要素对应的历史数据,并对所述历史数据的变化进行可视化输出处理,以供用户根据可视化输出结果输入相应的可调节项目的调节目标信息;根据接收到的调节目标信息对相应的可调节项目进行调节,并根据调整后的报警规则要素生成目标报警规则源码信息。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,规则表达式获取模块还可以被描述为“获取原始报警规则源码信息对应的原始报警规则表达式的模块”。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

根据本公开的一个或多个实施例,提供了一种信息处理方法,包括:

获取原始报警规则源码信息对应的原始报警规则表达式;

对所述原始报警规则表达式进行报警规则要素拆分,并从拆分得到的报警规则要素中筛选出目标报警规则要素,其中,所述目标报警规则要素中包含可调节项目;

获取所述目标报警规则要素对应的历史数据,并对所述历史数据的变化进行可视化输出处理,以供用户根据可视化输出结果输入相应的可调节项目的调节目标信息;

根据接收到的调节目标信息对相应的可调节项目进行调节,并根据调整后的报警规则要素生成目标报警规则源码信息。

进一步的,所述原始报警规则表达式为预设类型表达式,所述预设类型表达式中不包含自定义变量,所述获取原始报警规则源码信息对应的原始报警规则表达式,包括:

对原始报警规则源码信息进行自定义变量的替换处理,得到原始报警规则表达式,其中,在进行所述替换处理的过程中,记录所述原始报警规则源码信息中包含的自定义变量在所述原始报警规则表达式中的位置信息;

相应的,所述根据调整后的报警规则要素生成目标报警规则源码信息,包括:

根据调整后的报警规则要素和所述位置信息生成目标报警规则源码信息。

进一步的,所述对所述原始报警规则表达式进行报警规则要素拆分,包括:

基于所述原始报警规则表达式构建语法树;

根据所述语法树中各节点对应的表达式进行报警规则要素拆分;

相应的,所述根据接收到的调节目标信息对相应的可调节项目进行调节,并根据调整后的报警规则要素生成目标报警规则源码信息,包括:

根据接收到的调节目标信息对所述语法树中相应的可调节项目进行调节;

根据调整后的语法树和所述位置信息生成目标报警规则源码信息。

进一步的,所述报警规则要素包括时序数据监控目标、报警触发阈值、报警触发条件和报警触发条件组合方式。

进一步的,所述根据所述语法树中各节点对应的表达式进行报警规则要素拆分,包括:

将所述语法树中的第一节点对应的第一表达式确定为报警触发条件,其中,所述第一表达式中包含数学关系符号;

将所述第一表达式中的数学关系符号中的一侧确定为时序数据监控目标,另一侧确定为报警触发阈值;

将所述语法树中的第二节点对应的第二表达式确定为报警触发条件组合方式,其中,所述第二表达式中包括报警触发条件,当所述第二表达式中包含至少两个报警触发条件时,所述至少两个报警触发条件由逻辑运算符号连接。

进一步的,所述记录所述原始报警规则源码信息中包含的自定义变量在所述原始报警规则表达式中的位置信息,包括:

记录所述原始报警规则源码信息中包含的第一自定义变量在第二自定义变量对应的预设类型表达式中的相对位置;

遍历所述原始报警规则源码信息中包含的所有自定义变量,根据所述相对位置确定每个自定义变量在所述原始报警规则表达式中的位置信息,并对所述位置信息进行记录。

进一步的,在所述基于所述原始报警规则表达式构建语法树之前,还包括:

根据所述位置信息确定所述原始报警规则表达式中的各位置所对应的自定义变量,得到第一信息;

汇总每个自定义变量对应的预设类型表达式,得到第二信息;

相应的,在所述根据所述语法树中各节点对应的表达式进行报警规则要素拆分之前,还包括:

根据所述第一信息和所述第二信息确定所述语法树中各节点对应的自定义变量;

相应的,所述根据调整后的语法树和所述位置信息生成目标报警规则源码信息,包括:

根据调整后的语法树和所述语法树中各节点对应的自定义变量生成目标报警规则源码信息。

进一步的,将所述语法树中的任意一个节点记为第三节点,所述根据所述第一信息和所述第二信息确定所述语法树中各节点对应的自定义变量,包括:

根据所述第三节点的最左叶子节点的第一位置查询所述第一信息,得到所述第一位置对应的候选自定义变量;

在所述第二信息中查询所述候选自定义变量对应的预设类型表达式,当所查询到的第一预设类型表达式与所述第三节点的预设类型表达式一致时,将所述第一预设类型表达式对应的自定义变量记为所述第三节点对应的自定义变量。

进一步的,所述从拆分得到的报警规则要素中筛选出目标报警规则要素,包括:

从拆分得到的报警规则要素中筛选出报警触发条件;

对于所筛选出来的每个报警触发条件,在确定当前报警触发条件中的报警触发阈值可调节的情况下,将所述当前报警触发条件确定为目标报警规则要素,并将所述当前报警触发条件中的报警触发阈值确定为可调节项目。

进一步的,所述获取所述目标报警规则要素对应的历史数据,并对所述历史数据的变化进行可视化输出处理,包括:

获取所述目标报警规则要素中的时序数据监控目标在预设历史时段内各时间点对应的历史数据;

在统计图坐标系中显示所述历史数据和所述目标报警规则要素中的报警触发阈值分别对应的变化曲线,以及显示可调节项目对应的调节目标信息输入控件,其中,所述统计图坐标系以时间和所述时序数据监控目标分别为横轴及纵轴。

根据本公开的一个或多个实施例,提供了一种信息处理装置,包括:

规则表达式获取模块,用于获取原始报警规则源码信息对应的原始报警规则表达式;

目标报警规则要素确定模块,用于对所述原始报警规则表达式进行报警规则要素拆分,并从拆分得到的报警规则要素中筛选出目标报警规则要素,其中,所述目标报警规则要素中包含可调节项目;

可视化处理模块,用于获取所述目标报警规则要素对应的历史数据,并对所述历史数据的变化进行可视化输出处理,以供用户根据可视化输出结果输入相应的可调节项目的调节目标信息;

目标报警规则源码生成模块,用于根据接收到的调节目标信息对相应的可调节项目进行调节,并根据调整后的报警规则要素生成目标报警规则源码信息。

以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

相关技术
  • 信息处理系统、信息处理方法、信息处理设备、信息处理设备控制方法、信息处理终端、信息处理终端控制方法、信息存储介质以及程序
  • 位置确定处理装置、位置确定处理方法、位置确定处理程序、移动信息处理装置、移动信息处理方法、移动信息处理程序和存储介质
技术分类

06120112923360