DAG图的监控方法及系统技术方案

技术编号:35112368 阅读:29 留言:0更新日期:2022-10-01 17:27
本申请涉及一种DAG图的监控方法系统,通过定义叶子节点,不但对叶子节点进行监控,而且对与叶子节点在DAG图中存在关联的所有上游节点进行同步监控,实现对DAG图整体的监控,而不是对单一节点的监控,提高了待监控节点出现异常情况时告警的精准性,因此本申请是从DAG图整体的角度对配置的各个待监控节点进行监控,解决了当下无效告警和配置告警工作量大的问题。问题。问题。

【技术实现步骤摘要】
DAG图的监控方法及系统


[0001]本申请涉及大数据处理
,特别是涉及一种DAG图的监控方法及系统。

技术介绍

[0002]DAG(Directed Acyclic Graph)图的中文名称叫做有向无环图。DAG图是一种非常重要的图论数据结构。如果一个有向图无法从任意顶点出发经过若干条边回到该点,则这个图就被称为有向无环图。
[0003]在大数据处理的技术数据处理过程中,DAG计算常常指的是将计算任务在内部分解成为若干个子任务,将这些子任务之间的逻辑关系或顺序构建成DAG图中所展现出的结构关系。
[0004]DAG图在分布式计算中是非常常见的,经常被应用于各个细分领域,比如Dryad,Flumejava和Tez,都是明确构建DAG计算模型的典型,再比如如流式计算的Storm等系统或机器学习框架Spark等,其计算任务大多也是DAG图的形式出现的。
[0005]那么在大数据处理的技术数据处理过程中,对DAG图的监控工作就显得至关重要。现有的DAG图的监控方法,一般是监控DAG图中的各个节点。这种方法具有两个主要的弊端:1)会产生很多无效告警,不但会提高监控成本,而且会导致监控结果准确率下降。这是因为DAG中每一个节点的运行时间是不确定的,针对不同的节点而言,数据产出的时间要求也不一样。例如a、b、c三个节点的依赖关系为a(13时运行)

b(15时运行)

c(17时运行), 如果a的数据产出到达了16时导致b节点16时运行,这时候如果监控任务,就会进行告警,但是如果b能够在17时产出数据,这样的话其实DAG图局部有延迟。但是整体无延迟,这样是不需要人工进行干预的,所以这种告警属于无效告警。
[0006]2)当DAG图节点数量较多时,监控效率较低。如果DAG图节点数量超过一定数量,相关工作人员就必须对每一个节点专门配置告警程序,在配置告警程序的过程中容易出错,浪费大量时间。

技术实现思路

[0007]基于此,有必要针对传统DAG图的监控方法监控成本高,监控结果准确率低且监控效率低的问题,提供一种DAG图的监控方法。
[0008]本申请提供一种DAG图的监控方法,所述方法包括:服务器获取客户端发送的监控配置文件和监控规则文件;服务器依据监控配置文件和监控规则文件生成至少一个监控规则实例并存储至数据库;服务器扫描数据库中前一天生成的至少一个监控规则实例,并依据所述至少一个监控规则实例监控DAG图的运行状态,在DAG图的运行状态异常时实时告警;所述服务器依据监控规则文件和监控规则文件生成至少一个监控规则实例并存储至数据库包括:
服务器依据所述监控配置文件获取叶子节点,以及获取与叶子节点在DAG图中存在关联的所有上游节点;服务器依据所述监控配置文件计算叶子节点的监控指标和每一个与叶子节点在DAG图中存在关联的上游节点的监控指标;所述服务器扫描数据库中前一天生成的至少一个监控规则实例,并依据所述至少一个监控规则实例监控DAG图的运行状态,在DAG图的运行状态异常时实时告警,包括:服务器将与每一个监控规则实例对应的节点作为待监控节点,当待监控节点为叶子节点时,依据叶子节点的监控指标对叶子节点进行监控,当待监控节点为与叶子节点在DAG图中存在关联的上游节点时,服务器依据与叶子节点在DAG图中存在关联的上游节点的监控指标对与叶子节点在DAG图中存在关联的上游节点进行监控,当任意一个待监控节点出现异常情况时对异常情况进行实时告警。
[0009]本申请还提供一种DAG图的监控系统,包括:至少一个客户端;服务器,与每一个客户端通信连接,所述服务器用于执行前述如前述内容提及的DAG图的监控方法。
[0010]本申请涉及一种DAG图的监控方法系统,通过定义叶子节点,不但对叶子节点进行监控,而且对与叶子节点在DAG图中存在关联的所有上游节点进行同步监控,实现对DAG图整体的监控,而不是对单一节点的监控,提高了待监控节点出现异常情况时告警的精准性,因此本申请是从DAG图整体的角度对配置的各个待监控节点进行监控,解决了当下无效告警和配置告警工作量大的问题。
附图说明
[0011]图1为本申请一实施例提供的DAG图的监控方法的流程示意图。
[0012]图2为本申请一实施例提供的DAG图的监控方法的流程示意图。
[0013]图3为本申请一实施例提供的DAG图的监控系统的结构示意图。
[0014]图4为本申请一种提供的DAG图的监控方法中一种实施例下的DAG图。
[0015]图5为本申请一种提供的DAG图的监控方法中栈一的内部显示情况示意图。
[0016]图6为本申请一种提供的DAG图的监控方法中栈二的内部显示情况示意图。
具体实施方式
[0017]为了使本申请的目的.技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0018]本申请提供一种DAG图的监控方法。需要说明的是,本申请提供的DAG图的监控方法应用于任何类型的DAG图。
[0019]此外,本申请提供的DAG图的监控方法不限制其执行主体。可选地,本申请提供的DAG图的监控方法的执行主体可以为一种DAG图的监控系统。具体地,本申请提供的DAG图的监控方法的执行主体可以为所述DAG图的监控系统中的服务器。
[0020]如图1和图2所示,在本申请的一实施例中,DAG图的监控方法包括:
S100,服务器获取客户端发送的监控配置文件和监控规则文件。
[0021]具体地,监控配置文件包括需要监控的各个节点的监控指标。监控规则文件包括当节点出现异常时报警的具体方式。
[0022]S200,服务器依据监控配置文件和监控规则文件生成至少一个监控规则实例并存储至数据库。
[0023]具体地,每一个监控规则实例对应唯一的DAG图中的一个节点。
[0024]S300,服务器扫描数据库中前一天生成的至少一个监控规则实例,并依据所述至少一个监控规则实例监控DAG图的运行状态,在DAG图的运行状态异常时实时告警。
[0025]具体地,通过执行S100至S200生成的至少一个监控规则实例,用于后一天的监控工作,因此当天的监控工作应用的是前一天生成的至少一个监控规则实例。
[0026]例如,在2022年8月24日生成的所有监控规则实例,在2022年8月25日的监控工作中应用,可选地,S100至S200和S300是异步运行的,即可以同时运行,互不干扰。
[0027]例如,服务器在2022年8月24日0时至24时全天执行S300监控DAG图的运行状态,在2022年8月24日的11时至12时执行S100至S200生成至少一个监控规则实例,这些监控规则实例用于2022年8月25日监控工作。
[0028]所述S200包括:S210,服务器依据所述监控配置文件获取叶子节点,以及获取与叶本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种DAG图的监控方法,其特征在于,所述方法包括:服务器获取客户端发送的监控配置文件和监控规则文件;服务器依据监控配置文件和监控规则文件生成至少一个监控规则实例并存储至数据库;服务器扫描数据库中前一天生成的至少一个监控规则实例,并依据所述至少一个监控规则实例监控DAG图的运行状态,在DAG图的运行状态异常时实时告警;所述服务器依据监控规则文件和监控规则文件生成至少一个监控规则实例并存储至数据库包括:服务器依据所述监控配置文件获取叶子节点,以及获取与叶子节点在DAG图中存在关联的所有上游节点;服务器依据所述监控配置文件计算叶子节点的监控指标和每一个与叶子节点在DAG图中存在关联的上游节点的监控指标;所述服务器扫描数据库中前一天生成的至少一个监控规则实例,并依据所述至少一个监控规则实例监控DAG图的运行状态,在DAG图的运行状态异常时实时告警,包括:服务器将与每一个监控规则实例对应的节点作为待监控节点,当待监控节点为叶子节点时,依据叶子节点的监控指标对叶子节点进行监控,当待监控节点为与叶子节点在DAG图中存在关联的上游节点时,服务器依据与叶子节点在DAG图中存在关联的上游节点的监控指标对与叶子节点在DAG图中存在关联的上游节点进行监控,当任意一个待监控节点出现异常情况时对异常情况进行实时告警。2.根据权利要求1所述的DAG图的监控方法,其特征在于,所述监控配置文件包括每一个节点的承诺时间、每一个节点的预计运行时长和每一个节点的时间余量中的一种或多种;所述时间余量为节点接收数据的最大延迟时间。3.根据权利要求1所述的DAG图的监控方法,其特征在于,所述监控规则文件包括告警名称、告警类型、节点ID、告警触发方式、告警消息发送方式和告警消息接收人信息中的一种或多种。4.根据权利要求2所述的DAG图的监控方法,其特征在于,所述服务器依据所述监控配置文件计算叶子节点的监控指标和每一个与叶子节点在DAG图中存在关联的上游节点的监控指标,包括:获取叶子节点的所有直接上游节点;获取叶子节点的计划开始时间;采用堆栈法计算叶子节点的每一个直接上游节点的预计结束时间;依据公式1计算叶子节点的预计开始时间;Ti_predict_start=Max(Ti_plan,Ti_i1_end,Ti_i2_end,...,Ti_im_end)公式1;其中,Ti_predict_start为叶子节点的预计开始时间,Ti_plan为叶子节点的计划开始时间,Ti_im_end为叶子节点的直接上游节点的预计结束时间,i为叶子节点的序号,im为叶子节点的直接上游节点的序号;依据公式2计算叶子节点的预计结束时间;Ti_predict_end=Ti_predict_start+Ti_time公式2;其中,Ti_predict_end为叶子节点的预计结束时间,Ti_predict_start 为叶子节点的
预计开始时间,Ti_time为叶子节点的预计运行时长,i为叶子节点的序号。5.根据权利要求4所述的DAG图的监控方法,其特征在于,所述采用堆栈法计算叶子节点的每一个直接上游节点的预计结束时间,包括:在DAG图中遍历叶子节点的每一个直接上游节点的所有上游节点,获取叶子节点的每一个直接上游节点的所有上游节点中的最上游节点,从最上游节点开始依照由上至下的顺序采用堆栈方法计算该直接上游节点的预计开始时间;依据公式3计算叶子节点的每一个直接上游节点的预计结束时间;Tim_predict_end=Tim_predict_start+Tim_time公式3;其中,Tim_predict_start叶子节点i的直接上游节点im的预计结束时间,Tim_predict_start为叶子节点i的直接上游节点im的预计开始时间,Tim_time为叶子节点i的直接上游节点im的预计运行时长,im为叶子节点i的直接上游节点的序号,i为叶子节点的序号。6.根据权利要求5所述的DAG图的监控方法,其特征在于,所述服务器依据监控配置文件计算叶子节点的监控指标和每一个与叶子节点在DAG图中存在关联的上游节点的监控指标,还包括:依据公式4计算叶子节点的预警结束时间和预警开始时间;Ti_warning_end=Ti_C+Ti_allowanceTi_warning_start=Ti_warning_end

Ti_time公式4;其中,Ti_warning_start为叶子节点的预警开始时间,Ti_warning_end为监控节点的预警结束时间,Ti_time为叶子节点的预计运行时长,Ti_C为叶子节点的承诺时间,Ti_allowance为叶子节点的时间余量,i为叶子节点的序号;依据公式5计算叶子节点的破线...

【专利技术属性】
技术研发人员:赵振智陈吉平
申请(专利权)人:杭州玳数科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1