基于大数据流计算的工作流监控与告警方法、装置及系统与流程

文档序号:24336881发布日期:2021-03-19 12:17阅读:113来源:国知局
基于大数据流计算的工作流监控与告警方法、装置及系统与流程

本发明具体涉及一种基于大数据流计算的工作流监控与告警方法、装置及系统。



背景技术:

随着电网规模的不断扩大,电力设备及设备种类不断增加,电力系统的工作流任务也越来越多,对工作流任务的处理效率要求也不断提高,对于紧急的工作流任务,也需要引入实时告警的功能,提醒工作人员及时进行处理以免出现超时。目前的工作流管理方案,主要目的是通过可视化的方式设计工作流程,以svg高亮节点和线路的方式查看任务的流转状态,更加偏向于整体任务的设计和整体流转情况的概览,无法追踪到具体节点的处理情况,导致工作流的管理的意义大大降低。当前对工作流的监控都集中在对工作流的流转状态的监控,对节点和路径的可视化高亮显示,缺少对具体节点执行状态和执行耗时的监控和告警,因此不能为评估工作流是否设计合理和监控工作流处理速度提供有力的支撑,无法有效提高工作流的流转效率。



技术实现要素:

针对上述问题,本发明提出一种基于大数据流计算的工作流监控与告警方法、装置及系统,解决了复杂工作流程里监控告警功能缺失的问题,对提高工作流的处理效率、及时发现处理异常提供了技术支撑。

为了实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:

第一方面,本发明提供了一种基于大数据流计算的工作流监控与告警方法,包括以下步骤:

获取原始流程流转参数;

对获取到的原始流程流转参数按照统一的格式进行重新定义,获得新的流程流转参数;

将所述新的流程流转参数序列化为json格式,并发送到kafka流消息平台;

获取预设的检测规则;

基于所述预设的检测规则,对kafka流消息平台中的流程流转参数进行监控;

对异常的监控结果进行告警,完成基于大数据流计算的工作流监控与告警。

可选地,所述获取原始流程流转参数,包括以下步骤:

编写agent程序,设置要监控的类和方法;

编写提取流程流转参数的代码逻辑;

在主程序的vmoptions添加-javaagent启动参数的方式,启用javaagent的功能,用于实现无侵入的方法级监控。

可选地,所述新的流程流转参数包括流程id、上级节点、当前节点、下级节点、处理人和处理耗时。

可选地,所述预设的检测规则的获取方法包括:

使用drools规则引擎,对流程和节点的超时处理、异常处理的检测规则进行定义和存储。

可选地,所述基于所述预设的检测规则,对kafka流消息平台中的流程流转参数进行监控,包括以下步骤:

flink流处理引擎从kafka流消息平台实时接入流程数据;

设置流处理的并行度;

定义水印;

设置flink复杂事件处理处理逻辑,指定处理的唯一凭据、监控规则和窗口时间;

基于所述处理逻辑找出正常流和异常流;

将正常流和异常流的数据打上标签,然后入库进行历史记录的存储,用于后续的效率分析和异常情况分析;

将异常流写入kafka流消息平台。

可选地,所述对异常的监控结果进行告警,包括以下步骤:

消费kafka流消息平台的异常消息,解析异常消息的标签;

异常消息分类写入时序库,并分析和展示异常原因;

发送告警信息和邮件,通知管理员流程处理出现了超时或者异常操作。

第二方面,本发明提供了一种基于大数据流计算的工作流监控与告警装置,包括:

第一获取模块,用于获取原始流程流转参数;

定义模块,用于对获取到的原始流程流转参数按照统一的格式进行重新定义,获得新的流程流转参数;

发送模块,用于将所述新的流程流转参数序列化为json格式,并发送到kafka流消息平台;

第二获取模块,用于获取预设的检测规则;

监控模块,用于基于所述预设的检测规则,对kafka流消息平台中的流程流转参数进行监控;

告警模块,用于对异常的监控结果进行告警,完成基于大数据流计算的工作流监控与告警。

第三方面,本发明提供了一种基于大数据流计算的工作流监控与告警系统,包括存储介质和处理器;

所述存储介质用于存储指令;

所述处理器用于根据所述指令进行操作以执行根据第一方面中任一项所述方法的步骤。

与现有技术相比,本发明的有益效果:

本发明采用javaagent的探针技术采集数据,即可满足即插即用的灵活性,也可以对工作流程精确到方法级别的数据采集。消息监控主要采用了kafka、flink等大数据实时处理引擎,可以支撑较大数据量的处理;整个方案不局限于工作流的监控告警,还可以灵活的适配其他的业务场景,具有一定的通用性,解决了复杂工作流程里监控告警功能缺失的问题,对提高工作流的处理效率、及时发现处理异常提供了技术支撑。

附图说明

为了使本发明的内容更容易被清楚地理解,下面根据具体实施例并结合附图,对本发明作进一步详细的说明,其中:

图1为本发明一种实施例的基于大数据流计算的工作流监控与告警方法的流程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明的保护范围。

下面结合附图对本发明的应用原理作详细的描述。

javaagent是jdk1.5的新特性,可以使用agent技术构建一个独立于应用程序的代理程序(即为agent),用来协助监测、运行甚至替换其他jvm上的程序,甚至能够替换和修改某些类的定义。开发者可以实现更为灵活的运行时虚拟机监控和java类操作,javaagent实际上提供了一种虚拟机级别支持的aop实现方式,使得开发者无需对jdk做任何升级和改动,就可以实现某些aop的功能。

kafka是一种高吞吐量的分布式发布订阅消息系统,它的目的是提供一个发布订阅解决方案,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。目前kafka已经成为大数据流处理管道的事实标准。

apacheflink是由apache软件基金会开发的开源流处理框架,其核心是用java和scala编写的分布式流数据流引擎。flink以数据并行和流水线方式执行任意流数据程序,flink的流水线运行时系统可以执行批处理和流处理程序。

规则引擎:规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。

实施例1

本发明提供了一种基于大数据流计算的工作流监控与告警方法,如图1所示,包括以下步骤:

步骤01、数据采集,即获取原始流程流转参数;

目前主流的java工作流引擎有jbpm、activiti、flowable等,每种引擎的工作方式和数据库存储方式都有差异,要采集每个节点的数据,需要定义一种通用的采集方式,考虑到实际的业务场景,这种采集方式不能对现有的业务运行和业务性能造成影响。

javaagent是java自带的探针技术,利用java自带的instrument特性和javassist字节码编辑能力,可以实现无侵入的方法级监控,对系统运行的影响降到最低。

为此,步骤01具体包括以下步骤:

编写agent程序,设置要监控的类和方法;

编写提取流程流转参数的代码逻辑;

编写成功后,在主程序的vmoptions添加-javaagent启动参数的方式启用javaagent的功能,用于实现无侵入的方法级监控。

步骤02、数据定义,即对获取到的原始流程流转参数按照统一的格式进行重新定义,获得新的流程流转参数;

所述新的流程流转参数包括流程id、上级节点、当前节点、下级节点、处理人和处理耗时。

步骤03、消息传输

所述步骤03具体包括:

将所述新的流程流转参数序列化为json格式(采用业界通用的jackson进行序列化),并发送到kafka流消息平台;

步骤04、规则定义

获取预设的检测规则;

所述预设的检测规则的获取方法包括:

使用drools规则引擎,对流程和节点的超时处理、异常处理的检测规则进行定义和存储。

步骤05、消息监控

基于所述预设的检测规则,对kafka流消息平台中的流程流转参数进行监控,具体包括:

flink流处理引擎从kafka流消息平台实时接入流程数据;

设置流处理的并行度,一般设置为三个及以上来充分利用flink的集群能力,保证处理的效率避免出现消息积压;

定义水印,解决分布式实时计算的数据乱序问题,根据实际情况设置水印时间;

设置flink复杂事件处理处理逻辑,指定处理的唯一凭据、监控规则和窗口时间,基于所述处理逻辑找出正常流和异常流;以步骤02的数据定义为例,唯一凭据是流程id,窗口时间定义3s,监控规则读取步骤04的drools定义,最终的处理逻辑就是监控同一个流程id在3s内符合drools定义的数据,将满足条件的数据放入正常的处理流,将不满足条件的数据放入异常流;

将正常流和异常流的数据打上标签,然后入库进行历史记录的存储,用于后续的效率分析和异常情况分析;

将异常流写入kafka流消息平台。

步骤06、异常告警

对异常的监控结果进行告警,完成基于大数据流计算的工作流监控与告警,具体包括:

消费kafka流消息平台的异常消息,解析异常消息的标签;

异常消息分类写入时序库,并结合vue等前端工具分析和展示异常原因;

发送告警信息和邮件,通知管理员流程处理出现了超时或者异常操作。

综上所述:

本发明使用javaagent技术监控方法执行,抽取流程处理数据,屏蔽了底层不同工作流引擎的差异。

本发明使用drools规则引擎定义异常和超时规则,利用动态更新的特性可以根据及时调整规则。

本发明结合flinkcep技术对大量实时的数据进行处理,及时反馈流程处理的情况。

实施例2

基于与实施例1相同的发明构思,本发明实施例中提供了一种基于大数据流计算的工作流监控与告警装置,包括:

第一获取模块,用于获取原始流程流转参数;

定义模块,用于对获取到的原始流程流转参数按照统一的格式进行重新定义,获得新的流程流转参数;

发送模块,用于将所述新的流程流转参数序列化为json格式,并发送到kafka流消息平台;

第二获取模块,用于获取预设的检测规则;

监控模块,用于基于所述预设的检测规则,对kafka流消息平台中的流程流转参数进行监控;

告警模块,用于对异常的监控结果进行告警,完成基于大数据流计算的工作流监控与告警。

其余部分均与实施例1相同。

实施例3

基于与实施例1相同的发明构思,本发明实施例中提供了一种基于大数据流计算的工作流监控与告警系统,包括存储介质和处理器;

所述存储介质用于存储指令;

所述处理器用于根据所述指令进行操作以执行根据实施例1中任一项所述方法的步骤。

其余部分均与实施例1相同。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1