CN107515864B - 监控工作流的方法及设备 - Google Patents
监控工作流的方法及设备 Download PDFInfo
- Publication number
- CN107515864B CN107515864B CN201610423078.3A CN201610423078A CN107515864B CN 107515864 B CN107515864 B CN 107515864B CN 201610423078 A CN201610423078 A CN 201610423078A CN 107515864 B CN107515864 B CN 107515864B
- Authority
- CN
- China
- Prior art keywords
- workflow
- event
- monitoring
- time
- task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/144—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Library & Information Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
申请的目的是提供一种监控工作流的方法及设备,本申请通过记录工作流执行的原始事件数据,而不是通过查询工作流的数据库,使用工作流来解决系统链路跟踪的问题,进而将属于同一工作流的原始事件数据聚合成该工作流的监控指标,然后按不同的维度将所述工作流的监控指标聚合成对应的汇总监控指标,解决在多个部署区域的环境下,跨机房服务调用延迟、数据存储、多维度数据分析的问题,能够很好地支持海量工作流调用,同时能够适应灵活的工作流部署结构,实现在大规模分布式环境下,高效监控海量工作流的运行情况。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种监控工作流的方法及设备。
背景技术
在传统环境下,工作流监控主要是基于关系型数据库来完成工作流整体运行情况的分析。在工作流运行时,引擎会在数据库中插入若干条工作流执行记录,比如启动工作流时,引擎会插入一条新的工作流记录,标识工作流已经启动;在启动活动时,引擎会插入一条新的活动记录,标识工作流活动任务被创建;在结束工作流时,引擎会更新工作流记录的状态。之后,用户可以使用SQL语句来查询工作流的具体执行情况,如在特定时间内运行了多少个工作流实例,多少成功,多少失败等。现有的工作流解决方案如jBPM,Activi等都是使用类似的方案来提供工作流监控的功能。
多个部署区域意味着部署区域之间相互通信的延迟可能在秒级,即从一个部署区域到另外一个部署区域可能需要花费数秒甚至是数十秒的时间,这导致在跨机房的情况下使用单一的数据库实例存储实时的工作流运行数据基本是不可能的。海量的工作流实例则意味着对于数据的处理能力和存储能力提出了更高的要求,需要能够支持存储每天上亿的工作流实例数量。这些问题对于传统的工作流监控方法都提出了挑战。
上述现有方法在工作流实例数量较少和部署区域单一的情况下运行会比较良好,但是如果需要在多个区域(如杭州、青岛、北京等)部署相同的工作流类型,每天调用量过亿,业务人员需要查看总体的工作流运行情况,传统的工作流监控方法很难解决以上问题。首先是机房与机房之间的延迟问题,在广域网的环境下,机房与机房之间的通信延迟通常在秒级,每一次调用可能需要花费数秒甚至数十秒的时间,所以使用单一数据库来保存所有部署区域的实时工作流数据从技术上来看基本不可能。即使数据延迟的问题能够解决,如果每天工作流实例的启动数量超过亿次,则对应的工作流活动数量可能会超过十亿次,这种规模的数据量也超过了传统关系型数据能够容纳的极限。
如果工作流监控数据库部署在各个不同的机房,上面提到的延迟问题和数据量的问题有一定程度的解决。但是,用户可能需要统计跨机房的工作流调用情况,如基于部署区域维度或是工作流类型维度或是活动维度来分析工作流调用。一种解决办法是使用轮询来收集各个机房或是部署区域的工作流调用情况,然后根据查询维度来汇总。这个方法由于需要轮询各个机房的工作流监控服务,查询时间可能会很长,用户体验会很差。更重要的是,轮询到的数据可能无法计算出精确地指标,如跨机房百分们(Percentile)的指标。在机房拓扑发生变化的情况下,也需要对应的调整工作流监控的轮询服务代码来适应,无法很好地适应机房调整的情况。
如前所述,现有工作流监控方案基本都是基于数据库来完成,如jBPM,Activi等。但是这些方案在多机房海量数据的情况下会有比较严重的问题,如跨机房服务调用延迟、数据存储、多维度数据分析等。本文提出的办法较好的解决了以上的问题。
发明内容
本申请提供一种监控工作流的方法及设备,能够解决跨机房服务调用延迟、数据存储、多维度数据分析的问题。
本申请的一个目的是提供一种监控工作流的方法,该方法包括:
记录工作流执行的原始事件数据;
将属于同一工作流的原始事件数据聚合成该工作流的监控指标;
按不同的维度将所述工作流的监控指标聚合成对应的汇总监控指标。
进一步的,上述方法中,按不同的维度将所述工作流的监控指标聚合成对应的汇总监控指标之后,还包括:
根据不同的维度查询对应的汇总监控指标。
进一步的,上述方法中,所述工作流的类型包括工作流实例、子流程实例、活动任务、信号量和人工任务中的一种或任意组合。
进一步的,上述方法中,所述工作流实例的事件类型包括启动工作流实例和结束工作流实例,所述子流程实例的类型包括启动子流程实例和结束子流程实例,所述活动任务的事件类型包括启动新的活动任务和结束活动任务,所述信号量的事件类型包括触发信号量和结束信号量,所述人工任务的事件类型包括启动人工任务和结束人工任务。
进一步的,上述方法中,所述维度包括工作流实例类型、子流程实例类型、活动任务类型、信号量类型、人工任务类型、工作流时间区间、部署区域、工作流名称和调用时间中的一种或任意组合。
进一步的,上述方法中,所述汇总监控指标包括数量指标、运行时间指标、调度时间指标和可靠性指标中一种或任意组合。
进一步的,上述方法中,所述数量指标包括工作流总数量、成功数量、失败数量和超时数量中的一种或任意组合。
进一步的,上述方法中,所述运行时间指标包括平均执行时间、最大执行时间、最小执行时间和百分位执行时间指标中的一种或任意组合。
进一步的,上述方法中,所述调度时间指标包括平均调度时间、最大调度时间、最小调度时间和百分位调度时间指标中的一种或任意组合。
进一步的,上述方法中,所述可靠性指标包括成功率指标和失败率指标中的一种或任意组合。
根据本申请的另一方面,还提供了一种监控工作流的设备,该设备包括:
根据本申请的另一面,还提供一种监控工作流的设备,该设备包括:
记录装置,用于记录工作流执行的原始事件数据;
聚合装置,用于将属于同一工作流的原始事件数据聚合成该工作流的监控指标;
汇总装置,用于按不同的维度将所述工作流的监控指标聚合成对应的汇总监控指标。
进一步的,上述设备中,所述设备还包括查询装置,用于根据不同的维度查询对应的汇总监控指标。
进一步的,上述设备中,所述工作流的类型包括工作流实例、子流程实例、活动任务、信号量和人工任务中的一种或任意组合。
进一步的,上述设备中,所述工作流实例的事件类型包括启动工作流实例和结束工作流实例,所述子流程实例的类型包括启动子流程实例和结束子流程实例,所述活动任务的事件类型包括启动新的活动任务和结束活动任务,所述信号量的事件类型包括触发信号量和结束信号量,所述人工任务的事件类型包括启动人工任务和结束人工任务。
进一步的,上述设备中,所述维度包括工作流实例类型、子流程实例类型、活动任务类型、信号量类型、人工任务类型、工作流时间区间、部署区域、工作流名称和调用时间中的一种或任意组合。
进一步的,上述设备中,所述汇总监控指标包括数量指标、运行时间指标、调度时间指标和可靠性指标中一种或任意组合。
进一步的,上述设备中,所述数量指标包括工作流总数量、成功数量、失败数量和超时数量中的一种或任意组合。
进一步的,上述设备中,所述运行时间指标包括平均执行时间、最大执行时间、最小执行时间和百分位执行时间指标中的一种或任意组合。
进一步的,上述设备中,所述调度时间指标包括平均调度时间、最大调度时间、最小调度时间和百分位调度时间指标中的一种或任意组合。
进一步的,上述设备中,所述可靠性指标包括成功率指标和失败率指标中的一种或任意组合。
与现有技术相比,本申请通过记录工作流执行的原始事件数据,而不是通过查询工作流的数据库,使用工作流来解决系统链路跟踪的问题,进而将属于同一工作流的原始事件数据聚合成该工作流的监控指标,然后按不同的维度将所述工作流的监控指标聚合成对应的汇总监控指标,解决在多个部署区域的环境下,跨机房服务调用延迟、数据存储、多维度数据分析的问题,能够很好地支持海量工作流调用,同时能够适应灵活的工作流部署结构,实现在大规模分布式环境下,高效监控海量工作流的运行情况。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种监控工作流的方法的流程图;
图2示出本申请中的监控工作流的方法一优选的实施例的流程图;
图3示出根据本申请另一个方面的一种监控工作流的设备的模块图;
图4示出根据本申请中的监控工作流的设备一优选实施例的模块图;
图5示出本申请的一具体的应用实例的模块图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
如图1所示,本申请提供一种监控工作流的方法,其中,该方法包括:
步骤S1,记录工作流执行的原始事件数据;在此,记录工作流执行的原始事件数据,具体可根据不同的操作类型,记录工作流的运行日志,包括事件ID(event_id),事件类型(event_type),前一事件ID(pre_event_id),工作流ID(workflow_id),工作流名称(workflow_type),工作流版本(workflow_version),活动名称(activity_name),执行时间(exec_time),父流程id(subflow_id),业务id(biz_id),主机ip(host),主机id(host_uuid),工作流标签(tag),事件时间(time)等,事件日志记录了工作流的详细执行过程;
步骤S2,将属于同一工作流的原始事件数据聚合成该工作流的监控指标;具体的,本步骤是分析工作流的原始事件数据,产生有意义的工作流中间监控聚合指标,前述的工作流的原始事件数据如事件日志,只是工作流运行过程中单条事件流的数据,需要做数据的清洗和融合,具体可分别将属于同一工作流ID的原始事件数据进行聚合,然后产生不同工作流如工作流实例、活动任务、信号量、人工任务的监控指标,数据清洗和融合的过程可以发生在工作流部署所在的机房,也可以发生在统一的地方;
步骤S3,按不同的维度将所述工作流的监控指标聚合成对应的汇总监控指标。具体的,在工作流中间监控指标汇总完成后,可以根据不同的维度来生成对应的汇总监控指标,本实施例通过记录工作流执行的原始事件数据如原始事件日志,而不是通过查询工作流的数据库,使用工作流来解决系统链路跟踪的问题,进而根据所述原始事件数据聚合生成每一工作流的监控指标,然后按不同的维度,将所述监控指标聚合生成各维度下的汇总监控指标,解决在多个部署区域的环境下,跨机房服务调用延迟、数据存储、多维度数据分析的问题,能够很好地支持海量工作流调用,同时能够适应灵活的工作流部署结构,实现在大规模分布式环境下,高效监控海量工作流的运行情况。
如图2所示,本申请监控工作流的方法一优选的实施例中,步骤S3,按不同的维度将所述工作流的监控指标聚合成对应的汇总监控指标之后,还包括:
步骤S4,根据不同的维度查询对应的汇总监控指标,在此,以不同的维度作为查询条件,从而实现高效地针对不同的维度来查看对应的汇总监控指标。
本申请监控工作流的方法一优选的实施例中,所述工作流的类型包括工作流实例、子流程实例、活动任务、信号量和人工任务中的一种或任意组合,具体的,工作流在运行过程中,根据工作流的定义,会启动新的工作流实例,执行活动任务,触发信号量等,这些可由一活动引擎会生成对应的工作流的原始事件数据,这些原始事件数据可以日志的形式记录到持久化存储模块中。在收集工作流的事件数据后,将同一工作流的多条事件指标聚合汇总成为工作流实例、活动任务、信号量和人工任务的原始的监控指标,每一个工作流实例对应于一条原始的工作流实例的监控指标;每一个活动任务会对应于一条原始的工作流活动的监控指标;每一个信号量实例会对应于一条信号量的监控指标;每一个人工任务实例会对应于一条人工任务的监控指标,从而实现高效监控各类海量工作流的运行情况。
本申请监控工作流的方法一优选的实施例中,所述工作流实例的事件类型包括启动工作流实例和结束工作流实例,所述子流程实例的类型包括启动子流程实例和结束子流程实例,所述活动任务的事件类型包括启动新的活动任务和结束活动任务,所述信号量的事件类型包括触发信号量和结束信号量,所述人工任务的事件类型包括启动人工任务和结束人工任务,例如,某一工作流实例的原始事件数据有启动工作流实例和结束工作流实例,则该工作流实例的启动工作流实例和结束工作流实例需要聚合成该工作流实例的工作流的监控指标;又如,某一活动任务的原始事件数据包括启动新的活动任务和结束活动任务,则该活动任务的启动新的活动任务和结束活动任务需要聚合成该活动任务的监控指标;再如,某一信号量的原始事件数据包括触发信号量和结束信号量,则该信号量的触发信号量和结束信号量需要聚合成该信号量的监控指标;还如,某一人工任务的原始事件数据包括启动人工任务和结束人工任务,则该人工任务的启动人工任务和结束人工任务需要聚合成该人工任务的监控指标,从而便于后续将属于同一工作流的原始事件数据聚合成该工作流的监控指标。具体的,每一个工作流的原始事件数据可包含以下域:事件ID(event_id),事件类型(event_type),前一事件ID(pre_event_id),工作流ID(workflow_id),工作流名称(workflow_type),工作流版本(workflow_version),活动名称(activity_name),执行时间(exec_time),父流程id(subflow_id),业务id(biz_id),主机ip(host),主机id(host_uuid),工作流标签(tag),事件时间(time)等。在工作流运行过程中,主要的事件类型包括:
启动工作流实例:在工作流实例启动时,记录一条工作流实例启动的事件日志,需要记录事件ID、事件类型、工作流ID、工作流名称、版本、所在机器、事件时间和相关业务数据的信息;
启动新的活动任务:在启动新的活动任务时,记录一条活动启动的信息,需要记录事件ID、事件类型、工作流ID、工作流名称、版本、活动名称、所在机器、事件时间和相关的业务数据信息;
结束活动任务:在结束活动任务时,记录一条活动结束的信息,需要记录事件ID、事件类型、工作流ID、工作流名称、版本、活动名称、所在机器、事件时间和相关业务数据,活动任务的类型可能是成功、失败或是超时,这些会对应于不同的事件类型;
启动子流程实例:在启动子流程实例时,记录一条子工作流启动的事件日志,内容包括事件ID、事件类型、父工作流ID,子工作流ID,子工作流名称、版本、所在机器、事件时间和相关业务数据等;
结束子流程实例:在结束子工作流实例时,记录一条子工作流结束的事件日志,包括事件ID、事件类型、父工作流ID、子工作流ID,子工作流名称、版本、执行时间、所在机器、事件时间和相关业务数据等,子流程实例结束的事件类型可能是成功、失败或是超时;
触发信号量:工作流触发信号量时,工作流引擎会暂时停止工作流实例的执行,直到接收到重启的指令。在触发信号量时,工作流会记录一条信号量开始日志,内容包括事件ID、事件类型、工作流ID、工作流名称、版本、信号量名称、所在机器、事件时间和相关业务数据等;
结束信号量:当工作流引擎接收到信号量请求时,记录一条标示工作流重新启动的事件日志,包括事件ID、事件类型、工作流ID、工作流名称、版本、信号量名称、所在机器、事件时间和相关业务数据等;
启动人工任务:当工作流遇到人工任务时,会记录一条人工任务启动的事件,包括事件ID、事件类型、工作流ID、工作流名称、版本、人工任务名称、所在机器、事件时间和相关业务数据等;
结束人工任务:当人工任务结束时,工作流引擎会记录一条人工任务结束的事件,包括事件ID、事件类型、工作流ID、工作流名称、版本、人工任务名称、所在机器、事件时间和相关业务数据等;
结束工作流实例:当工作流实例结束时,工作流引擎会记录工作流结束的日志,包括工作流ID、工作流名称、版本、执行时间、所在机器和相关业务数据等。
详细的,步骤S2,将属于同一工作流的原始事件数据聚合成该工作流的监控指标的过程如下:
工作流实例的监控指标:工作流实例的监控指标主要记录单条工作流实例的运行情况,包括工作流ID、工作流名称、版本、是否启动、是否成功、是否失败、是否超时、调度时间、执行时间、开始时间、结束时间、所属账户、运行区域、机器IP等,其中,所述调度时间是指工作流实际执行的时间,工作流启动之后可能并不会立刻执行,从启动到真正开始执行存在一个时间差,这个差就是调度的时间。生成的过程下:
当遇到启动工作流实例的事件时,如果没有发现相同ID工作流监控记录,则创建一条新的记录,填入工作流ID、工作流名称、版本、启动设置为1,成功设置为0,失败设置为0,超时设置为0,执行时间设置为0,开始时间设置为事件时间,结束时间设置为0,根据事件中的机器IP查找到对应的账户与部署区域,并设置到工作流实例上;考虑到事件处理顺序的不确定性,即在网络环境下,存在事件采集顺序的不确定性,收到事件原始日志时,可能结束事件日志先收到,启动事件日志后收到,所以必须要保证事件处理的时间无关性,如果已经存在相同工作流ID的记录,则根据事件设置工作流的属性,包括工作流是否启动、开始时间等,另外,本步骤中还需要汇总调度时间的原始事件数据便于后续分析查询;
当遇到结束工作流实例的事件时,找到对应的工作流记录,根据事件内容填入工作流实例的信息,包括结束时间、执行时间。如果是工作流成功事件,则成功设置为1,如果是失败事件,则失败设置为1,如果是超时事件,则超时设置为1;考虑到事件处理顺序的不确定性,如果工作流记录不存在,则创建新的工作流记录,设置工作流ID、名称、版本、所在机器、所属账户和运行区域等信息;
活动任务指标:活动任务的监控指标主要记录单个活动任务的运行情况,包括工作流ID、工作流名称、版本、活动名称、是否启动、是否成功、是否失败、是否超时、执行时间、开始时间、结束时间、所属账户、运行区域、机器IP等,具体生成的过程下:
当遇到启动新的活动任务的事件时,如果没有发现相同ID的活动监控记录,则创建一条新的记录,填入工作流ID、工作流名称、版本、活动名称、启动设置为1,成功设置为0,失败设置为0,超时设置为0,执行时间设置为0,开始时间设置为事件时间,结束事件设置为0,根据事件中的机器IP查找到对应的账户与部署区域,并填入活动监控记录;考虑到事件处理顺序的不确定性,如果已经存在相同活动任务ID的记录,则根据事件设置工作流的属性,包括活动是否启动、开始时间等,另外,本步骤中还需要汇总调度时间的原始事件数据便于后续分析查询;
当遇到结束活动任务的事件时,找到对应的工作流活动监控记录,根据事件内容填入工作流活动的信息,包括结束时间、执行时间。如果是活动成功结束事件,则成功设置为1,如果是失败事件,则失败设置为1,如果是超时事件,则超时设置为1;考虑到事件处理顺序的不确定性,如果活动任务记录不存在,则创建新的工作流活动记录,设置工作流ID、名称、版本、活动名称、所在机器、所属账户和运行区域等;
信号量指标:工作流信号量的监控指标主要记录单个工作流信号量的运行情况,包括工作流ID、工作流名称、版本、信号量名称、是否启动、是否结束、执行时间、开始时间、结束时间、所属账户、运行区域、机器IP等。在某些情况下,信号量事件的处理过程可以与活动指标的处理过程合并,但需要在活动类型上加以区分。具体生成的过程下:
当遇到触发信号量的事件时,如果没有发现相同ID的监控记录,则创建一条新的记录,填入工作流ID、工作流名称、版本、信号量名称、启动设置为1,结束设置为0,等待时间设置为0,开始时间设置为事件时间,结束时间设置为0,根据事件中的机器IP查找到对应的账户与部署区域,并填入监控记录;考虑到事件处理顺序的不确定性,如果已经存在相同工作流信号量ID的记录,则根据事件设置工作流的属性,包括活动是否启动、开始时间等;
当遇到结束信号量的事件时,找到对应的工作流信号量监控记录,根据事件内容填入工作流信号量的信息,包括结束时间、等待时间和结束指标。考虑到事件处理顺序的不确定性,如果信号量记录不存在,则创建新的信号量记录,设置工作流ID、名称、版本、信号量名称、所在机器、所属账户和运行区域等;
人工任务指标:工作流人工任务的监控指标主要记录单个工作流人工任务的运行情况,包括工作流ID、工作流名称、版本、人工任务名称、是否启动、是否成功、是否失败、是否超时、执行时间、开始时间、结束时间、所属账户、运行区域、机器IP等。在某些情况下,人工任务的处理过程可以与活动指标的处理过程合并,但需要在任务类型上加以区分。具体生成的过程下:
当遇到启动人工任务的事件时,如果没有发现相同ID的人工任务监控记录,则创建一条新的记录,填入工作流ID、工作流名称、版本、人工名称、启动设置为1,成功设置为0,失败设置为0,超时设置为0,执行时间设置为0,开始时间设置为事件时间,结束时间设置为0,根据事件中的机器IP查找到对应的账户与部署区域,并填入人工任务监控记录;考虑到事件处理顺序的不确定性,如果已经存在相同工作流人工任务ID的记录,则根据事件设置工作流的属性,包括任务是否启动、开始时间等;
当遇到结束人工任务的事件时,找到对应的工作流人工任务监控记录,根据事件内容填入工作流活动的信息,包括结束时间、执行时间。如果是任务成功结束事件,则成功设置为1,如果是失败事件,则失败设置为1,如果是超时事件,则超时设置为1;考虑到事件处理顺序的不确定性,如果人工任务记录不存在,则创建新的工作流人工任务记录,设置工作流ID、名称、版本、活动名称、所在机器、所属账户和运行区域等。
本申请监控工作流的方法一优选的实施例中,所述维度包括工作流实例类型、子流程实例类型、活动任务类型、信号量类型、人工任务类型、工作流时间区间、部署区域、工作流名称和调用时间中的一种或任意组合。具体的,计算工作流的汇总监控指标时,可将单个的原始的工作流监控指标根据不同的计算维度聚合成为汇总的指标,对工作流的监控指标分析主要包含多个不同的维度即查询条件:工作流实例类型、子流程实例类型、活动任务类型、信号量类型、人工任务类型、工作流时间区间和部署区域等,从而便于后续根据不同的维度查询对应的汇总监控指标,从而实现高效地针对不同的维度来查看对应的汇总监控指标。
本申请监控工作流的方法一优选的实施例中,所述汇总监控指标包括数量指标、运行时间指标、调度时间标和可靠性指标中一种或任意组合,从而便于后续查询不同分析角度的汇总监控指标,实现高效地针对不同的查询条件得到不同分析角度来查看对应的汇总监控指标,即查询结果。具体的,可提供不同维度的工作流监控指标查询,查询的维度包括工作流类型、调用时间和运行区域等;查询的指标包括工作流数量指标、运行时间指标和可靠性指标等。
本申请监控工作流的方法一优选的实施例中,所述数量指标包括工作流总数量、成功数量、失败数量和超时数量中的一种或任意组合,具体的,所述数量指标包括工作流实例、活动任务、信号量和人工任务的数量指标、运行时间指标和可靠性指标,从而便于后续查询数量指标中不同分析角度的汇总监控指标,从而实现高效地针对数量指标中不同的分析角度来查看对应的汇总监控指标。
本申请监控工作流的方法一优选的实施例中,所述运行时间指标包括平均执行时间、最大执行时间、最小执行时间和百分位(Percentile)执行时间指标中的一种或任意组合,从而便于后续查询运行时间指标中不同分析角度的汇总监控指标,从而实现高效地针对运行时间指标中不同的分析角度来查看对应的汇总监控指标。具体的,所述平均执行时间、最大执行时间、最小执行时间和百分位执行时间指标可基于工作流的结束时间与启动时间的差值得到,百分位执行时间指标如90%工作流最大的执行时间。
本申请监控工作流的方法一优选的实施例中,所述调度时间指标包括平均调度时间、最大调度时间、最小调度时间和百分位调度时间指标中的一种或任意组合,从而便于后续查询调度时间指标中不同分析角度的汇总监控指标,实现高效地针对调度时间指标中不同的分析角度来查看对应的汇总监控指标。具体的,平均调度时间、最大调度时间、最小调度时间和百分位调度时间指标可基于调度时间和启动时间的差值得到,另外,百分位调度时间如90%工作流最大的调度时间。
本申请监控工作流的方法一优选的实施例中,所述可靠性指标包括成功率指标和失败率指标中的一种或任意组合。具体的,所述可靠性指标包括工作流的成功率指标、失败率指标等,从而便于后续查询可靠性指标中不同分析角度的汇总监控指标,实现高效地针对可靠性指标中不同的分析角度来查看对应的汇总监控指标。
如图3所示,根据本申请的另一面,还提供一种监控工作流的设备,该设备100包括:
记录装置1,用于记录工作流执行的原始事件数据;在此,记录工作流执行的原始事件数据,具体可根据不同的操作类型,记录工作流的运行日志,包括事件ID(event_id),事件类型(event_type),前一事件ID(pre_event_id),工作流ID(workflow_id),工作流名称(workflow_type),工作流版本(workflow_version),活动名称(activity_name),执行时间(exec_time),父流程id(subflow_id),业务id(biz_id),主机ip(host),主机id(host_uuid),工作流标签(tag),事件时间(time)等,事件日志记录了工作流的详细执行过程;
聚合装置2,用于将属于同一工作流的原始事件数据聚合成该工作流的监控指标;具体的,本步骤是分析工作流的原始事件数据,产生有意义的工作流中间监控聚合指标,前述的工作流的原始事件数据如事件日志,只是工作流运行过程中单条事件流的数据,需要做数据的清洗和融合,具体可分别将属于同一工作流ID的原始事件数据进行聚合,然后产生不同工作流如工作流实例、活动任务、信号量、人工任务的监控指标,数据清洗和融合的过程可以发生在工作流部署所在的机房,也可以发生在统一的地方;
汇总装置3,用于按不同的维度将所述工作流的监控指标聚合成对应的汇总监控指标。具体的,在工作流中间监控指标汇总完成后,可以根据不同的维度来生成对应的汇总监控指标,本实施例通过记录工作流执行的原始事件数据如原始事件日志,而不是通过查询工作流的数据库,使用工作流来解决系统链路跟踪的问题,进而根据所述原始事件数据聚合生成每一工作流的监控指标,然后按不同的维度,将所述监控指标聚合生成各维度下的汇总监控指标,解决在多个部署区域的环境下,跨机房服务调用延迟、数据存储、多维度数据分析的问题,能够很好地支持海量工作流调用,同时能够适应灵活的工作流部署结构,实现在大规模分布式环境下,高效监控海量工作流的运行情况。
本申请监控工作流的设备一优选的实施例中,所述设备100还包括查询装置4,用于根据不同的维度查询对应的汇总监控指标,在此,以不同的维度作为查询条件,从而实现高效地针对不同的维度来查看对应的汇总监控指标。
本申请监控工作流的设备一优选的实施例中,所述工作流的类型包括工作流实例、子流程实例、活动任务、信号量和人工任务中的一种或任意组合具体的,工作流在运行过程中,根据工作流的定义,会启动新的工作流实例,执行活动任务,触发信号量等,这些可由一活动引擎会生成对应的工作流的原始事件数据,这些原始事件数据可以日志的形式记录到持久化存储模块中。在收集工作流的事件数据后,将同一工作流的多条事件指标聚合汇总成为工作流实例、活动任务、信号量和人工任务的原始的监控指标,每一个工作流实例对应于一条原始的工作流实例的监控指标;每一个活动任务会对应于一条原始的工作流活动的监控指标;每一个信号量实例会对应于一条信号量的监控指标;每一个人工任务实例会对应于一条人工任务的监控指标,从而实现高效监控各类海量工作流的运行情况。
本申请监控工作流的设备一优选的实施例中,所述工作流实例的事件类型包括启动工作流实例和结束工作流实例,所述子流程实例的类型包括启动子流程实例和结束子流程实例,所述活动任务的事件类型包括启动新的活动任务和结束活动任务,所述信号量的事件类型包括触发信号量和结束信号量,所述人工任务的事件类型包括启动人工任务和结束人工任务。例如,某一工作流实例的原始事件数据有启动工作流实例和结束工作流实例,则该工作流实例的启动工作流实例和结束工作流实例需要聚合成该工作流实例的工作流的监控指标;又如,某一活动任务的原始事件数据包括启动新的活动任务和结束活动任务,则该活动任务的启动新的活动任务和结束活动任务需要聚合成该活动任务的监控指标;再如,某一信号量的原始事件数据包括触发信号量和结束信号量,则该信号量的触发信号量和结束信号量需要聚合成该信号量的监控指标;还如,某一人工任务的原始事件数据包括启动人工任务和结束人工任务,则该人工任务的启动人工任务和结束人工任务需要聚合成该人工任务的监控指标,从而便于后续将属于同一工作流的原始事件数据聚合成该工作流的监控指标。具体的,每一个工作流的原始事件数据可包含以下域:事件ID(event_id),事件类型(event_type),前一事件ID(pre_event_id),工作流ID(workflow_id),工作流名称(workflow_type),工作流版本(workflow_version),活动名称(activity_name),执行时间(exec_time),父流程id(subflow_id),业务id(biz_id),主机ip(host),主机id(host_uuid),工作流标签(tag),事件时间(time)等。在工作流运行过程中,主要的事件类型包括:
启动工作流实例:在工作流实例启动时,记录一条工作流实例启动的事件日志,需要记录事件ID、事件类型、工作流ID、工作流名称、版本、所在机器、事件时间和相关业务数据的信息;
启动新的活动任务:在启动新的活动任务时,记录一条活动启动的信息,需要记录事件ID、事件类型、工作流ID、工作流名称、版本、活动名称、所在机器、事件时间和相关的业务数据信息;
结束活动任务:在结束活动任务时,记录一条活动结束的信息,需要记录事件ID、事件类型、工作流ID、工作流名称、版本、活动名称、所在机器、事件时间和相关业务数据,活动任务的类型可能是成功、失败或是超时,这些会对应于不同的事件类型;
启动子流程实例:在启动子流程实例时,记录一条子工作流启动的事件日志,内容包括事件ID、事件类型、父工作流ID,子工作流ID,子工作流名称、版本、所在机器、事件时间和相关业务数据等;
结束子流程实例:在结束子工作流实例时,记录一条子工作流结束的事件日志,包括事件ID、事件类型、父工作流ID、子工作流ID,子工作流名称、版本、执行时间、所在机器、事件时间和相关业务数据等,子流程实例结束的事件类型可能是成功、失败或是超时;
触发信号量:工作流触发信号量时,工作流引擎会暂时停止工作流实例的执行,直到接收到重启的指令。在触发信号量时,工作流会记录一条信号量开始日志,内容包括事件ID、事件类型、工作流ID、工作流名称、版本、信号量名称、所在机器、事件时间和相关业务数据等;
结束信号量:当工作流引擎接收到信号量请求时,记录一条标示工作流重新启动的事件日志,包括事件ID、事件类型、工作流ID、工作流名称、版本、信号量名称、所在机器、事件时间和相关业务数据等;
启动人工任务:当工作流遇到人工任务时,会记录一条人工任务启动的事件,包括事件ID、事件类型、工作流ID、工作流名称、版本、人工任务名称、所在机器、事件时间和相关业务数据等;
结束人工任务:当人工任务结束时,工作流引擎会记录一条人工任务结束的事件,包括事件ID、事件类型、工作流ID、工作流名称、版本、人工任务名称、所在机器、事件时间和相关业务数据等;
结束工作流实例:当工作流实例结束时,工作流引擎会记录工作流结束的日志,包括工作流ID、工作流名称、版本、执行时间、所在机器和相关业务数据等。
详细的,步骤S2,将属于同一工作流的原始事件数据聚合成该工作流的监控指标的过程如下:
工作流实例的监控指标:工作流实例的监控指标主要记录单条工作流实例的运行情况,包括工作流ID、工作流名称、版本、是否启动、是否成功、是否失败、是否超时、调度时间、执行时间、开始时间、结束时间、所属账户、运行区域、机器IP等,其中,所述调度时间是指工作流实际执行的时间,工作流启动之后可能并不会立刻执行,从启动到真正开始执行存在一个时间差,这个差就是调度的时间。生成的过程下:
当遇到启动工作流实例的事件时,如果没有发现相同ID工作流监控记录,则创建一条新的记录,填入工作流ID、工作流名称、版本、启动设置为1,成功设置为0,失败设置为0,超时设置为0,执行时间设置为0,开始时间设置为事件时间,结束时间设置为0,根据事件中的机器IP查找到对应的账户与部署区域,并设置到工作流实例上;考虑到事件处理顺序的不确定性,即在网络环境下,存在事件采集顺序的不确定性,收到事件原始日志时,可能结束事件日志先收到,启动事件日志后收到,所以必须要保证事件处理的时间无关性,如果已经存在相同工作流ID的记录,则根据事件设置工作流的属性,包括工作流是否启动、开始时间等,另外,本步骤中还需要汇总调度时间的原始事件数据便于后续分析查询;
当遇到结束工作流实例的事件时,找到对应的工作流记录,根据事件内容填入工作流实例的信息,包括结束时间、执行时间。如果是工作流成功事件,则成功设置为1,如果是失败事件,则失败设置为1,如果是超时事件,则超时设置为1;考虑到事件处理顺序的不确定性,如果工作流记录不存在,则创建新的工作流记录,设置工作流ID、名称、版本、所在机器、所属账户和运行区域等信息;
活动任务指标:活动任务的监控指标主要记录单个活动任务的运行情况,包括工作流ID、工作流名称、版本、活动名称、是否启动、是否成功、是否失败、是否超时、执行时间、开始时间、结束时间、所属账户、运行区域、机器IP等,具体生成的过程下:
当遇到启动新的活动任务的事件时,如果没有发现相同ID的活动监控记录,则创建一条新的记录,填入工作流ID、工作流名称、版本、活动名称、启动设置为1,成功设置为0,失败设置为0,超时设置为0,执行时间设置为0,开始时间设置为事件时间,结束事件设置为0,根据事件中的机器IP查找到对应的账户与部署区域,并填入活动监控记录;考虑到事件处理顺序的不确定性,如果已经存在相同活动任务ID的记录,则根据事件设置工作流的属性,包括活动是否启动、开始时间等,另外,本步骤中还需要汇总调度时间的原始事件数据便于后续分析查询;
当遇到结束活动任务的事件时,找到对应的工作流活动监控记录,根据事件内容填入工作流活动的信息,包括结束时间、执行时间。如果是活动成功结束事件,则成功设置为1,如果是失败事件,则失败设置为1,如果是超时事件,则超时设置为1;考虑到事件处理顺序的不确定性,如果活动任务记录不存在,则创建新的工作流活动记录,设置工作流ID、名称、版本、活动名称、所在机器、所属账户和运行区域等;
信号量指标:工作流信号量的监控指标主要记录单个工作流信号量的运行情况,包括工作流ID、工作流名称、版本、信号量名称、是否启动、是否结束、执行时间、开始时间、结束时间、所属账户、运行区域、机器IP等。在某些情况下,信号量事件的处理过程可以与活动指标的处理过程合并,但需要在活动类型上加以区分。具体生成的过程下:
当遇到触发信号量的事件时,如果没有发现相同ID的监控记录,则创建一条新的记录,填入工作流ID、工作流名称、版本、信号量名称、启动设置为1,结束设置为0,等待时间设置为0,开始时间设置为事件时间,结束时间设置为0,根据事件中的机器IP查找到对应的账户与部署区域,并填入监控记录;考虑到事件处理顺序的不确定性,如果已经存在相同工作流信号量ID的记录,则根据事件设置工作流的属性,包括活动是否启动、开始时间等;
当遇到结束信号量的事件时,找到对应的工作流信号量监控记录,根据事件内容填入工作流信号量的信息,包括结束时间、等待时间和结束指标。考虑到事件处理顺序的不确定性,如果信号量记录不存在,则创建新的信号量记录,设置工作流ID、名称、版本、信号量名称、所在机器、所属账户和运行区域等;
人工任务指标:工作流人工任务的监控指标主要记录单个工作流人工任务的运行情况,包括工作流ID、工作流名称、版本、人工任务名称、是否启动、是否成功、是否失败、是否超时、执行时间、开始时间、结束时间、所属账户、运行区域、机器IP等。在某些情况下,人工任务的处理过程可以与活动指标的处理过程合并,但需要在任务类型上加以区分。具体生成的过程下:
当遇到启动人工任务的事件时,如果没有发现相同ID的人工任务监控记录,则创建一条新的记录,填入工作流ID、工作流名称、版本、人工名称、启动设置为1,成功设置为0,失败设置为0,超时设置为0,执行时间设置为0,开始时间设置为事件时间,结束时间设置为0,根据事件中的机器IP查找到对应的账户与部署区域,并填入人工任务监控记录;考虑到事件处理顺序的不确定性,如果已经存在相同工作流人工任务ID的记录,则根据事件设置工作流的属性,包括任务是否启动、开始时间等;
当遇到结束人工任务的事件时,找到对应的工作流人工任务监控记录,根据事件内容填入工作流活动的信息,包括结束时间、执行时间。如果是任务成功结束事件,则成功设置为1,如果是失败事件,则失败设置为1,如果是超时事件,则超时设置为1;考虑到事件处理顺序的不确定性,如果人工任务记录不存在,则创建新的工作流人工任务记录,设置工作流ID、名称、版本、活动名称、所在机器、所属账户和运行区域等。
本申请监控工作流的设备一优选的实施例中,所述维度包括工作流实例类型、子流程实例类型、活动任务类型、信号量类型、人工任务类型、工作流时间区间、部署区域、工作流名称和调用时间中的一种或任意组合。具体的,计算工作流的汇总监控指标时,可将单个的原始的工作流监控指标根据不同的计算维度聚合成为汇总的指标,对工作流的监控指标分析主要包含多个不同的维度即查询条件:工作流实例类型、子流程实例类型、活动任务类型、信号量类型、人工任务类型、工作流时间区间和部署区域等,从而便于后续根据不同的维度查询对应的汇总监控指标,从而实现高效地针对不同的维度来查看对应的汇总监控指标。
本申请监控工作流的设备一优选的实施例中,所述汇总监控指标包括数量指标、运行时间指标、调度时间指标和可靠性指标中一种或任意组合从而便于后续查询不同分析角度的汇总监控指标,实现高效地针对不同的查询条件得到不同分析角度来查看对应的汇总监控指标,即查询结果。具体的,可提供不同维度的工作流监控指标查询,查询的维度包括工作流类型、调用时间和运行区域等;查询的指标包括工作流数量指标、运行时间指标和可靠性指标等。
本申请监控工作流的设备一优选的实施例中,所述数量指标包括工作流总数量、成功数量、失败数量和超时数量中的一种或任意组合,具体的,所述数量指标包括工作流实例、活动任务、信号量和人工任务的数量指标、运行时间指标和可靠性指标,从而便于后续查询数量指标中不同分析角度的汇总监控指标,从而实现高效地针对数量指标中不同的分析角度来查看对应的汇总监控指标。
本申请监控工作流的设备一优选的实施例中,所述运行时间指标包括平均执行时间、最大执行时间、最小执行时间和百分位执行时间指标中的一种或任意组合,从而便于后续查询运行时间指标中不同分析角度的汇总监控指标,从而实现高效地针对运行时间指标中不同的分析角度来查看对应的汇总监控指标。具体的,所述平均执行时间、最大执行时间、最小执行时间和百分位执行时间指标可基于工作流的结束时间与启动时间的差值得到,百分位执行时间指标如90%工作流最大的执行时间。
本申请监控工作流的设备一优选的实施例中,所述调度时间指标包括平均调度时间、最大调度时间、最小调度时间和百分位调度时间指标中的一种或任意组合,从而便于后续查询调度时间指标中不同分析角度的汇总监控指标,实现高效地针对调度时间指标中不同的分析角度来查看对应的汇总监控指标。具体的,平均调度时间、最大调度时间、最小调度时间和百分位调度时间指标可基于调度时间和启动时间的差值得到,另外,百分位调度时间如90%工作流最大的调度时间。
本申请监控工作流的设备一优选的实施例中,所述可靠性指标包括成功率指标和失败率指标中的一种或任意组合。具体的,所述可靠性指标包括工作流的成功率指标、失败率指标等,从而便于后续查询可靠性指标中不同分析角度的汇总监控指标,实现高效地针对可靠性指标中不同的分析角度来查看对应的汇总监控指标。
如图5所示的分布式工作流监控的模块图,本申请一具体的应用实例中包括工作流引擎11,工作流采集模块12,工作流事件分析模块13、工作流监控数据存储模块14和工作流监控指标查询服务模块15,其中,
工作流引擎11,主要负责管理工作流的生命周期,如启动新的工作流实例、开始活动执行、当遇到信号量时暂停工作流、结束活动执行、结束工作流等,在每一个操作执行时,工作流引擎都会记录相应的事件日志,后期会基于这些日志来分析工作流的运行指标;工作流日志的具体表现形式可以是日志文件、日志消息或者各种类型的数据库存储;
工作流日志采集模块12,会从工作流引擎所在的节点拉取工作流的日志,并放到统一的地方存储,工作流日志采集模块可以与工作流引擎在同一部署区域,也可以位于不同的部署区域;
工作流事件分析模块13,主要负责将工作流日志采集模块收集的工作流事件指标转化为实例指标,实例指标分为两类:原始实例指标和汇总实例指标,原始实例指标是单个工作流实例或单个工作流活动会对应与一条原始指标,原始实例指标包括工作流实例指标、活动实例指标、信号量指标和人工任务指标;汇总实例指标则是根据某些预先设定的维度计算的工作流汇总指标,如某个时间段内各个部署区域工作流的启动总数、成功总数、失败总数和超时总数等;
工作流监控数据存储模块14,用于保存所有收集的工作流监控数据,具体存储的方式可以使用Key-value数据库,或者直接使用日志文件,这样可以解决关系型数据库无法存储海量数据的问题;
工作流监控指标查询服务模块15,提供了基于多个维度来查询工作流运行情况的功能,包括数量指标、运行时间指标和可靠性指标等。
综上所述,本申请通过记录工作流执行的原始事件数据,而不是通过查询工作流的数据库,使用工作流来解决系统链路跟踪的问题,进而将属于同一工作流的原始事件数据聚合成该工作流的监控指标,然后按不同的维度将所述工作流的监控指标聚合成对应的汇总监控指标,解决在多个部署区域的环境下,跨机房服务调用延迟、数据存储、多维度数据分析的问题,能够很好地支持海量工作流调用,同时能够适应灵活的工作流部署结构,实现在大规模分布式环境下,高效监控海量工作流的运行情况。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (16)
1.一种监控工作流的方法,其中,该方法包括:
记录工作流执行的原始事件数据;
将属于同一工作流的原始事件数据聚合成该工作流的监控指标;
按不同的维度将所述工作流的监控指标聚合成对应的汇总监控指标;
其中,所述工作流的类型包括工作流实例、子流程实例、活动任务、信号量和人工任务中的一种或任意组合;
其中,所述工作流实例的事件类型包括启动工作流实例和结束工作流实例,所述子流程实例的类型包括启动子流程实例和结束子流程实例,所述活动任务的事件类型包括启动新的活动任务和结束活动任务,所述信号量的事件类型包括触发信号量和结束信号量,所述人工任务的事件类型包括启动人工任务和结束人工任务。
2.根据权利要求1所述的方法,其中,按不同的维度将所述工作流的监控指标聚合成对应的汇总监控指标之后,还包括:
根据不同的维度查询对应的汇总监控指标。
3.根据权利要求1所述的方法,其中,所述维度包括工作流实例类型、子流程实例类型、活动任务类型、信号量类型、人工任务类型、工作流时间区间、部署区域、工作流名称和调用时间中的一种或任意组合。
4.根据权利要求1至3任一项所述的方法,其中,所述汇总监控指标包括数量指标、运行时间指标、调度时间指标和可靠性指标中一种或任意组合。
5.根据权利要求4所述的方法,其中,所述数量指标包括工作流总数量、成功数量、失败数量和超时数量中的一种或任意组合。
6.根据权利要求4所述的方法,其中,所述运行时间指标包括平均执行时间、最大执行时间、最小执行时间和百分位执行时间指标中的一种或任意组合。
7.根据权利要求4所述的方法,其中,所述调度时间指标包括平均调度时间、最大调度时间、最小调度时间和百分位调度时间指标中的一种或任意组合。
8.根据权利要求4所述的方法,其中,所述可靠性指标包括成功率指标和失败率指标中的一种或任意组合。
9.一种监控工作流的设备,其中,该设备包括:
记录装置,用于记录工作流执行的原始事件数据;
聚合装置,用于将属于同一工作流的原始事件数据聚合成该工作流的监控指标;
汇总装置,用于按不同的维度将所述工作流的监控指标聚合成对应的汇总监控指标;
其中,所述工作流的类型包括工作流实例、子流程实例、活动任务、信号量和人工任务中的一种或任意组合;
其中,所述工作流实例的事件类型包括启动工作流实例和结束工作流实例,所述子流程实例的类型包括启动子流程实例和结束子流程实例,所述活动任务的事件类型包括启动新的活动任务和结束活动任务,所述信号量的事件类型包括触发信号量和结束信号量,所述人工任务的事件类型包括启动人工任务和结束人工任务。
10.根据权利要求9所述的设备,其中,所述设备还包括查询装置,用于根据不同的维度查询对应的汇总监控指标。
11.根据权利要求9所述的设备,其中,所述维度包括工作流实例类型、子流程实例类型、活动任务类型、信号量类型、人工任务类型、工作流时间区间、部署区域、工作流名称和调用时间中的一种或任意组合。
12.根据权利要求9至11任一项所述的设备,其中,所述汇总监控指标包括数量指标、运行时间指标、调度时间指标和可靠性指标中一种或任意组合。
13.根据权利要求12所述的设备,其中,所述数量指标包括工作流总数量、成功数量、失败数量和超时数量中的一种或任意组合。
14.根据权利要求12所述的设备,其中,所述运行时间指标包括平均执行时间、最大执行时间、最小执行时间和百分位执行时间指标中的一种或任意组合。
15.根据权利要求12所述的设备,其中,所述调度时间指标包括平均调度时间、最大调度时间、最小调度时间和百分位调度时间指标中的一种或任意组合。
16.根据权利要求12所述的设备,其中,所述可靠性指标包括成功率指标和失败率指标中的一种或任意组合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610423078.3A CN107515864B (zh) | 2016-06-15 | 2016-06-15 | 监控工作流的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610423078.3A CN107515864B (zh) | 2016-06-15 | 2016-06-15 | 监控工作流的方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107515864A CN107515864A (zh) | 2017-12-26 |
CN107515864B true CN107515864B (zh) | 2021-06-22 |
Family
ID=60719991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610423078.3A Active CN107515864B (zh) | 2016-06-15 | 2016-06-15 | 监控工作流的方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107515864B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694561A (zh) * | 2018-05-21 | 2018-10-23 | 平安科技(深圳)有限公司 | 工作流管理方法、系统、计算机设备和存储介质 |
CN110611715B (zh) * | 2019-09-23 | 2023-11-28 | 国云科技股份有限公司 | 一种服务链路集合云监控信息的系统和方法 |
CN112015656B (zh) * | 2020-09-01 | 2023-08-15 | 中国银行股份有限公司 | 一种工作流设计器的可视化调试方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1959724A (zh) * | 2006-11-24 | 2007-05-09 | 清华大学 | 泛在计算环境中工作流上下文信息的获取方法和系统 |
CN102254246A (zh) * | 2011-06-17 | 2011-11-23 | 中国建设银行股份有限公司 | 一种工作流管理方法及其系统 |
CN102521723A (zh) * | 2011-12-02 | 2012-06-27 | 浙江大学 | 一种基于射频识别技术的离散车间物流信息在线获取方法 |
CN103425462A (zh) * | 2012-05-14 | 2013-12-04 | 阿里巴巴集团控股有限公司 | 一种工作流数据持久化的方法和装置 |
CN103458033A (zh) * | 2013-09-04 | 2013-12-18 | 北京邮电大学 | 事件驱动、面向服务的物联网服务提供系统及其工作方法 |
CN104917802A (zh) * | 2014-03-12 | 2015-09-16 | 国家电网公司 | 一种多传感器数据源的处理方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140257845A9 (en) * | 2008-08-05 | 2014-09-11 | Vasu Rangadass | Operating System |
US9563663B2 (en) * | 2012-09-28 | 2017-02-07 | Oracle International Corporation | Fast path evaluation of Boolean predicates |
CN103177333A (zh) * | 2013-02-22 | 2013-06-26 | 中国人民解放军91655部队 | 一种基于工作流的网络报警执勤管理方法 |
-
2016
- 2016-06-15 CN CN201610423078.3A patent/CN107515864B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1959724A (zh) * | 2006-11-24 | 2007-05-09 | 清华大学 | 泛在计算环境中工作流上下文信息的获取方法和系统 |
CN102254246A (zh) * | 2011-06-17 | 2011-11-23 | 中国建设银行股份有限公司 | 一种工作流管理方法及其系统 |
CN102521723A (zh) * | 2011-12-02 | 2012-06-27 | 浙江大学 | 一种基于射频识别技术的离散车间物流信息在线获取方法 |
CN103425462A (zh) * | 2012-05-14 | 2013-12-04 | 阿里巴巴集团控股有限公司 | 一种工作流数据持久化的方法和装置 |
CN103458033A (zh) * | 2013-09-04 | 2013-12-18 | 北京邮电大学 | 事件驱动、面向服务的物联网服务提供系统及其工作方法 |
CN104917802A (zh) * | 2014-03-12 | 2015-09-16 | 国家电网公司 | 一种多传感器数据源的处理方法和装置 |
Non-Patent Citations (1)
Title |
---|
运维系统工作流引擎的设计与实现;孙静;《电子科技》;20140115;第134-138页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107515864A (zh) | 2017-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106656536B (zh) | 一种用于处理服务调用信息的方法与设备 | |
CN107145489B (zh) | 一种基于云平台的客户端应用的信息统计方法和装置 | |
US7509343B1 (en) | System and method of collecting and reporting system performance metrics | |
CN109857613B (zh) | 一种基于采集集群的自动化运维系统 | |
Mayer et al. | An approach to extract the architecture of microservice-based software systems | |
US8028200B2 (en) | Tracing operations in multiple computer systems | |
CN107515874B (zh) | 一种分布式非关系型数据库中同步增量数据的方法与设备 | |
CN112612675A (zh) | 微服务架构下的分布式大数据日志链路跟踪方法及系统 | |
US8037458B2 (en) | Method and system for providing a common structure for trace data | |
US10116534B2 (en) | Systems and methods for WebSphere MQ performance metrics analysis | |
CN102567185B (zh) | 一种应用服务器的监控方法 | |
US20080155350A1 (en) | Enabling tracing operations in clusters of servers | |
US11322013B2 (en) | Monitoring method of MES, monitoring device, and readable storage medium | |
EP3384391B1 (en) | Real-time change data from disparate sources | |
US9471459B2 (en) | Information acquisition method and information acquisition apparatus | |
CN107515864B (zh) | 监控工作流的方法及设备 | |
CN110147470B (zh) | 一种跨机房数据比对系统及方法 | |
US9600523B2 (en) | Efficient data collection mechanism in middleware runtime environment | |
KR20150118963A (ko) | 큐 모니터링 및 시각화 | |
WO2017020725A1 (zh) | 一种数据检测方法及装置 | |
CN112115012A (zh) | 分布式数据库的事务监控方法及装置、系统、存储介质 | |
CN110636116B (zh) | 一种多维数据采集的系统及方法 | |
CN108228432A (zh) | 一种分布式链路跟踪、分析方法及服务器、全局调度器 | |
CN112579552A (zh) | 日志存储及调用方法、装置及系统 | |
US20110238781A1 (en) | Automated transfer of bulk data including workload management operating statistics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |