一种根因任务的检测方法、装置、电子设备和存储介质与流程

文档序号:31689565发布日期:2022-09-30 22:27阅读:28来源:国知局
一种根因任务的检测方法、装置、电子设备和存储介质与流程

1.本技术涉及计算机技术领域,提供一种根因任务的检测方法、装置、电子设备和存储介质。


背景技术:

2.随着互联网技术的广泛应用,在大数据场景下,离线计算任务呈几何式增长。相关技术下,对一个离线计算任务进行监控的过程中,当监控到任务超时或任务失败时,会针对监控的离线计算任务进行任务异常通知,以便于及时进行异常处理。
3.但是,大部分的离线计算任务都有前序依赖任务,前序依赖任务也可以称为上游任务,相应的,前序依赖任务对应的后续离线计算任务也可以称为下游任务,当上游任务完成后,才会执行相应的下游任务。
4.那么,当下游任务发生异常时,难以确定发生异常的上游任务,从而无法确定导致下游任务发生异常的根因任务,进而导致无法及时进行异常处理。尤其是在任务之间的依赖关系复杂的情况下,当一个下游任务依赖的多个上游任务发生异常,导致该下游任务发生异常时,更加难以确定根因任务,此时,若无法及时进行异常处理,甚至会导致系统瘫痪。


技术实现要素:

5.本技术实施例提供一种根因任务的检测方法、装置、电子设备和存储介质,用以解决在下游任务发生异常时难以确定根因任务的问题。
6.第一方面,本技术实施例提供一种根因任务的检测方法,包括:
7.响应于在操作界面中输入的触发操作,获取目标任务的目标标识,并基于所述目标标识,从目标业务包含的各个任务中,确定所述目标任务;
8.根据预设的依赖关系,从所述各个任务中,确定所述目标任务依赖的各个上游任务,其中,所述依赖关系用于表征所述各个任务之间的执行顺序;
9.在所述目标业务的处理过程中,若检测到所述目标任务发生异常,则获取所述各个上游任务各自对应的运行状态检测信息,并根据获得的各个运行状态检测信息,从所述各个上游任务中,至少筛选出运行时长异常的上游任务,获得至少一个异常上游任务;
10.基于所述依赖关系以及所述至少一个异常上游任务,确定至少一个根因任务。
11.第二方面,本技术实施例提供一种根因任务的检测装置,包括:
12.响应单元,用于响应于在操作界面中输入的触发操作,获取目标任务的目标标识,并基于所述目标标识,从目标业务包含的各个任务中,确定所述目标任务;
13.依赖确定单元,用于根据预设的依赖关系,从所述各个任务中,确定所述目标任务依赖的各个上游任务,其中,所述依赖关系用于表征所述各个任务之间的执行顺序;
14.检测单元,用于在所述目标业务的处理过程中,若检测到所述目标任务发生异常,则获取所述各个上游任务各自对应的运行状态检测信息,并根据获得的各个运行状态检测信息,从所述各个上游任务中,至少筛选出运行时长异常的上游任务,获得至少一个异常上
游任务;
15.根因确定单元,用于基于所述依赖关系以及所述至少一个异常上游任务,确定至少一个根因任务。
16.可选的,所述检测到所述目标任务发生异常时,检测单元具体用于:
17.对所述目标任务的任务状态进行检测;
18.若检测到所述目标任务的任务状态为任务失败,则确定所述目标任务发生异常;
19.若检测到所述目标任务的任务状态为任务运行中,则将所述目标任务的实际运行时长,与针对所述目标任务预设的第一目标运行时长进行比较,并根据运行时长比较结果,确定所述目标任务发生异常;
20.若检测到所述目标任务的任务状态为任务未运行,则将所述目标任务的实际延迟时长,与针对所述目标任务预设的第一目标延迟时长进行比较,并根据延迟时长比较结果,确定所述目标任务发生异常。
21.可选的,所述根据运行时长比较结果,确定所述目标任务发生异常时,检测单元具体用于:
22.若根据所述运行时长比较结果,确定所述目标任务的实际运行时长,大于所述第一目标运行时长,则确定所述目标任务发生异常;
23.若根据所述运行时长比较结果,确定所述目标任务的实际运行时长,大于所述第一目标运行时长与针对所述目标任务预设的第一运行误差之和,则确定所述目标任务发生异常。
24.可选的,所述根据延迟时长比较结果,确定所述目标任务发生异常时,检测单元具体用于:
25.若根据所述延迟时长比较结果,确定所述目标任务的实际延迟时长,大于所述第一目标延迟时长,则确定所述目标任务发生异常;
26.若根据所述延迟时长比较结果,确定所述目标任务的实际延迟时长,大于所述第一目标延迟时长与针对所述目标任务预设的第一延迟误差之和,则确定所述目标任务发生异常。
27.可选的,所述检测到所述目标任务发生异常时,检测单元具体用于:
28.对所述目标任务的任务状态进行检测;
29.若检测到所述目标任务的任务状态为任务运行中或任务未运行,则在确定所述目标任务的当前运行时刻晚于预设的目标结束时刻时,确定所述目标任务发生异常,其中,所述目标结束时刻是根据针对所述目标任务预设的第一目标运行时长和第一目标延迟时长确定的。
30.可选的,在所述确定所述目标任务之后,在所述对所述目标任务的任务状态进行检测之前,检测单元还用于:
31.获取所述目标任务在预设历史时间范围内的历史运行时长集合,其中,每个历史运行时长对应于所述目标任务的一次历史执行过程;
32.基于所述历史运行时长集合,确定所述目标任务的第一目标运行时长。
33.可选的,所述基于所述历史运行时长集合,获得所述目标任务的第一目标运行时长时,检测单元具体用于:
34.将所述历史运行时长集合,输入已训练的时长预测模型中,获得所述目标任务的第一目标运行时长;或者,
35.计算所述历史运行时长集合中包含的各个历史运行时长的平均值,作为所述目标任务的第一目标运行时长。
36.可选的,每个上游任务的运行状态检测信息中至少包含相应的上游任务的实际运行时长;
37.则所述根据获得的各个运行状态检测信息,从所述各个上游任务中,筛选出运行时长异常的上游任务,获得至少一个异常上游任务时,检测单元具体用于:
38.若所述各个上游任务中的一个上游任务的实际运行时长,大于针对所述一个上游任务预设的第二目标运行时长,则将所述一个上游任务确定为一个异常上游任务;或者,
39.若所述各个上游任务中的一个上游任务的实际运行时长,大于针对所述一个上游任务预设的第二目标运行时长和第二运行误差之和,则将所述一个上游任务确定为一个异常上游任务。
40.可选的,所述基于所述依赖关系以及所述至少一个异常上游任务,确定至少一个根因任务之后,根因确定单元还用于:
41.基于所述依赖关系,分别确定从所述至少一个根因任务至所述目标任务的各个执行路径;
42.基于针对所述各个上游任务分别预设的第二目标运行时长和第二目标延迟时长,确定所述各个执行路径各自对应的执行时间;其中,每个执行路径的执行时间用于表征相应的执行路径中包含的上游任务的第二目标运行时长和第二目标延迟时长之和;
43.基于得到的各个执行时间,得到所述目标任务的预测恢复时长。
44.可选的,所述根据预设的依赖关系,从所述各个任务中,确定所述目标任务依赖的各个上游任务时,依赖确定单元还用于:
45.基于所述各个上游任务,从所述依赖关系中,提取从所述各个上游任务至所述目标任务的执行顺序,作为所述目标任务的子依赖关系;
46.则所述基于所述依赖关系以及所述至少一个异常上游任务,确定至少一个根因任务时,根因确定单元具体用于:
47.基于所述子依赖关系以及所述至少一个异常上游任务,确定所述至少一个根因任务。
48.可选的,所述基于所述依赖关系以及所述至少一个异常上游任务,确定至少一个根因任务时,根因确定单元具体用于:
49.若基于所述依赖关系,确定所述至少一个异常上游任务中的一个异常上游任务,不依赖于其他异常上游任务,则将所述一个异常上游任务确定为一个根因任务。
50.可选的,在所述目标业务的处理过程中,检测单元还用于:
51.对所述各个上游任务进行检测;
52.若检测到所述各个上游任务中的一个上游任务发生异常,则记录所述一个上游任务的标识;
53.基于记录的各个上游任务的标识,确定相应的根因任务。
54.第三方面,本技术实施例提供一种电子设备,包括处理器和存储器,其中,所述存
储器存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行上述根因任务的检测方法的步骤。
55.第四方面,本技术实施例提供一种计算机可读存储介质,其包括计算机程序,当所述计算机程序在电子设备上运行时,所述计算机程序用于使所述电子设备执行上述根因任务的检测方法的步骤。
56.本技术实施例中,根据预设的依赖关系,确定目标任务依赖的各个上游任务,若检测到目标任务发生异常,则根据各个上游任务各自对应的运行状态检测信息,从各个上游任务中,至少筛选出运行时长异常的上游任务,获得异常上游任务,进而基于依赖关系以及异常上游任务,确定根因任务。
57.这样,当目标任务发生异常时,通过任务之间的依赖关系,可以快速确定目标任务依赖的上游任务,减少了异常排查时间,从而实现快速告警异常任务源头,进而保障了目标任务的运行。此外,无论是任务状态为任务运行中的上游任务,还是任务状态为任务成功的上游任务,若运行时长异常,均作为异常上游任务,从而提高了检测准确率。
58.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
59.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
60.图1a为本技术实施例中提供的一种任务的运行流程示意图;
61.图1b为本技术实施例中提供的一种应用场景的示意图;
62.图2为本技术实施例中提供的一种根因任务的检测方法的流程示意图;
63.图3为本技术实施例中提供的一种操作界面的示意图;
64.图4a为本技术实施例中提供的一种依赖关系的示意图;
65.图4b为本技术实施例中提供的异常上游任务的示意图;
66.图5为本技术实施例中提供的一种第一目标运行时长的设定流程示意图;
67.图6a为本技术实施例中提供的一种子依赖关系的示意图;
68.图6b为本技术实施例中提供的另一种操作界面的示意图;
69.图7为本技术实施例中提供的一种基于根因任务确定目标任务的预测恢复时长的流程示意图;
70.图8为本技术实施例中提供的一种执行路径的示意图;
71.图9为本技术实施例中提供的一种告警信息的示意图;
72.图10为本技术实施例中提供的一种检测装置的组成结构示意图;
73.图11为本技术实施例中提供的一种计算装置的硬件组成结构示意图;
74.图12为本技术实施例中提供的一种终端设备的硬件组成结构示意图。
具体实施方式
75.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例
中的附图,对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术技术方案的一部分实施例,而不是全部的实施例。基于本技术文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术技术方案保护的范围。
76.下面对本技术实施例中涉及的部分概念进行介绍。
77.1、操作界面。本技术实施例中的操作界面用于实现人机交互,不同的操作界面用于向用户展示不同的内容,实现与用户的信息交互。示例性的,用户可以通过操作界面,输入目标任务的目标标识。
78.2、业务与目标业务。本技术实施例中的业务可以是指金融业务,例如,支付业务,也可以是指视频业务、电商业务等。目标业务是指进行根因任务的检测的业务。
79.本技术实施例中,每个业务可以由多个任务构成,例如,假设,业务1用于推送日销售额,业务1可以由任务1、任务2和任务3构成,其中,任务1用于计算销售总额,任务2用于计算交易设备数目,任务3用于计算日销售额。
80.3、任务和目标任务。本技术实施例中的任务是指离线计算任务,离线计算任务是指任务创建后不立即运行的任务。参阅图1a所示,本技术实施例中,每个任务需要经历创建-下发-运行的过程,以任务x为例,在创建任务x之后,按照预设延迟时长,下发任务x,然后,在检测到任务x的所有上游任务全部运行成功后,运行任务x。
81.需要说明的是,离线计算任务可以具有周期性,例如,分钟、小时、天、周、月等。
82.仍以任务x为例,假设,任务x为天周期任务,任务x在每天00:00创建,预设延迟时长为10分钟。那么,在00:00创建任务x,然后,在00:10分下发任务x,接着,在00:30分检测到任务x的上游任务全部运行成功,那么在00:30分开始运行任务x。
83.4、运行状态。参阅图1a所示,本技术实施中的运行状态包括任务未运行、任务运行中、任务成功、任务失败。
84.5、依赖关系和子依赖关系。本技术实施例中的依赖关系用于表征各个任务之间的执行顺序,也可以理解为各个任务的先后次序。本技术实施例中的子依赖关系用于表征从目标任务与相应的各个上游任务的之间的执行顺序。
85.6、上游任务和下游任务。本技术实施例中上游任务和下游任务是相对一个任务而言的。以任务x为例,任务x的上游任务用于表征任务x依赖的任务,任务x的下游任务用于表征依赖于任务x的任务。
86.例如,假设,任务a依赖于任务b,任务b依赖于任务c,那么,相对于任务a,任务b和任务c都是任务a的上游任务,相对于任务b,任务c是任务b的上游任务,任务a是任务b的下游任务,相对于任务c,任务a和任务b都是下游任务。
87.7、根因任务。本技术实施例中的根因任务用于表征导致目标任务发生异常的任务。
88.下文中所用的词语“示例性”的意思为“用作例子、实施例或说明性”。作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
89.文中的术语“第一”、“第二”仅用于描述目的,而不能理解为明示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本技术实施例的描述中,除非另有说明,“多个”的
含义是两个或两个以上。
90.以下结合说明书附图对本技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本技术,并不用于限定本技术,并且在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
91.下面首先对本技术实施例的设计思想进行介绍。
92.随着计算机技术的发展,在大数据场景下,离线计算任务呈几何式增长。相关技术下,对一个离线计算任务进行监控的过程中,即对目标任务进行监控的过程中,当监控到任务超时或任务失败时,会针对目标任务进行告警,以便于及时进行异常处理。
93.但是,由于任务之间存在复杂的依赖关系,因此,当目标任务发生异常时,难以确定发生异常的上游任务,从而无法确定导致目标任务发生异常的根因任务,进而导致无法及时进行异常处理。尤其是当多个上游任务发生异常,导致目标任务发生异常时,更加难以确定根因任务。
94.由于相关技术中难以在目标任务发生异常时确定根因任务,因此,本技术实施例中,在目标任务发生异常时,通过任务之间的依赖关系,确定目标任务依赖的各个上游任务,进而,从异常上游任务中,确定导致目标任务发生异常的根因任务。
95.这样,当目标任务发生异常时,通过任务之间的依赖关系,可以快速确定目标任务依赖的上游任务,减少了异常排查时间,从而实现快速告警异常任务源头,进而保障了目标任务的运行。此外,本技术实施例中,无论是任务状态为任务运行中的上游任务,还是任务状态为任务成功的上游任务,若运行时间异常,均作为异常上游任务,这样,充分考虑到了导致目标任务发生异常的各种可能情况,从而提高了检测准确率。
96.为了更清楚地理解本技术的设计思路,以下结合附图对本技术实施例进行详细说明。
97.参阅图1b所示,其为本技术实施例的应用场景示意图。该应用场景中包括至少一个终端设备110和服务器120,终端设备110和服务器120之间可以通过网络进行通信。
98.在一种可选的实施方式中,通信网络是有线网络或无线网络。终端设备110以及服务器120可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
99.在本技术实施例中,终端设备110为用户使用的电子设备,该电子设备可以是个人计算机、手机、平板电脑、笔记本等具有一定计算能力的计算机设备。各终端设备110通过无线网络与服务器120连接,服务器120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
100.在本技术实施例中,用户通过终端设备110可以获取相关的操作界面,终端设备110可响应用户在操作界面输入的触发操作,获取目标任务的标识,以实现对目标任务进行监控。本技术实施例中,触发操作包括但不限于点击操作、触摸操作、键盘操作等。例如,用户a在操作界面中输入目标任务的标识,并点击提交按钮,终端设备110响应于操作界面中输入的点击操作,获取目标任务的标识。
101.终端设备110中安装有客户端,该客户端用于显示操作界面。在本技术实施例中,客户端可以是应用程序,还可以是小程序、网页等,在此不做具体限定。相应的,服务器120
则是与应用程序或是网页、小程序等类型的客户端相对应的服务器。
102.参阅图2所示,其为本技术实施例中提供的根因任务的检测方法的流程示意图。本技术实施例中提供的根因任务的检测方法可以由根因任务的检测装置执行,该检测装置可以是终端设备110,也可以是服务器120,具体流程如下:
103.s201、检测装置响应于在操作界面中输入的触发操作,获取目标任务的目标标识,并基于目标标识,从目标业务包含的各个任务中,确定目标任务。
104.本技术实施例中,目标任务的目标标识可以采用但不限于序号(identity document,id)。触发操作包括但不限于是指鼠标操作、触摸操作、键盘操作等。
105.例如,参阅图3所示,假设,目标业务中包含任务a-任务k,任务j的标识信息为id1,操作界面中输入的任务标识为id1,检测装置响应于在操作界面中输入任务标识id1、点击“提交”按钮的操作,获取id1,并基于id1,从任务a-任务k中,确定目标任务为任务j。
106.在一些实施例中,参阅图3所示,在操作界面中,还包含有以下信息中的一项或多项:生成视图、告警方式、告警接收人、监控间隔、检测等级等。其中,若用户选择生成视图,也就是说,用户点击“是”按钮,则在确定目标任务的子依赖关系后,显示目标任务的子依赖关系,否则,不显示目标任务的子依赖关系。告警方式可以采用但不限于即时消息、短信、邮件等(图3中仅以即时消息为例),当目标任务发生异常时,通过配置的告警方式,通知告警接收人目标任务发生异常。监控间隔可以用于定期检测目标任务是否发生异常,例如,监控间隔可以是30分钟。
107.检测等级包含任务终止告警和任务延迟告警,其中,任务终止告警是指当目标任务的任务状态为任务失败时,通知告警接收人目标任务发生异常。任务延迟告警是指当目标任务的任务状态为任务运行中,但当前运行时刻晚于预设的目标结束时刻时,通知告警接收人目标任务发生异常。
108.由于任务具有周期性,因此,本技术实施例中,可以将一个周期的任务作为目标任务,例如,当前周期的任务作为目标任务。一个周期的任务也可以称为任务实例,例如,任务j为天周期任务,目标任务可以是3月10日的任务j。
109.s202、检测装置根据预设的依赖关系,从各个任务中,确定目标任务依赖的各个上游任务,其中,依赖关系用于表征各个任务之间的执行顺序。
110.例如,参阅图4a所示,目标任务中包含任务a-任务k,其中,任务k依赖于任务j,任务j依赖于任务h、任务i,任务h依赖于任务d和任务e,任务i依赖于任务f和任务g,任务d依赖于任务a,任务e依赖于任务b和任务c,任务f依赖于任务c,任务g依赖于任务c。也就是说,在任务a运行成功后执行任务d,在任务b和任务c运行成功后执行任务e,在任务c运行成功后执行任务f、任务e,在任务d和任务e运行成功后执行任务h,在任务f和任务g运行成功后执行任务j,在任务j运行成功后执行任务k。检测装置根据预设的依赖关系,从任务a-任务j中,确定任务j依赖的各个上游任务为任务a-任务i。
111.需要说明的是,本技术实施例中,s201、s202可以在触发目标业务进行处理之前执行,也可以在目标业务的处理过程中执行,本技术对此不做限定,在此不再赘述。
112.s203、在目标业务的处理过程中,检测装置若检测到目标任务发生异常,则获取各个上游任务各自对应的运行状态检测信息,并根据获得的各个运行状态检测信息,从各个上游任务中,至少筛选出运行时长异常的上游任务,获得至少一个异常上游任务。
113.本技术实施例中,检测装置可以周期检测目标任务检测目标任务是否发生异常。作为一种举例,检测装置可以根据预设的检测间隔,周期检测目标任务检测目标任务是否发生异常,例如,预设的检测周期可以为60分钟/次。作为另一种举例,检测装置还可以将操作界面中输入的监控间隔,作为检测间隔,周期检测目标任务检测目标任务是否发生异常。进一步地,s203的具体执行过程将在后续实施例中进行详细介绍。
114.考虑到目标任务具有周期性,因此,本技术实施例中,若检测装置检测当前时刻为预设的监控结束时刻时,则停止对目标任务的任务状态进行检测。其中,监控结束时刻是根据目标任务的周期确定的。
115.例如,假设,任务j为1月10日的天周期任务,预设的监控结束时刻为1月11号0时0分,在当前时刻为1月11号0时0分时,停止对任务j的任务状态进行检测。
116.考虑到任务成功的情况,若检测装置检测到目标任务的运行状态为任务成功,则停止对目标任务的任务状态进行检测。
117.例如,假设,任务j为1月10日的天周期任务,当任务j在1月10日运行成功后,停止对任务j的任务状态进行检测。
118.s204、检测装置基于依赖关系以及至少一个异常上游任务,确定至少一个根因任务。
119.具体的,若基于依赖关系,检测装置确定至少一个异常上游任务中的一个异常上游任务,不依赖于其他异常上游任务,则将一个异常上游任务确定为一个根因任务。
120.例如,参阅图4b所示,假设,异常上游任务包括任务c、任务e、任务f、任务g、任务h、任务i,检测装置基于依赖关系,确定任务c、任务e、任务f、任务g、任务h、任务i中,不依赖于其他异常上游任务为任务c,则将任务c确定为一个根因任务。
121.考虑到根因任务是目标任务的情况,本技术实施例中,若检测装置检测到目标任务发生异常,且未从各个上游任务中,筛选出异常上游任务,则将目标任务作为根因任务。
122.下面,仅以一个检测周期为例,对s203的具体执行过程进行说明。
123.在一些实施例中,为了提高检测效率,在s203的执行过程中,检测装置可以采用但不限于以下两种可能的实现方式,确定目标任务是否发生异常:
124.作为第一种可能的实现方式:
125.检测装置对目标任务的任务状态进行检测,根据目标任务的任务状态,存在但不限于以下几种可能的情况:
126.情况a1:检测装置若检测到目标任务的任务状态为任务失败,则确定目标任务发生异常。
127.例如,检测装置检测到任务j的任务状态为任务失败,则确定任务j发生异常。
128.情况a2:检测装置若检测到目标任务的任务状态为任务运行中,则将目标任务的实际运行时长,与针对目标任务预设的第一目标运行时长进行比较,并根据运行时长比较结果,确定目标任务发生异常。
129.考虑到准确判断目标任务是否发生异常,是减少根因任务的排查时长的关键,因此,本技术实施例中,可以在满足以下条件中的一项或多项时,确定目标任务发生异常:
130.条件a2(1):为了保证检测敏感度,若检测装置根据运行时长比较结果,确定目标任务的实际运行时长,大于第一目标运行时长,则确定目标任务发生异常。
131.需要说明的是,本技术实施例中,若目标任务的任务状态为任务运行中,则目标任务的实际运行时长表征从运行目标任务至当前时刻的时长。
132.例如,假设,针对任务j预设的第一目标运行时长为20分钟,检测装置检测到任务j的任务状态为任务运行中,则根据运行时长比较结果,确定任务j的实际运行时长大于20分钟时,确定任务j发生异常。
133.条件a2(2):考虑到避免误差对检测结果的影响,若检测装置根据运行时长比较结果,确定目标任务的实际运行时长,大于第一目标运行时长与针对目标任务预设的第一运行误差之和,则确定目标任务发生异常。
134.例如,假设,针对任务j预设的第一目标运行时长、第一运行误差分别为20分钟、5分钟,检测装置检测到任务j的任务状态为任务运行中,则根据运行时长比较结果,确定任务j的实际运行时长大于25分钟时,确定任务j发生异常。
135.条件a2(3):为了保证检测精度,若检测装置根据运行时长比较结果,确定目标任务的实际运行时长,大于第一目标运行时长与针对目标任务预设的第一运行误差之和,且大于针对目标任务预设的第三目标运行时长与针对目标任务预设的第三运行误差之和,则确定目标任务发生异常。
136.需要说明的是,本技术实施例中,针对目标任务预设的第一目标运行时长、第三目标运行时长的取值不同,第一目标运行时长、第三目标运行时长可以是采用不同设定方式针对目标任务设定的,具体的设定方式可以参见下文。
137.例如,假设,针对任务j预设的第一目标运行时长、第一运行误差分别为20分钟、5分钟,针对任务j预设的第三目标运行时长、第三运行误差分别为30分钟、5分钟,检测装置检测到任务j的任务状态为任务运行中,则根据运行时长比较结果,确定任务j的实际运行时长大于35分钟时,确定任务j发生异常。
138.情况a3:检测装置若检测到目标任务的任务状态为任务未运行,则将目标任务的实际延迟时长,与针对目标任务预设的第一目标延迟时长进行比较,并根据延迟时长比较结果,确定目标任务发生异常。
139.考虑到准确判断目标任务是否发生异常,是减少根因任务的检查时长的关键,因此,本技术实施例中,可以在满足以下条件中的一项或多项时,确定目标任务发生异常:
140.条件a3(1):为了保证检测敏感度,若检测装置根据延迟时长比较结果,确定目标任务的实际延迟时长,大于第一目标延迟时长,则确定目标任务发生异常。
141.需要说明的是,本技术实施例中,若目标任务的任务状态为任务未运行,则目标任务的实际延迟时长表征从创建目标任务至当前时刻的时长。
142.例如,假设,针对任务j预设的第一目标延迟时长为10分钟,若检测装置检测到任务j的任务状态为任务未运行,则根据延迟时长比较结果,确定任务j的实际延迟时长大于10分钟,则确定任务j发生异常。
143.条件a3(2):考虑到避免误差对检测结果的影响,若检测装置根据延迟时长比较结果,确定目标任务的实际延迟时长,大于第一目标延迟时长与针对目标任务预设的第一延迟误差之和,则确定目标任务发生异常。
144.例如,假设,针对任务j预设的第一目标延迟时长、第一延迟误差分别为10分钟、5分钟,若检测装置检测到任务j的任务状态为任务未运行,则根据延迟时长比较结果,确定
任务j的实际延迟时长大于25分钟时,确定任务j发生异常。
145.条件a3(3):为了保证检测精度,检测装置可以根据运行时长比较结果,确定目标任务的实际延迟时长,大于第一目标延迟时长与针对目标任务预设的第一运行延迟之和,且大于针对目标任务预设的第三目标延迟时长与针对目标任务预设的第三延迟误差之和,则确定目标任务发生异常。
146.需要说明的是,本技术实施例中,针对目标任务预设的第一目标延迟时长、第三目标延迟时长的取值不同,第一目标延迟时长、第三目标延迟时长可以是采用不同设定方式针对目标任务设定的,具体的设定方式可以参见下文所示。
147.例如,假设,针对任务j预设的第一目标延迟时长、第一延迟误差分别为10分钟、2分钟,针对任务j预设的第三目标延迟时长、第三延迟误差分别为8分钟、2分钟,检测装置检测到任务j的任务状态为任务运行中,则根据运行时长比较结果,确定任务j的实际延迟时长大于12分钟时,确定任务j发生异常。
148.作为第二种可能的实现方式:
149.检测装置对目标任务的任务状态进行检测,根据目标任务的任务状态,存在但不限于以下几种可能的情况:
150.情况b1:检测装置若检测到目标任务的任务状态为任务失败,则确定目标任务发生异常。
151.情况b2:检测装置若检测到目标任务的任务状态为任务运行中或任务未运行,则在确定目标任务的当前运行时刻晚于预设的目标结束时刻时,确定目标任务发生异常。
152.其中,目标结束时刻是根据针对目标任务预设的第一目标运行时长和第一目标延迟时长确定的。
153.例如,假设,针对任务j的预设的目标结束时刻为10:30,任务j的当前运行时刻为10:40,检测装置检测到任务j的任务状态为任务运行中,此时,任务j的当前运行时刻10:40晚于预设的目标结束时刻10:30,确定任务j发生异常。
154.在一些实施例中,任务的运行时长可以用来衡量集群资源紧缺程度、任务数据量级、任务复杂度等,考虑到运行时长异常的上游任务作为根因任务的情况,为了提升根因任务的检测准确率,在执行s203的过程中,每个上游任务的运行状态检测信息中至少包含相应的上游任务的实际运行时长。
155.检测装置根据获得的各个运行状态检测信息,可以采用但不限于以下两种方式,获得至少一个异常上游任务:
156.方式一:若各个上游任务中的一个上游任务x的实际运行时长,大于针对上游任务x预设的第二目标运行时长,则检测装置将上游任务x确定为一个异常上游任务。
157.需要说明的是,本技术实施例中,若上游任务x的任务状态为任务执行中,上游任务x的实际运行时长用于表征从运行上游任务x至当前时刻的时长。若上游任务x的任务状态为任务成功,上游任务x的实际运行时长用于表征从运行上游任务x至上游任务x成功的时长。
158.以上游任务x为任务h为例,假设,任务h的实际运行时长为30分钟,针对任务h预设的第二目标运行时长为20分钟,此时,任务h的实际运行时长大于针对任务h预设的第二目标运行时长,则检测装置将任务h确定为一个异常上游任务。
159.方式二:若各个上游任务中的一个上游任务x的运行时长,大于针对上游任务x预设的第二目标运行时长和第二运行误差之和,则将上游任务x确定为一个异常上游任务。
160.以上游任务x为任务i为例,假设,任务i的实际运行时长为15分钟,针对任务i预设的第二目标运行时长为10分钟,对任务i预设的第二运行误差为2分钟,此时,任务h的实际运行时长15分钟,大于针对任务h预设的第二目标运行时长和第二运行误差之和12分钟,则检测装置将任务h确定为一个异常上游任务。
161.需要说明的是,本技术实施例中,第二目标运行时长、第二运行误差的设定过程与上文中第一目标运行时长、第一运行误差的设定过程相同,参见下文第一目标运行时长、第一运行误差的设定过程,在此不再赘述。
162.在一些实施例中,任务的延迟时长可以用来衡量集群的资源紧缺程度、调度系统负载程度等,考虑到上游任务延迟导致下游任务异常的情况,在执行s203的过程中,每个上游任务的运行状态检测信息中还包含相应的上游任务的实际延迟时长。
163.检测装置根据获得的各个运行状态检测信息,还可以采用但不限于以下两种方式,获得至少一个异常上游任务:
164.方式三:若上游任务x的实际延迟时长,大于针对上游任务x预设的第二目标延迟时长,则检测装置将上游任务x确定为一个异常上游任务。
165.需要说明的是,本技术实施例中,若上游任务x的任务状态为任务执行中或任务成功,上游任务x的实际延迟时长用于表征从创建上游任务x至运行上游任务x的时长。若上游任务x的任务状态为任务未运行,上游任务x的实际延迟时长用于表征从创建上游任务x至当前时刻的时长。
166.以上游任务x为任务i为例,假设,任务i的实际延迟时长为30分钟,针对任务i预设的第二目标延迟时长为20分钟,此时,任务i的实际延迟时长大于针对任务i预设的第二目标延迟时长,则检测装置将任务i确定为一个异常上游任务。
167.方式四:若上游任务x的延迟时长,大于针对上游任务x预设的第二目标延迟时长和第二延迟误差之和,则将上游任务x确定为一个异常上游任务。
168.仍以上游任务x为任务i为例,假设,任务i的实际延迟时长为30分钟,针对任务i预设的第二目标延迟时长、第二延迟误差分别为20分钟、5分钟,此时,任务i的实际延迟时长大于25分钟,则检测装置将任务i确定为一个异常上游任务。
169.在一些实施例中,在执行s203的过程中,每个上游任务的运行状态检测信息中还包含相应的上游任务的任务状态,若上游任务x的任务状态为任务结束,则检测装置将上游任务x作为一个异常上游任务。
170.在一些实施例中,检测装置也可以根据各个上游任务的任务状态,确定上游任务是否发生异常。根据上游任务的任务状态,确定上游任务是否异常的方式与根据目标任务的任务状态,确定目标任务是否异常的方式相同,在此不再赘述。
171.需要说明的是,本技术实施例中,仅以上游任务x为例进行说明,上游任务x可以是各个上游任务中的任意一个上游任务,对于各个上游任务中的其他上游任务,均可以采用上述确定上游任务x是否为异常上游任务的方式,确定其他上游任务是否为异常上游任务,在此不再赘述。
172.为了提高根因任务的检测准确率,参阅图5所示,第一目标运行时长可以采用但不
限于以下步骤设定:
173.s501、检测装置获取目标任务在预设历史时间范围内的历史运行时长集合,其中,每个历史运行时长对应于目标任务的一次历史执行过程。
174.由于目标任务可以是周期性任务,例如,分钟、小时、天等,因此,本技术实施例中,针对不同周期的任务,可以预先设置不同的历史时间范围。其中,历史时间范围可以采用采集间隔和采集周期数目表示,也就是说,检测装置可以按照采集间隔,获取采集周期数目的历史运行时长。
175.例如,假设,任务j为天周期任务,采集间隔7天,采集周期数目为12,即,检测装置按照7天的采集间隔,获取任务j在历史12个周期的历史运行时长,比如,检测装置获取3月11日的任务j的历史运行时长,3月4日的任务j的运行时长,2月25日的任务j的历史运行时长,2月18日的任务j的历史运行时长等。
176.需要说明的是,由于分钟周期任务、小时周期任务会在一天中多次运行,为提高第一目标运行时长的设定精度,因此,检测装置可以获取与当前时刻对应的历史运行时长。
177.例如,假设,任务j为小时周期任务,采集间隔1天,采集周期数目为14,即,检测装置按照1天的采集间隔,获取任务j在历史14个周期的历史运行时长,比如,检测装置获取3月11日10点的任务j的历史运行时长,3月10日10点的任务j的历史运行时长,3月9日10点的任务j的历史运行时长等。
178.又例如,假设,任务j为10分钟周期任务为例,采集间隔1天,采集周期数目为14,即,检测装置按照1天的采集间隔,获取任务j在历史14个周期的历史运行时长,比如,检测装置获取3月11日10点10分的任务j的历史运行时长,3月10日10点10分的任务j的历史运行时长,3月9日10点10分的任务j的历史运行时长。
179.s502、检测装置基于历史运行时长集合,确定目标任务的第一目标运行时长。
180.在执行s502时,可以采用但不限于以下方式:
181.方式1):检测装置将历史运行时长集合,输入已训练的时长预测模型中,获得目标任务的第一目标运行时长。
182.本技术实施例中,已训练的时长预测模型可以采用但不限于深度学习模型,例如,指数移动加权平均(exponentially weighted moving-average,ewma)模型等。下面以ewma模型为例进行说明。
183.ewma模型的表达式如下:
184.vn=βv
n-1
+(1-β)θn185.其中,θn表示历史运行时长集合中第n个历史运行时长,vn表示第n个ewma预测值,β用于表征加权下降的速率,其值越小下降的越快。示例性的,v0的取值为0,β的取值为0.86。
186.示例性的,检测装置可以将历史运行时长集合,输入已训练的ewma模型中,得到输出的预测值集合,并将预测值集合中各个预测值的平均值,作为目标任务的第一目标运行时长。
187.例如,假设,历史运行时长集合为r_d,r_d={r1,r2,r3,
……
,rn},其中,n为正整数,r1,r2,r3,
……
,rn分别为各个历史运行时长,采用ewma模型的表达式,得到输出的预测值集合v,v={v1,v2,v3,
……
,vn},并将预测值集合v中各个预测值的平均值,作为任务j的第一目标运行时长。
188.示例性的,检测装置还可以将历史运行时长集合和目标任务的实际运行时长,输入已训练的ewma模型中,得到输出的预测值集合,并将预测值集合中各个预测值的平均值和目标任务的实际运行时长对应的预测值之和,作为目标任务的第一目标运行时长。
189.方式2):检测装置计算历史运行时长集合中各个历史运行时长的平均值,将平均值作为目标任务的第一目标运行时长。
190.例如,假设,任务j的历史运行时长集合r_d={10,15,20,15},检测装置计算任务j的历史运行时长集合r_d中各个历史运行时长的平均值为15,将平均值15作为任务j的第一目标运行时长。
191.方式3):检测装置按照取值大小,对历史运行时长集合中包含的各个历史运行时长进行排序,得到目标序列,并基于目标序列,计算目标序列的上四分位数,以及将目标序列的上四分位数,作为目标任务的第一目标运行时长。
192.上四分位数是指在统计学中把所有数值由小到大排列处在75%位置上的数值。
193.假设,目标序列采用p表示,p={p1,p2,p3,
……
,pn},目标序列p的上四分位数采用m表示,n表示目标序列中包含的历史运行时长的数目。
194.若3(n+1)/4是整数,则m可以表示为:
[0195][0196]
若3(n+1)/4不是整数,则m可以表示为:
[0197][0198]
其中,int表示为取整运算,dec表示为取小数部分。
[0199]
在一些实施例中,为了提高根因任务的检测准确率,检测装置还可以根据基于历史运行时长集合,确定目标任务的第一运行误差。具体的,可以计算历史运行时长集合中包含的各个历史运行时长的标准差,并将设定倍数的标准差,作为目标任务的第一运行误差。
[0200]
例如,假设,历史运行时长集合中包含的各个历史运行时长的标准差为2,设定倍数为3,将3倍的标准差,作为任务j的第一运行误差,即,任务j的第一运行误差为6。
[0201]
在一些实施例中,为了提高根因任务的检测准确率,若采用方式1)确定目标任务的第一目标运行时长,还可以根据历史运行时长集合中包含的各个历史运行时长的标准差,采用以下公式确定目标任务的第一运行误差:
[0202][0203]
其中,a表示目标任务的第一运行误差,vr表示历史运行时长集合中包含的各个历史运行时长的标准差,α为设定的系数,例如,α的取值为3。
[0204]
需要说明的是,本技术实施例中,第一运行误差的取值可以为正数,也可也为负数,本技术对此不作限定,在此不再赘述。
[0205]
在一些实施例中,在目标任务的历史执行过程中,由于存在任务补录或者重跑等情况,因此,可能会导致历史运行时长集合中包含异常的历史运行时长。为了避免异常的历史运行时长影响第一目标运行时长的设定,进而影响检测准确率,本技术实施例中,在执行s502之前,可以针对历史运行时长集合,执行以下操作:
[0206]
计算历史运行时长集合中各个历史运行时长的平均值和标准差,并基于各个历史运行时长的平均值和标准差,采用预设的异常值检测算法,从各个历史运行时长中,确定各个异常历史运行时长,以及将各个异常历史运行时长从历史运行时长集合中删除。
[0207]
本技术实施例中,异常值检测算法可以采用但不限于3-sigma算法、2-sigma算法等。3-sigma算法是指将取值不位于[μ-3σ,μ+3σ]的历史运行时长,作为异常历史运行时长。其中,μ表示各个历史运行时长的平均值,σ表示各个历史运行时长的标准差。
[0208]
例如,假设,任务j的历史运行时长集合r_d={2,40,41,
……
,40},计算出的历史运行时长集合r_d中各个历史运行时长的μ的取值为40,σ的取值为2,那么,将2,40,41,
……
,40中,取值不位于[34,46]的历史运行时长,作为异常历史运行时长,也就是说,将取值为2的历史运行时长作为异常历史运行时长,接着,将取值为2的历史运行时长,从历史运行时长集合r_d中删除。
[0209]
本技术实施例中,为了提高检测精度,在计算历史运行时长集合中各个历史运行时长的平均值和标准差之前,还可以从历史运行时长集合,删除一个最大值和一个最小值。
[0210]
需要说明的是,上文仅以第一目标运行时长、第一运行误差的设定过程为例进行说明,第二目标运行时长、第二运行误差、第三目标运行时长、第三运行误差也可以采用上述第一目标运行时长、第一运行误差的设定过程进行设定,在此不再赘述。
[0211]
在一些实施例中,为了提高根因任务的检测准确率,第一目标延迟时长可以采用但不限于以下方式设定:
[0212]
检测装置获取目标任务在预设历史时间范围内的历史延迟时长集合,其中,每个历史延迟时长对应于目标任务的一次历史执行过程;基于历史延迟时长集合,确定目标任务的第一目标延迟时长。
[0213]
需要说明的是,本技术实施例中,获取历史延迟时长集合的过程与s501相同,基于历史延迟时长集合,确定目标任务的第一目标延迟时长的过程与s502相同,在此不再赘述。
[0214]
例如,任务j的历史延迟时长集合为d_d,d_d={d1,d2,d3,

,dn},dn表示第n个历史延迟时长,其中,d1=5表示第1个历史延迟时长为5分钟,d1=4.5表示第2个历史延迟时长为4.5分钟。
[0215]
第一延迟误差、第二延迟误差、第三延迟误差的设定方式与第一运行误差的设定过程相同,第二目标延迟时长、第三目标延迟时长的设定过程与第一目标延迟时长的设定过程相同,在此不再赘述。
[0216]
在一些实施例中,由于目标业务中包含的任务的数量多,为了减少计算量,从而提高检测效率,本技术实施中,在执行s202的过程中,检测装置还可以基于各个上游任务,从依赖关系中,提取从各个上游任务至目标任务的执行顺序,作为目标任务的子依赖关系。相应的,在执行s204的过程中,检测装置可以基于目标任务的子依赖关系以及至少一个异常上游任务,确定至少一个根因任务。
[0217]
本技术实施中,可以采用但不限于广度优先遍历算法、深度优先遍历算法等遍历
算法,从目标任务开始,遍历依赖关系,以提取出目标任务的子依赖关系。
[0218]
例如,参阅图6a所示,任务j的上游任务为任务a-任务i,检测装置基于任务a-任务i,从依赖关系中,提取从各个上游任务至目标任务的执行顺序,作为任务j的子依赖关系。进而,在s204中,检测装置基于任务j的子依赖关系,从异常上游任务:任务c、任务e、任务f、任务g、任务h、任务i中,确定根因任务为任务c。
[0219]
在一些实施例中,检测装置响应于操作界面中触发的操作,显示目标任务的子依赖关系。
[0220]
例如,参阅图6b所示,操作界面中包含3个目标任务,3个目标任务的任务标识分别为452195、303206、323445,操作界面中还包含任务状态、检测等级、监控间隔等信息,每个目标任务分别对应“查看子依赖关系”操作和“查看异常任务列表”操作。当用户触发“查看子依赖关系”操作时,检测装置响应于操作界面中触发的“查看子依赖关系”操作,显示图6a所示的子依赖关系。当用户触发“异常任务列表”操作时,检测装置响应于操作界面中触发的“异常任务列表”操作,若存在异常上游任务,则显示相应的异常上游任务。
[0221]
在一些实施例中,目标任务的子依赖关系还包含有各个上游任务的任务实例,例如,以任务c为例,任务c为小时周期任务,依赖关系中还可以包含3月10日10:00的任务c、3月10日11:00的任务c、3月10日12:00的任务c等。考虑到若依赖关系中包含闭环,则遍历时可能进入死循环,本技术实施例中,若检测装置确定依赖关系中存在闭环任务,则对闭环任务进行标记,并在下一次遍历至携带标记的闭环任务时,跳过携带标记的闭环任务,遍历下一个任务。其中,闭环任务包括但不限于是自依赖任务、依赖昨日的任务中一项或多项。自依赖任务是指被依赖的上游任务依赖的任务,例如,当前周期的任务a依赖于当期周期的任务b,当前周期的任务b依赖于昨日周期的任务a,则任务a、任务b为自依赖任务。依赖昨日的任务表征依赖于前一周期的任务,例如,当前周期的任务a依赖于前一周期的任务a,则任务a为依赖昨日的任务。
[0222]
在一些实施例中,为了提前感知上游任务是否发生异常,在目标业务的处理过程中,还可以对目标任务的各个上游任务进行检测,若检测到各个上游任务中的一个上游任务发生异常,则记录一个上游任务的标识,并基于记录的各个上游任务的标识,确定相应的根因任务。
[0223]
例如,假设,若检测到任务d发生异常,则记录任务d的标识,并基于任务d的标识,确定根因任务为任务d。
[0224]
又例如,假设,若检测到任务c和任务d发生异常,则记录任务c和任务d的标识,并基于任务c和任务d的标识,确定根因任务为任务c。
[0225]
由于确定各个上游任务是否发生异常过程与目标任务的异常确定过程相同,在此不再赘述。
[0226]
参阅图7所示,其为本技术实施例中提供的一种基于根因任务,确定目标任务的预测恢复时长的流程示意图,具体流程如下:
[0227]
s701、检测装置基于依赖关系,分别确定从至少一个根因任务至目标任务的各个执行路径。
[0228]
例如,参阅图8所示,根因任务为任务c,基于依赖关系,确定从任务c至任务j的执行路径包括:执行路径1、执行路径2和执行路径3,其中,执行路径1为任务c

任务e

任务h

任务j,执行路径2为任务c

任务f

任务i

任务j,执行路径3为任务c

任务g

任务i

任务j。
[0229]
s702、检测装置基于针对各个上游任务分别预设的第二目标运行时长和第二目标延迟时长,确定各个执行路径各自对应的执行时间。
[0230]
其中,每个执行路径的执行时间用于表征相应的执行路径中包含的上游任务的第二目标运行时长和第二目标延迟时长之和。
[0231]
例如,假设,针对任务c预设的第二目标运行时长和第二目标延迟时长分别为20分钟、10分钟,针对任务e预设的第二目标运行时长和第二目标延迟时长分别为10分钟、2分钟,针对任务f预设的第二目标运行时长和第二目标延迟时长分别为12分钟、4分钟,针对任务g预设的第二目标运行时长和第二目标延迟时长分别为15分钟、4分钟,针对任务h预设的第二目标运行时长和第二目标延迟时长分别为14分钟、2分钟,针对任务i预设的第二目标运行时长和第二目标延迟时长分别为16分钟、2分钟。针对任务j预设的第一目标运行时长和第一目标延迟时长分别为8分钟、2分钟。
[0232]
基于针对任务c、任务e、任务h、任务j分别预设的第二目标运行时长和第二目标延迟时长,确定执行路径1对应的执行时间为58分钟。基于针对任务c、任务f、任务i、任务j别预设的第二目标运行时长和第二目标延迟时长,确定执行路径2对应的执行时间为64分钟。基于针对任务c、任务g、任务i、任务j别预设的第二目标运行时长和第二目标延迟时长,确定执行路径3对应的执行时间为67分钟。
[0233]
s703、检测装置基于得到的各个执行时间,得到目标任务的预测恢复时长。
[0234]
作为一种可能的实现方式,检测装置可以基于得到的各个执行时间,将各个执行时间中,取值最大的执行时间,作为目标任务的预测恢复时长。
[0235]
例如,执行路径1的执行时间、执行路径2的执行时间、执行路径3的执行时间中,取值最大的执行时间为执行路径3的执行时间67分钟,将执行路径3的执行时间67分钟,作为任务j的预测恢复时长。
[0236]
作为另一种可能的实现方式,检测装置还可以基于得到的各个执行时间,将各个执行时间的平均值,作为目标任务的预测恢复时长。
[0237]
例如,执行路径1的执行时间、执行路径2的执行时间、执行路径3的执行时间的平均值为144.33分钟,将144.33分钟作为任务j的预测恢复时长。
[0238]
在一些实施例中,在执行s201的过程中,检测装置响应于操作界面输入的触发操作,还可以获取检测等级。
[0239]
若检测等级为任务终止告警,则检测装置在检测到目标任务的任务状态为任务失败,确定目标任务发生异常之后,通过预设的告警方式,向预设的告警接收人发送告警信息,以提示告警接收人目标任务异常。
[0240]
若检测等级为任务延迟告警,则检测装置在根据运行时长比较结果,确定目标任务发生异常之后,或者,根据延迟时长比较结果,确定目标任务发生异常之后,通过预设的告警方式,向预设的告警接收人发送告警信息,以提示告警接收人目标任务异常。
[0241]
其中,告警信息中至少包含目标任务的目标标识,预设的告警方式可以采用但不限于即时消息、邮件、短信等。示例性的,检测装置可以响应于操作界面中的用户输入,获取预设的告警方式和预设的告警接收人。
[0242]
告警信息中还可以包括但不限于以下信息中的一项或多项:第一目标运行时长、第一目标延迟时长、目标任务的周期、可能的原因、根因任务的标识。本技术实施例中,告警接收人可以通过pc端、手机端等查看目标任务的运行状态。其中,可能的原因是指导致目标任务发生异常的可能的原因。
[0243]
例如,参阅图9所示,假设,检测等级为任务终止告警,检测装置检测到任务j的任务状态为任务失败,确定任务j发生异常后,通过即时消息,向告警接收人张三发送告警信息,告警信息中包含任务j的标识id1,还包含任务j的第一目标运行时长(即图9中的运行时长)和第一目标延迟时长(即图9中的延迟时长),任务j发生异常的可能的原因为资源不足。
[0244]
基于相同的发明构思,本技术实施例提供一种根因任务的检测装置。如图10所示,其为根因任务的检测装置1000的结构示意图,可以包括:
[0245]
响应单元1001,用于响应于在操作界面中输入的触发操作,获取目标任务的目标标识,并基于目标标识,从目标业务包含的各个任务中,确定目标任务;
[0246]
依赖确定单元1002,用于根据预设的依赖关系,从各个任务中,确定目标任务依赖的各个上游任务,其中,依赖关系用于表征各个任务之间的执行顺序;
[0247]
检测单元1003,用于在目标业务的处理过程中,若检测到目标任务发生异常,则获取各个上游任务各自对应的运行状态检测信息,并根据获得的各个运行状态检测信息,从各个上游任务中,至少筛选出运行时长异常的上游任务,获得至少一个异常上游任务;
[0248]
根因确定单元1004,用于基于依赖关系以及至少一个异常上游任务,确定至少一个根因任务。
[0249]
可选的,检测到目标任务发生异常时,检测单元1003具体用于:
[0250]
对目标任务的任务状态进行检测;
[0251]
若检测到目标任务的任务状态为任务失败,则确定目标任务发生异常;
[0252]
若检测到目标任务的任务状态为任务运行中,则将目标任务的实际运行时长,与针对目标任务预设的第一目标运行时长进行比较,并根据运行时长比较结果,确定目标任务发生异常;
[0253]
若检测到目标任务的任务状态为任务未运行,则将目标任务的实际延迟时长,与针对目标任务预设的第一目标延迟时长进行比较,并根据延迟时长比较结果,确定目标任务发生异常。
[0254]
可选的,根据运行时长比较结果,确定目标任务发生异常时,检测单元1003具体用于:
[0255]
若根据运行时长比较结果,确定目标任务的实际运行时长,大于第一目标运行时长,则确定目标任务发生异常;
[0256]
若根据运行时长比较结果,确定目标任务的实际运行时长,大于第一目标运行时长与针对目标任务预设的第一运行误差之和,则确定目标任务发生异常。
[0257]
可选的,根据延迟时长比较结果,确定目标任务发生异常时,检测单元1003具体用于:
[0258]
若根据延迟时长比较结果,确定目标任务的实际延迟时长,大于第一目标延迟时长,则确定目标任务发生异常;
[0259]
若根据延迟时长比较结果,确定目标任务的实际延迟时长,大于第一目标延迟时
长与针对目标任务预设的第一延迟误差之和,则确定目标任务发生异常。
[0260]
可选的,检测到目标任务发生异常时,检测单元1003具体用于:
[0261]
对目标任务的任务状态进行检测;
[0262]
若检测到目标任务的任务状态为任务运行中或任务未运行,则在确定目标任务的当前运行时刻晚于预设的目标结束时刻时,确定目标任务发生异常,其中,目标结束时刻是根据针对目标任务预设的第一目标运行时长和第一目标延迟时长确定的。
[0263]
可选的,在确定目标任务之后,在对目标任务的任务状态进行检测之前,检测单元1003还用于:
[0264]
获取目标任务在预设历史时间范围内的历史运行时长集合,其中,每个历史运行时长对应于目标任务的一次历史执行过程;
[0265]
基于历史运行时长集合,确定目标任务的第一目标运行时长。
[0266]
可选的,基于历史运行时长集合,获得目标任务的第一目标运行时长时,检测单元1003具体用于:
[0267]
将历史运行时长集合,输入已训练的时长预测模型中,获得目标任务的第一目标运行时长;或者,
[0268]
计算历史运行时长集合中包含的各个历史运行时长的平均值,作为目标任务的第一目标运行时长。
[0269]
可选的,每个上游任务的运行状态检测信息中至少包含相应的上游任务的实际运行时长;
[0270]
则根据获得的各个运行状态检测信息,从各个上游任务中,筛选出运行时长异常的上游任务,获得至少一个异常上游任务时,检测单元1003具体用于:
[0271]
若各个上游任务中的一个上游任务的实际运行时长,大于针对一个上游任务预设的第二目标运行时长,则将一个上游任务确定为一个异常上游任务;或者,
[0272]
若各个上游任务中的一个上游任务的实际运行时长,大于针对一个上游任务预设的第二目标运行时长和第二运行误差之和,则将一个上游任务确定为一个异常上游任务。
[0273]
可选的,基于依赖关系以及至少一个异常上游任务,确定至少一个根因任务之后,根因确定单元1004还用于:
[0274]
基于依赖关系,分别确定从至少一个根因任务至目标任务的各个执行路径;
[0275]
基于针对各个上游任务分别预设的第二目标运行时长和第二目标延迟时长,确定各个执行路径各自对应的执行时间;其中,每个执行路径的执行时间用于表征相应的执行路径中包含的上游任务的第二目标运行时长和第二目标延迟时长之和;
[0276]
基于得到的各个执行时间,得到目标任务的预测恢复时长。
[0277]
可选的,根据预设的依赖关系,从各个任务中,确定目标任务依赖的各个上游任务时,依赖确定单元1002还用于:
[0278]
基于各个上游任务,从依赖关系中,提取从各个上游任务至目标任务的执行顺序,作为目标任务的子依赖关系;
[0279]
则基于依赖关系以及至少一个异常上游任务,确定至少一个根因任务时,根因确定单元1004具体用于:
[0280]
基于子依赖关系以及至少一个异常上游任务,确定至少一个根因任务。
[0281]
可选的,基于依赖关系以及至少一个异常上游任务,确定至少一个根因任务时,根因确定单元1004具体用于:
[0282]
若基于依赖关系,确定至少一个异常上游任务中的一个异常上游任务,不依赖于其他异常上游任务,则将一个异常上游任务确定为一个根因任务。
[0283]
可选的,在目标业务的处理过程中,检测单元1003还用于:
[0284]
对各个上游任务进行检测;
[0285]
若检测到各个上游任务中的一个上游任务发生异常,则记录一个上游任务的标识;
[0286]
基于记录的各个上游任务的标识,确定相应的根因任务。
[0287]
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本技术时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
[0288]
关于上述实施例中的装置,其中各个单元执行请求的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0289]
所属技术领域的技术人员能够理解,本技术的各个方面可以实现为系统、方法或程序产品。因此,本技术的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
[0290]
在介绍了本技术示例性实施方式的根因任务的检测方法和装置之后,接下来,介绍根据本技术的另一示例性实施方式的电子设备。
[0291]
图11是根据一示例性实施例示出的一种电子设备1100的框图,该装置包括:
[0292]
处理器1110;
[0293]
用于存储处理器1110可执行指令的存储器1120;
[0294]
其中,处理器1110被配置为执行指令,以实现本公开实施例中的根因任务的检测方法,例如图2、图5或图7中所示的步骤。
[0295]
在示例性实施例中,还提供了一种包括操作的存储介质,例如包括操作的存储器1120,上述操作可由电子设备1100的处理器1110执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、便携式紧凑盘只读存储器(compact disk read only memory,cd-rom)、磁带、软盘和光数据存储设备等。
[0296]
基于同一发明构思,参阅图12所示,本技术实施例还提供了一种终端设备1200,该终端设备1200可以为智能手机、平板电脑,手提电脑或pc等电子设备。
[0297]
该终端设备1200包括显示单元1240、处理器1280以及存储器1220,其中,显示单元1240包括显示面板1241,用于显示由用户输入的信息或提供给用户的信息以及终端设备1200的各种操作界面等,在本技术实施例中主要用于显示终端设备1200中已安装的应用程序的操作界面、快捷窗口等。可选的,可以采用lcd(liquid crystal display,液晶显示器)或oled(organic light-emitting diode,有机发光二极管)等形式来配置显示面板1241。
[0298]
处理器1280用于读取计算机程序,然后执行计算机程序定义的方法,例如处理器1280读取应用,从而在该终端设备1200上运行应用,在显示单元1240上显示操作界面。处理
器1280可以包括一个或多个通用处理器,还可包括一个或多个dsp(digital signal processor,数字信号处理器),用于执行相关操作,以实现本技术实施例所提供的技术方案。
[0299]
存储器1220一般包括内存和外存,内存可以为ram,rom,以及高速缓存(cache)等。外存可以为硬盘、光盘、usb盘、软盘或磁带机等。存储器1220用于存储计算机程序和其他数据,该计算机程序包括应用程序等,其他数据可包括操作系统或应用程序被运行后产生的数据,该数据包括系统数据(例如操作系统的配置参数)和用户数据。本技术实施例中程序指令存储在存储器1220中,处理器1280执行存储器1220中的程序指令,实现前文论述的根因任务的检测方法。
[0300]
此外,终端设备1200还可以包括显示单元1240,用于接收输入的数字信息、字符信息或接触式触摸操作/非接触式手势,以及产生与终端设备1200的用户设置以及功能控制有关的信号输入等。具体地,本技术实施例中,该显示单元1240可以包括显示面板1241。显示面板1241例如触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在显示面板1241上或在显示面板1241的操作),并根据预先设定的程式驱动相应的连接装置。可选的,显示面板1241可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1280,并能接收处理器1280发来的命令并加以执行。在本技术实施例中,若用户对操作界面中的控件进行选中操作,则在显示面板1241中的触摸检测装置检测到触摸操作,则将检测到的触摸操作对应的信号发送的触摸控制器,触摸控制器将信号转换成触点坐标发送给处理器1280,处理器1280根据接收到的触点坐标确定用户选中的控件。
[0301]
其中,显示面板1241可以采用电阻式、电容式、红外线以及表面声波等多种类型实现。除了显示单元1240,终端设备1200还可以包括输入单元1230,输入单元1230可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。图12中是以输入单元1230包括图像输入设备1231和其它输入设备1232为例。
[0302]
除以上之外,终端设备1200还可以包括用于给其他模块供电的电源1290、音频电路1260、近场通信模块1270和rf电路1210。终端设备1210还可以包括一个或多个传感器1250,例如加速度传感器、光传感器、压力传感器等。音频电路1260具体包括扬声器1261和麦克风1262等,例如用户可以使用语音控制,终端设备1200可以通过麦克风1262采集用户的声音,可以用户的声音进行控制,并在需要提示用户时,通过扬声器1261播放对应的提示音。
[0303]
基于同一发明构思,本技术还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中各种可选实现方式中提供的根因任务的检测方法。
[0304]
在一些可能的实施方式中,本技术提供的根因任务的检测方法的各个方面还可以实现为一种程序产品的形式,其包括计算机程序,当程序产品在计算机设备上运行时,计算机程序用于使计算机设备执行本说明书上述描述的根据本技术各种示例性实施方式的根
因任务的检测方法中的步骤,例如,计算机设备可以执行如图2、图5或图7中所示的步骤。
[0305]
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、ram、rom、可擦式可编程只读存储器(eprom或闪存)、光纤、cd-rom、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0306]
本技术的实施方式的程序产品可以采用cd-rom并包括程序代码,并可以在计算装置上运行。然而,本技术的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
[0307]
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
[0308]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1