CN114328095A - 一种任务异常告警方法及装置 - Google Patents
一种任务异常告警方法及装置 Download PDFInfo
- Publication number
- CN114328095A CN114328095A CN202111574740.2A CN202111574740A CN114328095A CN 114328095 A CN114328095 A CN 114328095A CN 202111574740 A CN202111574740 A CN 202111574740A CN 114328095 A CN114328095 A CN 114328095A
- Authority
- CN
- China
- Prior art keywords
- matrix
- task
- tasks
- time
- running
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Quality & Reliability (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种任务异常告警方法及装置,该方法包括在检测到针对任一任务组的异常检测请求时,从任务数据库中获取任务组的任务信息,通过k个第一任务各自的当前运行时间,构造出第一运行时间矩阵,并通过k个第一任务各自在第一预设历史时段内的历史运行时间,构造出第二运行时间矩阵,对第二运行时间矩阵进行矩阵分解,确定出第一运行时间估计值矩阵,确定第一运行时间矩阵与第一运行时间估计值矩阵之间的第一相关值,在第一相关值小于第一预设阈值时,确定至少有一个第一任务存在运行超时异常。如此,该方案可以通过第一运行时间估计值矩阵针对任务运行超时异常进行精准地判断,以此有效地降低任务运行超时异常告警的漏报率、误报率。
Description
技术领域
本发明实施例涉及金融科技(Fintech)领域,尤其涉及一种任务异常告警方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。在金融大数据领域,大数据的计算、分析和处理往往由多个任务处理单元组成,各个任务处理单元完成各自的数据处理逻辑。与一般的数据处理任务不同,这些大数据任务处理单元之间通常有着强依赖关系,这些依赖关系一般依托于数据的处理顺序,例如,上游任务完成输出数据,下游任务拿到上游任务输出的数据后才能继续执行。为了满足该要求,通常使用一个调度系统来运行和管理这些任务处理单元,该调度系统定时检查任务是否满足运行的要求,包括时间要求以及上游依赖要求。同时,调度系统在任务失败时需要进行一些特定的操作,比如重试或告警等。与一般的数据处理任务不同,在调度系统上执行的大数据任务需要依托于许多关联的大数据系统,各个系统在运行中不可避免会出现异常,那么就会导致任务的失败和超时。基于此,为了确保能够正常顺利地处理各任务,如何针对任务异常进行检测和告警也成为调度系统亟待解决的问题。
现有的任务异常检测和告警方案通常是基于针对日志文件的扫描,通过对日志文件中记录的错误进行归并和统一告警,避免同一个错误频繁告警。具体地,比如,从日志文件中获取错误之后,对错误进行聚类,整理出一段时间内的报警摘要,然后进行告警,这种聚类的方法主要目的在于对错误进行归类。如此,经过归类的处理,运维人员可以更为方便地对任务异常进行分级和处理。或者,首先对日志文件中历史告警的处理记录进行标注,基于这些标注数据,采用多特征融合的方法进行排序模型的训练。然后使用训练出的模型对线上实时到达的告警流进行排序,以排序结果作为严重性的定级结果。如此,经过这样的处理,运维人员可以根据问题的严重性进行优先处理,极大地提升了运维效率。但是,该现有方案主要是针对确定性的任务运行异常进行处理,而针对不确定性的任务运行异常则需要投入一定程度的运维人力去处理,同时,针对不确定性的任务运行异常,通过人为设置任务运行异常告警时间进行检测,需要依靠运维人员的经验,主观性较大,会由于不同运维人员的经验不同,导致所设置的异常告警时间也是不相同的,从而导致针对不确定性的任务运行异常的误报和/或漏报经常发生。
综上,目前亟需一种任务异常告警方法,用以有效地降低任务运行超时异常告警的漏报率、误报率。
发明内容
本发明实施例提供了一种任务异常告警方法及装置,用以有效地降低任务运行超时异常告警的漏报率、误报率。
第一方面,本发明实施例提供了一种任务异常告警方法,包括:
在检测到针对任一任务组的异常检测请求时,从任务数据库中获取所述任务组的任务信息;所述任务信息用于指示所述任务组中k个第一任务各自的当前运行时间;
通过所述k个第一任务各自的当前运行时间,构造出第一运行时间矩阵;
从所述任务数据库中获取所述k个第一任务各自在第一预设历史时段内的历史运行时间,并通过所述k个第一任务各自在第一预设历史时段内的历史运行时间,构造出第二运行时间矩阵;
对所述第二运行时间矩阵进行矩阵分解,确定出用于表征所述k个第一任务正常完成运行过程的第一运行时间估计值矩阵;
确定所述第一运行时间矩阵与所述第一运行时间估计值矩阵之间的第一相关值,并确定所述第一相关值是否小于第一预设阈值;所述第一预设阈值为从基于多个第二任务各自在第二预设历史时段内的历史运行时间所确定的预设阈值区间范围内随机选取的任一预设阈值;
在所述第一相关值小于所述第一预设阈值时,确定至少有一个第一任务存在运行超时异常,并对所述至少一个第一任务进行超时异常告警。
上述技术方案中,由于现有技术方案针对不确定性的任务运行异常是通过人为设置任务运行异常告警时间来检测,需要依赖运维人员的经验,主观性较大,因此会因不同运维人员的经验不同导致针对不确定性的任务运行异常误报和/或漏报经常发生。基于此,本发明中的技术方案针对任一任务组,通过该任务组中各任务在预设时段内各时段的历史运行时间来确定针对各任务的运行时间估计值矩阵(即运行时间期望值矩阵),如此所确定出的运行时间估计值矩阵更加贴合实际,更加符合该任务组中各任务的真实运行情况,并以该运行时间估计值矩阵作为判断各任务的运行是否超时的基准,从而可以更真实准确地确定该任务组是否有任务存在运行超时异常。具体来说,在检测到针对任一任务组的异常检测请求时,从任务数据库中获取该任务组的任务信息,并通过该k个第一任务各自的当前运行时间,即可构造出第一运行时间矩阵。再从任务数据库中获取该k个第一任务各自在第一预设历史时段内的历史运行时间,并通过该k个第一任务各自在第一预设历史时段内的历史运行时间,即可构造出第二运行时间矩阵,通过针对该第二运行时间矩阵进行矩阵分解,即可准确地确定出第一运行时间估计值矩阵。然后,在确定第一运行时间矩阵与第一运行时间估计值矩阵之间的第一相关值小于第一预设阈值时,确定k个第一任务中至少有一个第一任务存在运行超时异常,同时针对该至少一个第一任务进行超时异常告警。如此,该方案通过任务组中各任务在预设历史时段内各时段的历史运行时间所确定出的针对各任务的运行时间估计值矩阵更加贴合实际,更加符合该任务组的真实运行情况,因此通过该运行时间估计值矩阵与第一运行时间矩阵之间的第一相关值来与第一预设阈值进行比较,就能够更加精准地判断任务组是否有任务存在运行超时异常,以此可以有效地避免因人工设置异常告警时间而导致任务运行超时异常告的警漏报率、误报率较高,从而可以有效地降低任务运行超时异常告警的漏报率、误报率。
可选地,所述通过所述k个第一任务各自的当前运行时间,构造出第一运行时间矩阵,包括:
对所述k个第一任务各自的当前运行时间进行归一化处理,得到k个归一化后的当前运行时间;
通过所述k个归一化后的当前运行时间,构造出所述第一运行时间矩阵;
所述通过所述k个第一任务各自在第一预设历史时段内的历史运行时间,构造出第二运行时间矩阵,包括:
针对所述第一预设历史时段内的每个子时段,以属于所述子时段的所述k个第一任务各自的历史运行时间作为矩阵列,并以所述k个第一任务作为矩阵行,构造出初始的第二运行时间矩阵;
针对所述初始的第二运行时间矩阵中每列的k个矩阵值,对所述列的k个矩阵值进行归一化处理,得到所述列具有的k个归一化后的矩阵值;
通过各列各自具有的k个归一化后的矩阵值,构造出所述第二运行时间矩阵。
上述技术方案中,由于不同任务的运行时间可能分化比较大,有些任务的运行时间很大,有些任务的运行时间很小,因此通过针对k个第一任务各自的当前运行时间进行归一化处理,以及针对第一预设历史时段内属于每个子时段的k个第一任务的历史运行时间进行归一化处理,即可将有量纲的数据转换为无量纲的数据,也即是实现将不同任务的运行时间归一化到同一量纲下进行相应的处理,比如映射到[0,1]或者[-1,1]区间内,如此便于后续能够及时准确地在同一量纲下进行数据间的运算处理(比如数据间的比较或计算数据间的相关性等),并可以避免因数据间的量纲不同而给数据的运算处理带来较大误差影响。
可选地,所述对所述第二运行时间矩阵进行矩阵分解,确定出用于表征所述k个第一任务正常完成运行过程的第一运行时间估计值矩阵,包括:
通过奇异值分解算法对所述第二运行时间矩阵进行矩阵分解,确定出多个奇异值;
将所述多个奇异值进行比对,确定出最大的奇异值,并将所述最大的奇异值对应的左奇异矩阵确定为所述第一运行时间估计值矩阵。
上述技术方案中,如果针对某一类大数据的计算、分析或处理所配置的任务较多,则所构造出的运行时间矩阵是高维的,不利于后续通过各任务的当前运行时间矩阵(即第一运行时间矩阵)与各任务在预设历史时段内的历史运行时间矩阵(即第二运行时间矩阵)之间的相关值的计算,需要耗费的时间较多,导致针对任务运行超时异常的检测效率较低。因此,该方案通过第二运行时间矩阵所具有的结构特性,对第二运行时间矩阵进行低秩估计(即用一个秩更低的矩阵去近似原始矩阵),将第二运行时间矩阵从高维空间向低维空间进行映射。具体地,通过奇异值分解算法,最小化第二运行时间矩阵与第一运行时间估计值矩阵之间的误差,从而确定出第一运行时间估计值矩阵,也即是,通过针对第二运行时间矩阵进行矩阵分解,并根据秩对该第二运行时间矩阵的奇异值进行收缩即可将部分奇异值置零,从而达到低秩估计的目的,也就可以计算出第一运行时间估计值矩阵。此外,由于大数据平台支持奇异值分解算法,因此可以有效地确保该方案在实际应用中的实用性,同时通过奇异值分解算法可以及时准确地完成矩阵低秩估计,以此可以避免因将矩阵低秩估计的运算放在普通服务器而导致任务运行超时检测流程的时间过长。
可选地,所述通过奇异值分解算法对所述第二运行时间矩阵进行矩阵分解,确定出多个奇异值,包括:
将所述第二运行时间矩阵转换为低秩矩阵和误差矩阵;所述误差矩阵中的各误差值均符合正态分布;
通过所述奇异值分解算法对所述低秩矩阵进行矩阵分解,确定出所述多个奇异值。
上述技术方案中,由于第二运行时间所具有的结构特性,即第二运行时间矩阵实际上是由任务运行时间的期望值矩阵和具有零均值的正态分布的误差值矩阵构成的。其中,将任务运行时间的波动和人工设置异常告警时间所造成的误差拟合为正态分布,以便在进行运行超时异常分析时能够较好的还原现实场景。因此,首先将第二运行时间矩阵转换为低秩矩阵(即任务运行时间的期望值矩阵)和误差矩阵,但是低秩矩阵和误差矩阵都是未知的,因此需要通过矩阵低秩估计的方法估计出近似低秩矩阵的估计值矩阵,也即是通过奇异值分解算法对低秩矩阵进行矩阵分解,从而确定出多个奇异值,并通过该多个奇异值确定出近似低秩矩阵的估计值矩阵,然后可以便于后续通过基于该估计值矩阵来更加准确地判断任务运行是否存在超时异常。
可选地,所述k个第一任务为当前正在运行且未被标记为异常的任务;所述k个第一任务之间具有符合设定要求的相关性。
上述技术方案中,为了降低当前没有运行的任务或被标记为异常的任务对当前判断任务组中是否有任务存在运行超时异常的影响,因此会将当前没有运行的任务或被标记为异常的任务进行筛除掉,从而可以提高当前判断任务组中是否有任务存在运行超时异常的准确率。此外,由于一类大数据的计算、分析或处理通常会涉及多个任务,该多个任务具有一定的依赖关系(即具有一定的相关性),因此通过预先将具有一定相关性(即符合设定要求的相关性)的多个任务整合到同一任务组中,这样便于以组的形式进行检测该类大数据的计算、分析或处理是否存在运行超时异常,也即是并行检测该任务组中的各任务是否存在运行超时异常,从而能够更加准确地检测出运行超时异常具体出现在哪个任务环节,在一定程度下可以提高针对任务运行超时异常的检测效率。
可选地,通过下述方式确定所述预设阈值区间范围:
依据蒙特卡罗仿真方法,将m个不相关且均符合正态分布的第二任务作为一个任务组,并设置多个不相同的第二预设阈值;
获取m个第二任务各自在第二预设历史时段内的历史运行时间,并通过所述m个第二任务各自在所述第二预设历史时段内的历史运行时间,构造出第三运行时间矩阵;
对所述第三运行时间矩阵进行矩阵分解,确定出用于表征所述m个第二任务正常完成运行过程的第二运行时间估计值矩阵;
设置针对每个第二预设阈值,将所述m个第二任务各自在当前时段运行多次,并通过所述m个第二任务各自在每次运行的运行时间,构造出第四运行时间矩阵;
确定所述第四运行时间矩阵与所述第二运行时间估计值矩阵之间的第二相关值,并通过确定所述第二相关值是否小于所述第二预设阈值,确定所述m个第二任务中是否有任务存在运行超时的误报和/或漏报,直至在所述第二预设阈值时所述m个第二任务各自在当前时段的多次运行均遍历完成,从而确定出在所述第二预设阈值时所述m个第二任务各自在当前时段运行多次的运行超时漏报率和运行超时误报率;
通过所述多个不相同的第二预设阈值以及所述多个不相同的第二预设值各自对应的运行超时漏报率和运行超时误报率,生成蒙特卡罗仿真图;
通过所述蒙特卡罗仿真图,确定出运行超时漏报率小于等于第一设定值且运行超时误报率小于等于第二设定值所对应的各第二预设阈值,并根据所述各第二预设阈值,构造出用于检测任务运行是否超时的预设阈值区间范围。
上述技术方案中,为了更加准确地判断任务运行是否存在超时异常,因此需要确定一个能够更真实准确地判断任务运行是否存在超时异常的预设阈值区间范围,以便从该预设阈值区间范围随机选取出一个预设阈值用于判断任务运行是否存在超时异常,如此,针对选择预设阈值的灵活性更高。而且,该方案为了进一步达到较低的运行超时误报率和运行超时漏报率,需要设定一个合理的预设阈值,如果预设阈值设定的过大,虽然可以降低运行超时漏报率,但是会导致运行超时误报率大幅提升;如果预设阈值设定的过小,虽然可以降低运行超时误报率,但是会提升运行超时漏报率。因此,该方案通过依据蒙特卡罗仿真方法,基于m个完全不相关且均符合正态分布的第二任务,来仿真模拟任务运行情况,从而构造出蒙特卡罗仿真图,并通过该蒙特卡罗仿真图即可直观清楚地得到整体任务运行超时误报率和运行超时漏报率都较低的预设阈值区间范围。
可选地,在确定至少有一个第一任务存在运行超时异常之后,还包括:
针对所述k个第一任务中每个第一任务,确定所述第一任务的当前运行时间与所述第一运行时间估计值矩阵中所述第一任务的运行时间估计值的偏差;
将所述k个第一任务各自对应的偏差按照从大到小的顺序进行排序,并将排序位于前i个的第一任务确定为存在运行超时异常的任务;
将所述排序位于前i个的第一任务发送给异常处理人员进行人工处理,并将所述排序位于前i个的第一任务进行异常标记。
上述技术方案中,针对每个第一任务,通过将该第一任务的当前运行时间与第一运行时间估计值矩阵中该第一任务的运行时间估计值进行偏差计算,即可确定该第一任务对应的偏差,从而可以将各第一任务对应的偏差按照从大到小的顺序进行排序,即可准确地确定出排序位于前i个的第一任务存在运行超时异常,如此可以避免因人工估计任务运行时间期望值而导致所设置的任务运行异常告警时间不准确,并该排序位于前i个的第一任务发送给异常处理人员进行相应的人工处理,以便能够通过人工处理准确地定位出该排序位于前i个的第一任务产生运行超时异常的具体问题,并针对该具体问题采取相应的解决方案进行处理。同时,将该排序位于前i个的第一任务进行异常标记,是为了避免下次在针对该排序位于前i个的第一任务所属的任务组进行运行超时异常判断时,该被标记为异常的i个第一任务会对任务组的运行超时异常判断带来干扰影响,从而可以有效地确保针对任一任务组的每次运行超时异常判断都能够准确正常地进行。
第二方面,本发明实施例还提供了一种任务异常告警装置,包括:
获取单元,用于在检测到针对任一任务组的异常检测请求时,从任务数据库中获取所述任务组的任务信息;所述任务信息用于指示所述任务组中k个第一任务各自的当前运行时间;
处理单元,用于通过所述k个第一任务各自的当前运行时间,构造出第一运行时间矩阵;从所述任务数据库中获取所述k个第一任务各自在第一预设历史时段内的历史运行时间,并通过所述k个第一任务各自在第一预设历史时段内的历史运行时间,构造出第二运行时间矩阵;对所述第二运行时间矩阵进行矩阵分解,确定出用于表征所述k个第一任务正常完成运行过程的第一运行时间估计值矩阵;确定所述第一运行时间矩阵与所述第一运行时间估计值矩阵之间的第一相关值,并确定所述第一相关值是否小于第一预设阈值;所述第一预设阈值为从基于多个第二任务各自在第二预设历史时段内的历史运行时间所确定的预设阈值区间范围内随机选取的任一预设阈值;在所述第一相关值小于所述第一预设阈值时,确定至少有一个第一任务存在运行超时异常,并对所述至少一个第一任务进行超时异常告警。
可选地,所述处理单元具体用于:
对所述k个第一任务各自的当前运行时间进行归一化处理,得到k个归一化后的当前运行时间;
通过所述k个归一化后的当前运行时间,构造出所述第一运行时间矩阵;
所述处理单元具体用于:
针对所述第一预设历史时段内的每个子时段,以属于所述子时段的所述k个第一任务各自的历史运行时间作为矩阵列,并以所述k个第一任务作为矩阵行,构造出初始的第二运行时间矩阵;
针对所述初始的第二运行时间矩阵中每列的k个矩阵值,对所述列的k个矩阵值进行归一化处理,得到所述列具有的k个归一化后的矩阵值;
通过各列各自具有的k个归一化后的矩阵值,构造出所述第二运行时间矩阵。
可选地,所述处理单元具体用于:
通过奇异值分解算法对所述第二运行时间矩阵进行矩阵分解,确定出多个奇异值;
将所述多个奇异值进行比对,确定出最大的奇异值,并将所述最大的奇异值对应的左奇异矩阵确定为所述第一运行时间估计值矩阵。
可选地,所述处理单元具体用于:
将所述第二运行时间矩阵转换为低秩矩阵和误差矩阵;所述误差矩阵中的各误差值均符合正态分布;
通过所述奇异值分解算法对所述低秩矩阵进行矩阵分解,确定出所述多个奇异值。
可选地,所述k个第一任务为当前正在运行且未被标记为异常的任务;所述k个第一任务之间具有符合设定要求的相关性。
可选地,所述处理单元具体用于:
依据蒙特卡罗仿真方法,将m个不相关且均符合正态分布的第二任务作为一个任务组,并设置多个不相同的第二预设阈值;
获取m个第二任务各自在第二预设历史时段内的历史运行时间,并通过所述m个第二任务各自在所述第二预设历史时段内的历史运行时间,构造出第三运行时间矩阵;
对所述第三运行时间矩阵进行矩阵分解,确定出用于表征所述m个第二任务正常完成运行过程的第二运行时间估计值矩阵;
设置针对每个第二预设阈值,将所述m个第二任务各自在当前时段运行多次,并通过所述m个第二任务各自在每次运行的运行时间,构造出第四运行时间矩阵;
确定所述第四运行时间矩阵与所述第二运行时间估计值矩阵之间的第二相关值,并通过确定所述第二相关值是否小于所述第二预设阈值,确定所述m个第二任务中是否有任务存在运行超时的误报和/或漏报,直至在所述第二预设阈值时所述m个第二任务各自在当前时段的多次运行均遍历完成,从而确定出在所述第二预设阈值时所述m个第二任务各自在当前时段运行多次的运行超时漏报率和运行超时误报率;
通过所述多个不相同的第二预设阈值以及所述多个不相同的第二预设值各自对应的运行超时漏报率和运行超时误报率,生成蒙特卡罗仿真图;
通过所述蒙特卡罗仿真图,确定出运行超时漏报率小于等于第一设定值且运行超时误报率小于等于第二设定值所对应的各第二预设阈值,并根据所述各第二预设阈值,构造出用于检测任务运行是否超时的预设阈值区间范围。
可选地,所述处理单元还用于:
在确定至少有一个第一任务存在运行超时异常之后,针对所述k个第一任务中每个第一任务,确定所述第一任务的当前运行时间与所述第一运行时间估计值矩阵中所述第一任务的运行时间估计值的偏差;
将所述k个第一任务各自对应的偏差按照从大到小的顺序进行排序,并将排序位于前i个的第一任务确定为存在运行超时异常的任务;
将所述排序位于前i个的第一任务发送给异常处理人员进行人工处理,并将所述排序位于前i个的第一任务进行异常标记。
第三方面,本发明实施例提供一种计算设备,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行上述第一方面任意所述的任务异常告警方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述第一方面任意所述的任务异常告警方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种任务异常告警方法的流程示意图;
图2为本发明实施例提供的一种概率分布示意图;
图3为本发明实施例提供的一种针对矩阵进行矩阵分解的示意图;
图4为本发明实施例提供的一种针对任务运行超时漏报率、任务运行超时误报率的蒙特卡罗仿真结果示意图;
图5为本发明实施例提供的一种任务异常告警装置的结构示意图;
图6为本发明实施例提供的一种计算设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1示例性的示出了本发明实施例提供的一种任务异常告警方法的流程,该流程可以由任务异常告警装置执行。
如图1所示,该流程具体包括:
步骤101,在检测到针对任一任务组的异常检测请求时,从任务数据库中获取所述任务组的任务信息。
本发明实施例中,由于一类大数据的计算、分析或处理通常会涉及多个任务,该多个任务具有一定的依赖关系(即具有一定的相关性),因此通过预先将具有一定相关性(即符合设定要求的相关性)的多个任务整合到同一任务组中,这样便于以组的形式进行检测该类大数据的计算、分析或处理是否存在运行超时异常,也即是并行检测该任务组中的各任务是否存在运行超时异常,从而能够更加准确地检测出运行超时异常具体出现在哪个任务环节,在一定程度下可以提高针对任务运行超时异常的检测效率。如此,针对大数据平台中各类大数据的计算、分析或处理配置的各任务进行整合处理,就可以整合出多个任务组,每个任务组中的各任务之间具有符合设定要求的相关性,比如要求任一任务组中各任务之间的相关值需要满足某一设定阈值,将相关值满足设定阈值的各任务整合到一个任务组中。在整合出多个任务组后,将该多个任务组存储至任务数据库中。如此,在每次进行任务运行超时异常检测时,即可从任务数据库中获取对应的预先配置好且需要检查的任务组,比如,在检测某一用户针对任一任务组的异常检测请求时,该异常检测请求中包含有需要进行异常检测的任务组的标识号,或者在接收到某一用户针对任一任务组的异常检测指令时,该异常检测指令包含有需要进行异常检测的任务组的标识号,如此,即可根据需要进行异常检测的任务组的标识号从任务组数据库中获取与该任务组的标识号相匹配的任务信息,也即是可以获取到该任务组的任务信息,其中,该任务组的任务信息用于指示该任务组中k个第一任务各自的当前运行时间;以及该k个第一任务为当前正在运行且未被标记为异常的任务,而且该k个第一任务之间具有符合设定要求的相关性。其中,k为大于1的整数。也即是说,该任务组的任务信息包括该任务组中当前正在运行的任务数量,比如k个当前正在运行的任务,以及该k个当前正在运行的任务各自的当前运行时间。此外,需要说明的是,该k个当前正在运行的任务也是未被标记为异常的任务。如此,可以有效地降低当前没有运行的任务或被标记为异常的任务对当前判断任务组中是否有任务存在运行超时异常的影响,从而可以提高当前判断任务组中是否有任务存在运行超时异常的准确率。
步骤102,通过所述k个第一任务各自的当前运行时间,构造出第一运行时间矩阵。
本发明实施例中,在获取到k个第一任务各自的当前运行时间后,即可根据该k个第一任务各自的当前运行时间,构造第一运行时间矩阵。具体地,对该k个第一任务各自的当前运行时间进行归一化处理,即可得到k个归一化后的当前运行时间,并通过该k个归一化后的当前运行时间,即可构造出第一运行时间矩阵。由于不同任务的运行时间可能分化比较大,有些任务的运行时间很大,有些任务的运行时间很小,因此通过针对k个第一任务各自的当前运行时间进行归一化处理即可将有量纲的数据转换为无量纲的数据,也即是实现将不同任务的运行时间归一化到同一量纲下进行相应的处理,比如映射到[0,1]或者[-1,1]区间内,如此便于后续能够及时准确地在同一量纲下进行数据间的运算处理。比如,该k个第一任务各自的当前运行时间为m1、m2、m3、…、mk。通过针对该k个第一任务各自的当前运行时间进行归一化处理,即如此可得到第一运行时间矩阵M=[m1′,m2′,m3′,…,mk′]。
步骤103,从所述任务数据库中获取所述k个第一任务各自在第一预设历史时段内的历史运行时间,并通过所述k个第一任务各自在第一预设历史时段内的历史运行时间,构造出第二运行时间矩阵。
本发明实施例中,为了比较方便的介绍本发明实施例中的技术方案,需要为本发明实施例中的技术方案所应用的业务场景建立一个模型,该模型基于以下假设:
(1)由于任一任务的任务运行时间会随着数据量的大小在一定范围内进行波动,因此可以假设其波动的概率分布符合正态分布的特征:
其中,t1为任一任务的任务运行时间,μ1为任一任务的任务运行时间的期望值,σ1为该正态分布的方差。
(2)相应地,针对设定的任务运行超时告警时间也可以假设其具有正态分布的特征:
其中,t2为任一任务的设定的任务运行超时告警时间,μ2为任一任务的设定的任务运行超时告警时间的期望值,σ2为该正态分布的方差。
(3)一般地,μ2>μ1,此时两者的概率分布(即任务运行时间波动的概率分布以及设定的任务运行超时告警时间的概率分布)可以如图2所示。基于图2,该图2中从左到右三种虚线分别代表任务运行时间t1、任务运行超时告警时间t2以及任务异常时间t3。其中,t3表示超过该时间,任务已经出现异常。从统计学的角度上来讲,当任务运行时间满足正态分布时,t3一般在μ1+3σ1处比较合适,此时任一任务的任务运行时间超过μ1+3σ1的概率会小于2%。但是,在实际场景中,任务运行时间的期望值通常是未知的,所以在实际场景中t3为未知的,那么对于任务运行超时告警时间的设置通常具有一定的随机性。但是,如果能够估计出任务运行时间的期望值,即可避免人为因素(即人为设置任务运行超时告警时间)所导致的误差。
(4)理想情况下,需要t2=t3,此时任务运行超时告警时间可以很好的将任务异常告警出来,但是实际情况下会产生这种情况,即,当t2<t1<t3时,任务产生了运行超时告警,但是实际上任务依旧处于正常的运行时间内,这种情况表现为误报,此时对于任务的误报概率为:
其中,erfc()为补误差函数,其表达式为:
(5)对于一组不相关的任务其整体的误报率为(1-ξn),n为任务的个数。对于大数据平台的一组具有一定相关性的任务,其误报率会介于(ξ,1-ξn)之间。
(6)如果为了避免误报,则需要将任务运行超时告警时间延后,在这种情况下又会有漏报的风险,特别是当t3<t1<t2时出现漏报,此时对于任务的漏报概率为:
在基于针对模型的上述假设后,即可开始进行任一任务组中各任务的运行时间期望值的计算操作。在确定需要针对某一任务组中的k个任务进行运行超时告警的异常检测时,在获取到该任务组的任务信息后,即可基于该k个第一任务从任务数据库中获取该k个第一任务各自在第一预设历史时段内(比如针对该k个第一任务,设定位于当前时段之前的某一窗口时段,比如10天内、20天内或30天内等)的历史运行时间,针对第一预设历史时段内的每个子时段,以属于该子时段的k个第一任务各自的历史运行时间作为矩阵列,并以k个第一任务作为矩阵行,构造出初始的第二运行时间矩阵。比如,该k个第一任务在第一预设历史时段内第j日的运行时间为r1,j、r2,j、r3,j、…、rk,j,该k个第一任务在第j日的运行时间可以构成一个向量为rj=[r1,j,r2,j,r3,j,…,rk,j]T。其中,rk,j用于表示第k个任务在第j日的运行时间,根据上述模型的假设,该k个第一任务在第j日的运行时间均符合正态分布。需要说明的是,由于大数据平台业务的特性,随着业务的扩展,任务处理的数据量大多是波动式的上涨,如果通过人工设置任务运行超时异常告警时间,经常会随着数据量的增长导致出现错误的任务运行超时异常告警,而且需要运维人员等重新调整任务运行超时异常告警时间。而通过使用某一任务组中各任务在预设历史时段内的历史运行时间来估计出各任务的运行时间期望值,从而可以便于后续运维人员等进行准确地设置任务运行超时异常告警时间,那么随着时间的推移,该任务组中各任务的历史运行时间也在不断更新,因此采用本发明实例中的技术方案就可以确保任务运行超时异常告警时间也在相应的更新,从而更加满足实际应用场景需要。其中,为了便于能够通过奇异值分解算法更加及时准确地确定出任务运行时间估计值矩阵,通常设置各第一任务的数量k应当小于第一预设历史时段j,且j的取值越大,后续所得到的任务运行时间估计值矩阵会相对更好。如此,该k个第一任务各自在第1日至第j日的运行时间即可构成一个初始的矩阵,即R=[r1,r2,r3,…,rj]。该初始的矩阵可以展开为:
其中,该矩阵R的每一列表示该任务组中各任务各自在一天内的运行时间。
根据上述模型的假设,可以将各任务在j日内的任务运行时间视为符合正态分布,如此可以将该矩阵R分解为一个任务运行时间期望值矩阵和一个具有正态分布特性的误差值矩阵,此时该矩阵R可以表示为:
其中,矩阵X的每一列都是一样的,其秩为1,[x1,x2,x3,…,xk]T即为任务1~k的运行时间期望值,也即是每个任务期望所达到的任务运行时间,其中,每个任务在正常运行了对应的运行时间期望值后即可认为该任务处于任务完成状态。矩阵N中的每一项都是一个具有零均值的正态分布的误差值。
此外,由于不同任务的运行时间可能分化比较大,有些任务的运行时间很大,有些任务的运行时间很小,为了便于后续针对该任务组中的各任务的当前运行时间与该任务组中各任务的运行时间估计值之间的相关性,需要针对矩阵R进行归一化处理,从而将有量纲的数据转换为无量纲的数据,也即是实现将不同任务的运行时间归一化到同一量纲下进行相应的处理,比如映射到[0,1]或者[-1,1]区间内,如此便于后续能够及时准确地在同一量纲下进行数据间的运算处理。具体地,针对初始的第二运行时间矩阵中每列的k个矩阵值,对该列的k个矩阵值进行归一化处理,即可得到该列具有的k个归一化后的矩阵值,并通过各列各自具有的k个归一化后的矩阵值,即可构造出第二运行时间矩阵R′=[r1′,r2′,r3′,…,rj′],也即是
步骤104,对所述第二运行时间矩阵进行矩阵分解,确定出用于表征所述k个第一任务正常完成运行过程的第一运行时间估计值矩阵。
本发明实施例中,基于上述模型的假设,根据任务运行时间的特性,即可将任务运行时间期望值的获取问题准换为矩阵低秩估计的问题。也即是,在得到第二运行时间矩阵后,即可通过针对第二运行时间矩阵进行矩阵分解,即可得到针对k个第一任务的第一运行时间估计值矩阵。示例性地,以采用奇异值分解算法(Singular Value Decomposition,SVD)对第二运行时间矩阵进行矩阵分解为例,由于大数据的计算、分析或处理所配置的任务较多,则所构造出的运行时间矩阵是高维的,不利于后续通过各任务的当前运行时间矩阵(即第一运行时间矩阵)与各任务在预设历史时段内的历史运行时间矩阵(即第二运行时间矩阵)之间的相关值的计算,因此该方案通过第二运行时间矩阵所具有的结构特性,对第二运行时间矩阵进行低秩估计(即用一个秩更低的矩阵去近似原始矩阵),将第二运行时间矩阵从高维空间向低维空间进行映射。具体地,通过奇异值分解算法,最小化第二运行时间矩阵与第一运行时间估计值矩阵之间的误差,从而确定出第一运行时间估计值矩阵,也即是,通过奇异值分解算法对第二运行时间矩阵进行矩阵分解,确定出多个奇异值,并将该多个奇异值进行比对,确定出最大的奇异值,并将最大的奇异值对应的左奇异矩阵确定为第一运行时间估计值矩阵。如此,该方案通过针对第二运行时间矩阵进行矩阵分解,并根据秩对该第二运行时间矩阵的奇异值进行收缩即可将部分奇异值置零,从而达到低秩估计的目的,也就可以计算出第一运行时间估计值矩阵。
其中,在通过奇异值分解算法对第二运行时间矩阵进行矩阵分解时,由于第二运行时间所具有的结构特性,即第二运行时间矩阵实际上是由任务运行时间的期望值矩阵和具有零均值的正态分布的误差值矩阵构成的。其中,将任务运行时间的波动和人工设置异常告警时间所造成的误差拟合为正态分布,以便在进行运行超时异常分析时能够较好的还原现实场景。因此,首先将第二运行时间矩阵转换为低秩矩阵(即任务运行时间的期望值矩阵)和误差矩阵,其中,误差矩阵中的各误差值均符合正态分布,但是低秩矩阵和误差矩阵都是未知的,因此需要通过矩阵低秩估计的方法估计出近似低秩矩阵的估计值矩阵,也即是通过奇异值分解算法对低秩矩阵进行矩阵分解,从而确定出多个奇异值。
示例性地,从上述获取的任务运行时间矩阵(即第二运行时间矩阵,比如矩阵R)可以知道该矩阵的结构具有特殊性。比如,矩阵X的每一列都是一样的,其秩为1。一般的,矩阵的秩可以表征数据之间的相关性。一组具有相关性的数据其组成的矩阵的秩相对于其列数会小得多,也即具有低秩特性。那么,在这种情况下,对于这类具有相关性的数据主成分分析,等效于对数据矩阵进行低秩估计,将其从高维空间向低维空间进行投影,以此获得相关性最大的成分。此外,在矩阵的低秩估计问题中首先定义了一个函数,通过该函数来在低秩的约束下,最小化原始矩阵与估计矩阵的误差。比如针对一个矩阵D,将该矩阵D近似估计为U×VT的乘积,其中,rank(U×VT)<rank(D)。对于一个矩阵的低秩估计就是用一个秩更低的矩阵去近似原来的矩阵,其需要满足的条件是估计的矩阵与原矩阵的误差要最小,即:
min‖D-U×VT‖F
其中,‖‖F用于表示Frobenius范数。
其中,矩阵的低秩估计主要可以用来进行数据的压缩,比如图3所示,可以将矩阵D用更小的两个矩阵(即矩阵U和矩阵V)来近似。其中,该矩阵D使用矩阵低秩估计的数学模型为D=X+E。其中,矩阵X为低秩矩阵,矩阵E为噪声或者误差矩阵,矩阵D为实际场景中能获取到的数据矩阵。该模型体现了在实际情况中,原始数据矩阵X是一个低秩的矩阵,但是由于噪声或者测量误差E的影响,使得在实际场景中能够获取到的矩阵D的秩远大于原始低秩矩阵X的秩。
那么,为了从实际场景中能获取到的矩阵D中确定出原始低秩矩阵X,需要解决以下最优化的问题:
其中,解决该优化问题最常用的方法就是奇异值分解算法,即,通过使用奇异值分解算法对矩阵D进行分解,然后根据秩,对其奇异值进行收缩,即将部分奇异值置零,从而达到低秩估计的目的,同时也可以得到近似矩阵D的低秩矩阵
通过上述分析可知,针对矩阵R,该矩阵R中的各任务实际运行时间亦可构成这样的低秩估计模型。通过上述矩阵R的分解可知,矩阵R实际上可以分成两部分,一部分是任务运行时间期望值矩阵,该任务运行时间期望值矩阵中的各任务运行时间期望值均是固定的值,而另一部分是由于数据量等因素导致的运行时间的波动,其呈现一种标准正态分布的特性。将矩阵R=X+N与矩阵D=X+E进行比较可以发现,任务运行时间的数据分布特性完全符合低秩估计降噪的模型,所以可以采用该低秩估计的方法,能够降低由于数据量等因素带来的运行时间波动的影响,从而估计出该任务组中每个任务的任务运行时间期望值,通过该任务组中各任务的任务运行时间期望值可以准确地进行运行超时告警时间的设置,而非通过人为的估计各任务的任务运行时间期望值来进行配置运行超时告警时间。
基于此,针对矩阵R,通过使用矩阵低秩估计将其维度将至1,即对于秩的选取采用硬阈值法,此时可得到一组任务运行时间,该组任务运行时间是与过去j日内任务运行时间相关性最大的时间。具体地,也可以采用与矩阵D相同的方式针对矩阵R进行低秩估计,以便能够从矩阵R中确定出用于表征任务运行时间期望值的低秩矩阵,即:
其中,即为与过去j日内任务运行时间相关性最大的时间序列,也即是估计出来的各任务的运行时间期望值,v=[v1,v2,v3,…,vj]即为过去j日内每日任务运行时间与的相关性。其中,对于矩阵低秩估计,采用奇异值分解算法针对低秩矩阵进行分解的过程中,仅保留所得到的多个奇异值中最大奇异值对应的矩阵,也即是保留最大的奇异值对应的左奇异矩阵,即可得到如此即可从k个任务各自在预设历史时段内的历史运行时间中确定出该k个任务各自的运行时间期望值。
步骤105,确定所述第一运行时间矩阵与所述第一运行时间估计值矩阵之间的第一相关值,并确定所述第一相关值是否小于第一预设阈值。
本发明实施例中,在确定出针对k个第一任务的运行时间估计值(即第一运行时间估计值矩阵)后,即可用第一运行时间矩阵与第一运行时间估计值矩阵进行相关性计算,然后通过该相关性来进行判断是否针对该任务组中的至少一个任务进行运行超时告警。具体地,通过相关值的计算公式确定出第一运行时间矩阵与第一运行时间估计值矩阵之间的第一相关值,并判断该第一相关值是否小于第一预设阈值,以此确定是否需要针对该任务组中的至少一个任务进行运行超时告警。其中,第一预设阈值为从基于多个第二任务各自在第二预设历史时段内的历史运行时间所确定的预设阈值区间范围内随机选取的任一预设阈值。
示例性地,第一运行时间矩阵与第一运行时间估计值矩阵的相关值计算公式如下:
其中,M用于表示第一运行时间矩阵(即k个第一任务各自的当前运行时间进行归一化后所构造的矩阵)。在计算第一运行时间矩阵与第一运行时间估计值矩阵的第一相关值时,通过针对第一运行时间矩阵与第一运行时间估计值矩阵都进行归一化处理,即可使得所计算出的第一相关值λ∈[-1,1]。此时可设定一个第一预设阈值ε,在确定计算出的第一相关值λ小于第一预设阈值ε时,发出任务运行超时告警。比如,设定第一预设阈值ε=0.9,如果计算出的第一相关值λ<0.9时,即可发出任务运行超时告警。
其中,为了更加准确地判断任务运行是否存在超时异常,因此需要确定一个能够更真实准确地判断任务运行是否存在超时异常的预设阈值区间范围,以便从该预设阈值区间范围随机选取出一个预设阈值用于判断任务运行是否存在超时异常,如此,针对选择预设阈值的灵活性更高。而且,该方案为了进一步达到较低的运行超时误报率和运行超时漏报率,需要设定一个合理的预设阈值,如果预设阈值设定的过大,虽然可以降低运行超时漏报率,但是会导致运行超时误报率大幅提升;如果预设阈值设定的过小,虽然可以降低运行超时误报率,但是会提升运行超时漏报率。因此,该方案通过依据蒙特卡罗仿真方法,基于m个完全不相关且均符合正态分布的第二任务,来仿真模拟任务运行情况,从而确定出整体任务运行超时误报率和运行超时漏报率都较低的预设阈值区间范围,以便在进行判断任务组是否存在运行超时告警能够及时地从该预设阈值区间范围随机选择出一个预设阈值作为准确判断运行超时告警的预设阈值。
具体地,可以下述方式确定预设阈值区间范围:依据蒙特卡罗仿真方法,将m个不相关且均符合正态分布的第二任务作为一个任务组,并设置多个不相同的第二预设阈值,同时获取m个第二任务各自在第二预设历史时段内(比如针对该m个第二任务,设定位于当前时段之前的某一窗口时段,比如10天内、20天内或30天内等)的历史运行时间,并通过m个第二任务各自在第二预设历史时段内的历史运行时间,构造出第三运行时间矩阵。再通过奇异值分解算法对该第三运行时间矩阵进行矩阵分解,即可确定出用于表征m个第二任务正常完成运行过程的第二运行时间估计值矩阵,并设置针对每个第二预设阈值,将该m个第二任务各自在当前时段运行多次,以及针对该m个第二任务各自在当前时段每次运行的运行时间,通过该m个第二任务各自在每次运行的运行时间,构造出第四运行时间矩阵。然后,确定第四运行时间矩阵与第二运行时间估计值矩阵之间的第二相关值,并通过确定该第二相关值是否小于该第二预设阈值,确定m个第二任务中是否有任务存在运行超时的误报和/或漏报,直至在该第二预设阈值时该m个第二任务各自在当前时段的多次运行均遍历完成,从而确定出在该第二预设阈值时该m个第二任务各自在当前时段运行多次的运行超时漏报率和运行超时误报率。最后,通过多个不相同的第二预设阈值以及多个不相同的第二预设值各自对应的运行超时漏报率和运行超时误报率,生成蒙特卡罗仿真图,并通过蒙特卡罗仿真图,即可确定出运行超时漏报率小于等于第一设定值且运行超时误报率小于等于第二设定值所对应的各第二预设阈值,并根据各第二预设阈值,即可准确地构造出用于检测任务运行是否超时的预设阈值区间范围。其中,第一设定值、第二设定值可以根据本领域技术人员的经验进行设置,或者可以根据实际应用场景的需求进行设置,或者可以通过基于历史数据所进行的多次实验获得,本发明实施例对此并不作限定。
示例性地,依据蒙特卡罗仿真方法,采用一组完全不相关且均符合正态分布的30个任务,该30个任务的运行时间均值为2小时,方差为0.2,运行时间历史记录为60日,假定任务运行时间超过均值3σ,即某一任务的运行时间如果超过2.6小时,则确定该任务为异常任务。在此次仿真中,得出如图4所示的蒙特卡罗仿真结果示意图,通过该图4可知,随着预设阈值的增加,任务运行超时误报率是不断增加的,但是,任务运行超时漏报率在下降,符合上述判断。所以根据此次仿真结果可以得出预设阈值在0.988-0.990之间时整体的任务运行超时误报率和任务运行超时漏报率都较低。
需要说明的是,在实际情况中,由于一般一个任务组中的各任务都具有相关性,所以得出的运行超时误报率和运行超时漏报率比上述仿真结果更低,而且预设阈值合适的选取范围也会更大。
步骤106,在所述第一相关值小于所述第一预设阈值时,确定至少有一个第一任务存在运行超时异常,并对所述至少一个第一任务进行超时异常告警。
本发明实施例中,如果确定第一相关值小于第一预设阈值,则可以确定至少有一个第一任务存在运行超时异常,并对该至少一个第一任务进行超时异常告警;如果确定第一相关值大于等于第一预设阈值,则可以确定该k个第一任务中不存在运行超时异常,因此无需进行运行超时告警。
其中,在确定至少有一个第一任务存在运行超时异常之后,针对k个第一任务中每个第一任务,通过将该第一任务的当前运行时间与第一运行时间估计值矩阵中该第一任务的运行时间估计值进行偏差计算,即可确定该第一任务对应的偏差,并将k个第一任务各自对应的偏差按照从大到小的顺序进行排序,即可准确地确定出排序位于前i个的第一任务为存在运行超时异常的任务,如此可以避免因人工估计任务运行时间期望值而导致所设置的任务运行异常告警时间不准确,并该排序位于前i个的第一任务发送给异常处理人员进行相应的人工处理,以便能够通过人工处理准确地定位出该排序位于前i个的第一任务产生运行超时异常的具体问题,并针对该具体问题采取相应的解决方案进行处理。同时,将该排序位于前i个的第一任务进行异常标记,是为了避免下次在针对该排序位于前i个的第一任务所属的任务组进行运行超时异常判断时,该被标记为异常的i个第一任务会对任务组的运行超时异常判断带来干扰影响,从而可以有效地确保针对任一任务组的每次运行超时异常判断都能够准确正常地进行。其中,通过下述方式确定第一任务的当前运行时间与第一运行时间估计值矩阵中该第一任务的运行时间估计值的偏差,即:
上述实施例表明,由于现有技术方案针对不确定性的任务运行异常是通过人为设置任务运行异常告警时间来检测,需要依赖运维人员的经验,主观性较大,因此会因不同运维人员的经验不同导致针对不确定性的任务运行异常误报和/或漏报经常发生。基于此,本发明中的技术方案针对任一任务组,通过该任务组中各任务在预设时段内各时段的历史运行时间来确定针对各任务的运行时间估计值矩阵(即运行时间期望值矩阵),如此所确定出的运行时间估计值矩阵更加贴合实际,更加符合该任务组中各任务的真实运行情况,并以该运行时间估计值矩阵作为判断各任务的运行是否超时的基准,从而可以更真实准确地确定该任务组是否有任务存在运行超时异常。具体来说,在检测到针对任一任务组的异常检测请求时,从任务数据库中获取该任务组的任务信息,并通过该k个第一任务各自的当前运行时间,即可构造出第一运行时间矩阵。再从任务数据库中获取该k个第一任务各自在第一预设历史时段内的历史运行时间,并通过该k个第一任务各自在第一预设历史时段内的历史运行时间,即可构造出第二运行时间矩阵,通过针对该第二运行时间矩阵进行矩阵分解,即可准确地确定出第一运行时间估计值矩阵。然后,在确定第一运行时间矩阵与第一运行时间估计值矩阵之间的第一相关值小于第一预设阈值时,确定k个第一任务中至少有一个第一任务存在运行超时异常,同时针对该至少一个第一任务进行超时异常告警。如此,该方案通过任务组中各任务在预设历史时段内各时段的历史运行时间所确定出的针对各任务的运行时间估计值矩阵更加贴合实际,更加符合该任务组的真实运行情况,因此通过该运行时间估计值矩阵与第一运行时间矩阵之间的第一相关值来与第一预设阈值进行比较,就能够更加精准地判断任务组是否有任务存在运行超时异常,以此可以有效地避免因人工设置异常告警时间而导致任务运行超时异常告的警漏报率、误报率较高,从而可以有效地降低任务运行超时异常告警的漏报率、误报率。
基于相同的技术构思,图5示例性的示出了本发明实施例提供的一种任务异常告警装置,该装置可以执行任务异常告警方法的流程。
如图5所示,该装置包括:
获取单元501,用于在检测到针对任一任务组的异常检测请求时,从任务数据库中获取所述任务组的任务信息;所述任务信息用于指示所述任务组中k个第一任务各自的当前运行时间;
处理单元502,用于通过所述k个第一任务各自的当前运行时间,构造出第一运行时间矩阵;从所述任务数据库中获取所述k个第一任务各自在第一预设历史时段内的历史运行时间,并通过所述k个第一任务各自在第一预设历史时段内的历史运行时间,构造出第二运行时间矩阵;对所述第二运行时间矩阵进行矩阵分解,确定出用于表征所述k个第一任务正常完成运行过程的第一运行时间估计值矩阵;确定所述第一运行时间矩阵与所述第一运行时间估计值矩阵之间的第一相关值,并确定所述第一相关值是否小于第一预设阈值;所述第一预设阈值为从基于多个第二任务各自在第二预设历史时段内的历史运行时间所确定的预设阈值区间范围内随机选取的任一预设阈值;在所述第一相关值小于所述第一预设阈值时,确定至少有一个第一任务存在运行超时异常,并对所述至少一个第一任务进行超时异常告警。
可选地,所述处理单元502具体用于:
对所述k个第一任务各自的当前运行时间进行归一化处理,得到k个归一化后的当前运行时间;
通过所述k个归一化后的当前运行时间,构造出所述第一运行时间矩阵;
所述处理单元502具体用于:
针对所述第一预设历史时段内的每个子时段,以属于所述子时段的所述k个第一任务各自的历史运行时间作为矩阵列,并以所述k个第一任务作为矩阵行,构造出初始的第二运行时间矩阵;
针对所述初始的第二运行时间矩阵中每列的k个矩阵值,对所述列的k个矩阵值进行归一化处理,得到所述列具有的k个归一化后的矩阵值;
通过各列各自具有的k个归一化后的矩阵值,构造出所述第二运行时间矩阵。
可选地,所述处理单元502具体用于:
通过奇异值分解算法对所述第二运行时间矩阵进行矩阵分解,确定出多个奇异值;
将所述多个奇异值进行比对,确定出最大的奇异值,并将所述最大的奇异值对应的左奇异矩阵确定为所述第一运行时间估计值矩阵。
可选地,所述处理单元502具体用于:
将所述第二运行时间矩阵转换为低秩矩阵和误差矩阵;所述误差矩阵中的各误差值均符合正态分布;
通过所述奇异值分解算法对所述低秩矩阵进行矩阵分解,确定出所述多个奇异值。
可选地,所述k个第一任务为当前正在运行且未被标记为异常的任务;所述k个第一任务之间具有符合设定要求的相关性。
可选地,所述处理单元502具体用于:
依据蒙特卡罗仿真方法,将m个不相关且均符合正态分布的第二任务作为一个任务组,并设置多个不相同的第二预设阈值;
获取m个第二任务各自在第二预设历史时段内的历史运行时间,并通过所述m个第二任务各自在所述第二预设历史时段内的历史运行时间,构造出第三运行时间矩阵;
对所述第三运行时间矩阵进行矩阵分解,确定出用于表征所述m个第二任务正常完成运行过程的第二运行时间估计值矩阵;
设置针对每个第二预设阈值,将所述m个第二任务各自在当前时段运行多次,并通过所述m个第二任务各自在每次运行的运行时间,构造出第四运行时间矩阵;
确定所述第四运行时间矩阵与所述第二运行时间估计值矩阵之间的第二相关值,并通过确定所述第二相关值是否小于所述第二预设阈值,确定所述m个第二任务中是否有任务存在运行超时的误报和/或漏报,直至在所述第二预设阈值时所述m个第二任务各自在当前时段的多次运行均遍历完成,从而确定出在所述第二预设阈值时所述m个第二任务各自在当前时段运行多次的运行超时漏报率和运行超时误报率;
通过所述多个不相同的第二预设阈值以及所述多个不相同的第二预设值各自对应的运行超时漏报率和运行超时误报率,生成蒙特卡罗仿真图;
通过所述蒙特卡罗仿真图,确定出运行超时漏报率小于等于第一设定值且运行超时误报率小于等于第二设定值所对应的各第二预设阈值,并根据所述各第二预设阈值,构造出用于检测任务运行是否超时的预设阈值区间范围。
可选地,所述处理单元502还用于:
在确定至少有一个第一任务存在运行超时异常之后,针对所述k个第一任务中每个第一任务,确定所述第一任务的当前运行时间与所述第一运行时间估计值矩阵中所述第一任务的运行时间估计值的偏差;
将所述k个第一任务各自对应的偏差按照从大到小的顺序进行排序,并将排序位于前i个的第一任务确定为存在运行超时异常的任务;
将所述排序位于前i个的第一任务发送给异常处理人员进行人工处理,并将所述排序位于前i个的第一任务进行异常标记。
基于相同的技术构思,本发明实施例还提供了一种计算设备,如图6所示,包括至少一个处理器601,以及与至少一个处理器连接的存储器602,本发明实施例中不限定处理器601与存储器602之间的具体连接介质,图6中处理器601和存储器602之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本发明实施例中,存储器602存储有可被至少一个处理器601执行的指令,至少一个处理器601通过执行存储器602存储的指令,可以执行前述的任务异常告警方法中所包括的步骤。
其中,处理器601是计算设备的控制中心,可以利用各种接口和线路连接计算设备的各个部分,通过运行或执行存储在存储器602内的指令以及调用存储在存储器602内的数据,从而实现数据处理。可选的,处理器601可包括一个或多个处理单元,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理下发指令。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。在一些实施例中,处理器601和存储器602可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器601可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合任务异常告警方法实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器602作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器602可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器602是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器602还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于相同的技术构思,本发明实施例还提供了一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述任务异常告警方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种任务异常告警方法,其特征在于,包括:
在检测到针对任一任务组的异常检测请求时,从任务数据库中获取所述任务组的任务信息;所述任务信息用于指示所述任务组中k个第一任务各自的当前运行时间;
通过所述k个第一任务各自的当前运行时间,构造出第一运行时间矩阵;
从所述任务数据库中获取所述k个第一任务各自在第一预设历史时段内的历史运行时间,并通过所述k个第一任务各自在第一预设历史时段内的历史运行时间,构造出第二运行时间矩阵;
对所述第二运行时间矩阵进行矩阵分解,确定出用于表征所述k个第一任务正常完成运行过程的第一运行时间估计值矩阵;
确定所述第一运行时间矩阵与所述第一运行时间估计值矩阵之间的第一相关值,并确定所述第一相关值是否小于第一预设阈值;所述第一预设阈值为从基于多个第二任务各自在第二预设历史时段内的历史运行时间所确定的预设阈值区间范围内随机选取的任一预设阈值;
在所述第一相关值小于所述第一预设阈值时,确定至少有一个第一任务存在运行超时异常,并对所述至少一个第一任务进行超时异常告警。
2.如权利要求1所述的方法,其特征在于,所述通过所述k个第一任务各自的当前运行时间,构造出第一运行时间矩阵,包括:
对所述k个第一任务各自的当前运行时间进行归一化处理,得到k个归一化后的当前运行时间;
通过所述k个归一化后的当前运行时间,构造出所述第一运行时间矩阵;
所述通过所述k个第一任务各自在第一预设历史时段内的历史运行时间,构造出第二运行时间矩阵,包括:
针对所述第一预设历史时段内的每个子时段,以属于所述子时段的所述k个第一任务各自的历史运行时间作为矩阵列,并以所述k个第一任务作为矩阵行,构造出初始的第二运行时间矩阵;
针对所述初始的第二运行时间矩阵中每列的k个矩阵值,对所述列的k个矩阵值进行归一化处理,得到所述列具有的k个归一化后的矩阵值;
通过各列各自具有的k个归一化后的矩阵值,构造出所述第二运行时间矩阵。
3.如权利要求1所述的方法,其特征在于,所述对所述第二运行时间矩阵进行矩阵分解,确定出用于表征所述k个第一任务正常完成运行过程的第一运行时间估计值矩阵,包括:
通过奇异值分解算法对所述第二运行时间矩阵进行矩阵分解,确定出多个奇异值;
将所述多个奇异值进行比对,确定出最大的奇异值,并将所述最大的奇异值对应的左奇异矩阵确定为所述第一运行时间估计值矩阵。
4.如权利要求3所述的方法,其特征在于,所述通过奇异值分解算法对所述第二运行时间矩阵进行矩阵分解,确定出多个奇异值,包括:
将所述第二运行时间矩阵转换为低秩矩阵和误差矩阵;所述误差矩阵中的各误差值均符合正态分布;
通过所述奇异值分解算法对所述低秩矩阵进行矩阵分解,确定出所述多个奇异值。
5.如权利要求1所述的方法,其特征在于,所述k个第一任务为当前正在运行且未被标记为异常的任务;所述k个第一任务之间具有符合设定要求的相关性。
6.如权利要求1所述的方法,其特征在于,通过下述方式确定所述预设阈值区间范围:
依据蒙特卡罗仿真方法,将m个不相关且均符合正态分布的第二任务作为一个任务组,并设置多个不相同的第二预设阈值;
获取m个第二任务各自在第二预设历史时段内的历史运行时间,并通过所述m个第二任务各自在所述第二预设历史时段内的历史运行时间,构造出第三运行时间矩阵;
对所述第三运行时间矩阵进行矩阵分解,确定出用于表征所述m个第二任务正常完成运行过程的第二运行时间估计值矩阵;
设置针对每个第二预设阈值,将所述m个第二任务各自在当前时段运行多次,并通过所述m个第二任务各自在每次运行的运行时间,构造出第四运行时间矩阵;
确定所述第四运行时间矩阵与所述第二运行时间估计值矩阵之间的第二相关值,并通过确定所述第二相关值是否小于所述第二预设阈值,确定所述m个第二任务中是否有任务存在运行超时的误报和/或漏报,直至在所述第二预设阈值时所述m个第二任务各自在当前时段的多次运行均遍历完成,从而确定出在所述第二预设阈值时所述m个第二任务各自在当前时段运行多次的运行超时漏报率和运行超时误报率;
通过所述多个不相同的第二预设阈值以及所述多个不相同的第二预设值各自对应的运行超时漏报率和运行超时误报率,生成蒙特卡罗仿真图;
通过所述蒙特卡罗仿真图,确定出运行超时漏报率小于等于第一设定值且运行超时误报率小于等于第二设定值所对应的各第二预设阈值,并根据所述各第二预设阈值,构造出用于检测任务运行是否超时的预设阈值区间范围。
7.如权利要求1至6任一项所述的方法,其特征在于,在确定至少有一个第一任务存在运行超时异常之后,还包括:
针对所述k个第一任务中每个第一任务,确定所述第一任务的当前运行时间与所述第一运行时间估计值矩阵中所述第一任务的运行时间估计值的偏差;
将所述k个第一任务各自对应的偏差按照从大到小的顺序进行排序,并将排序位于前i个的第一任务确定为存在运行超时异常的任务;
将所述排序位于前i个的第一任务发送给异常处理人员进行人工处理,并将所述排序位于前i个的第一任务进行异常标记。
8.一种任务异常告警装置,其特征在于,包括:
获取单元,用于在检测到针对任一任务组的异常检测请求时,从任务数据库中获取所述任务组的任务信息;所述任务信息用于指示所述任务组中k个第一任务各自的当前运行时间;
处理单元,用于通过所述k个第一任务各自的当前运行时间,构造出第一运行时间矩阵;从所述任务数据库中获取所述k个第一任务各自在第一预设历史时段内的历史运行时间,并通过所述k个第一任务各自在第一预设历史时段内的历史运行时间,构造出第二运行时间矩阵;对所述第二运行时间矩阵进行矩阵分解,确定出用于表征所述k个第一任务正常完成运行过程的第一运行时间估计值矩阵;确定所述第一运行时间矩阵与所述第一运行时间估计值矩阵之间的第一相关值,并确定所述第一相关值是否小于第一预设阈值;所述第一预设阈值为从基于多个第二任务各自在第二预设历史时段内的历史运行时间所确定的预设阈值区间范围内随机选取的任一预设阈值;在所述第一相关值小于所述第一预设阈值时,确定至少有一个第一任务存在运行超时异常,并对所述至少一个第一任务进行超时异常告警。
9.一种计算设备,其特征在于,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行权利要求1至7任一权利要求所述的方法。
10.一种计算机可读存储介质,其特征在于,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行权利要求1至7任一权利要求所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111574740.2A CN114328095A (zh) | 2021-12-21 | 2021-12-21 | 一种任务异常告警方法及装置 |
PCT/CN2022/099837 WO2023115856A1 (zh) | 2021-12-21 | 2022-06-20 | 一种任务异常告警方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111574740.2A CN114328095A (zh) | 2021-12-21 | 2021-12-21 | 一种任务异常告警方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114328095A true CN114328095A (zh) | 2022-04-12 |
Family
ID=81055229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111574740.2A Pending CN114328095A (zh) | 2021-12-21 | 2021-12-21 | 一种任务异常告警方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114328095A (zh) |
WO (1) | WO2023115856A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023115856A1 (zh) * | 2021-12-21 | 2023-06-29 | 深圳前海微众银行股份有限公司 | 一种任务异常告警方法及装置 |
CN118133210A (zh) * | 2024-05-07 | 2024-06-04 | 浙江新再灵科技股份有限公司 | 电梯人体感应传感器数据异常特征提取方法、装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116975768B (zh) * | 2023-09-22 | 2023-12-19 | 山东爱福地生物股份有限公司 | 一种肥料安全生产的数据异常检测方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI367452B (en) * | 2009-08-21 | 2012-07-01 | Shih Chin Lee | Method for detecting abnormal transactions of financial assets and information processing device performing the method |
CN110473084A (zh) * | 2019-07-17 | 2019-11-19 | 中国银行股份有限公司 | 一种异常检测方法和装置 |
CN113556258B (zh) * | 2020-04-24 | 2022-12-27 | 西安华为技术有限公司 | 一种异常检测方法及装置 |
CN113111305A (zh) * | 2021-04-08 | 2021-07-13 | 广东电网有限责任公司韶关供电局 | 一种异常检测方法、装置、存储介质及电子设备 |
CN114328095A (zh) * | 2021-12-21 | 2022-04-12 | 深圳前海微众银行股份有限公司 | 一种任务异常告警方法及装置 |
-
2021
- 2021-12-21 CN CN202111574740.2A patent/CN114328095A/zh active Pending
-
2022
- 2022-06-20 WO PCT/CN2022/099837 patent/WO2023115856A1/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023115856A1 (zh) * | 2021-12-21 | 2023-06-29 | 深圳前海微众银行股份有限公司 | 一种任务异常告警方法及装置 |
CN118133210A (zh) * | 2024-05-07 | 2024-06-04 | 浙江新再灵科技股份有限公司 | 电梯人体感应传感器数据异常特征提取方法、装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2023115856A1 (zh) | 2023-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109598095B (zh) | 评分卡模型的建立方法、装置、计算机设备和存储介质 | |
CN111459778B (zh) | 运维系统异常指标检测模型优化方法、装置及存储介质 | |
CN114328095A (zh) | 一种任务异常告警方法及装置 | |
US20190087737A1 (en) | Anomaly detection and automated analysis in systems based on fully masked weighted directed | |
CN111045894B (zh) | 数据库异常检测方法、装置、计算机设备和存储介质 | |
CN110686633B (zh) | 一种滑坡位移预测方法、装置及电子设备 | |
CN113792825A (zh) | 一种用电信息采集设备故障分类模型训练方法及装置 | |
US10394631B2 (en) | Anomaly detection and automated analysis using weighted directed graphs | |
CN115630045B (zh) | 基于人工智能的数据溯源追踪方法及ai系统 | |
CN111694652B (zh) | 任务动态调度方法、装置、计算机设备及存储介质 | |
CN110956278A (zh) | 重新训练机器学习模型的方法和系统 | |
CN113537337A (zh) | 训练方法、异常检测方法、装置、设备和存储介质 | |
CN113326177A (zh) | 一种指标异常检测方法、装置、设备及存储介质 | |
CN109308225B (zh) | 一种虚拟机异常检测方法、装置、设备及存储介质 | |
CN110795324B (zh) | 一种数据处理方法及装置 | |
CN115759033A (zh) | 一种轨迹数据的处理方法、装置及设备 | |
CN114880312A (zh) | 一种可柔性设置的应用系统业务数据稽核方法 | |
CN113886373A (zh) | 一种数据处理方法、装置及电子设备 | |
CN110019762B (zh) | 一种问题定位方法、存储介质和服务器 | |
CN113886237A (zh) | 分析报告的生成方法、装置、电子设备及存储介质 | |
CN117407313A (zh) | 一种基于机器学习分析自动化测试质量的方法及系统 | |
CN112070180A (zh) | 基于信息物理双侧数据的电网设备状态判断方法及装置 | |
CN116185797A (zh) | 预测服务器资源饱和度的方法、装置及存储介质 | |
CN113517998B (zh) | 预警配置数据的处理方法、装置、设备及存储介质 | |
CN114416467A (zh) | 一种异常检测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |