掌桥专利:专业的专利平台
掌桥专利
首页

计算机处理管线中的自动异常检测

文献发布时间:2023-06-19 12:07:15


计算机处理管线中的自动异常检测

背景技术

计算机处理管线可以在分布式计算机系统上被执行,以支持大规模计算机处理,诸如用于由搜索引擎而被执行的数据聚合。分布式计算机系统可以包括多个网络连接的计算机,这些计算机池化(pool)计算机资源以执行计算机处理管线。在某些情况下,分布式计算机系统可能具有稳定性问题,其导致计算机处理管线中的数据错误或异常。

发明内容

提供本发明内容以简化形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任何部分中指出的任何或所有缺点的实现。

计算机处理管线被自动地计算机监控。计算机处理管线包括多个有序的计算机阶段。至少一个计算机阶段被配置为接收输入数据集,并且对输入数据集执行一个或多个计算机处理操作以产生输出数据集。输出数据集作为输入被提供给计算机处理管线的另一计算机阶段。针对至少一个计算机阶段的合规执行,历史期望调度被自动地计算机生成。输出数据集在由历史期望调度规定的经指定时间处被自动地计算机采样。针对与一个或多个检测规则的符合,经采样的输出数据集被自动地计算机测试。基于输出数据集与一个或多个检测规则不符合,标识一个或多个异常的异常警报被自动地计算机发布。

附图说明

图1示意性地示出了示例自动监控计算机系统,其被配置为自动地检测在一个或多个计算机处理管线中的计算机异常。

图2示意性地示出了针对计算机处理管线的历史期望调度的方面。

图3A和图3B示意性地示出了示例异常警报仪表板图形用户界面。

图4是用于自动地检测计算机异常的方法的流程图。

图5示意性地示出了示例计算系统。

具体实施方式

由于各种原因,在分布式计算机系统上被执行的计算机处理管线可能会产生数据错误或计算机异常。作为一个示例,分布式计算机系统的一台或多台计算机可能会遭受逻辑故障,其导致计算机处理管线输出被损坏的数据。作为另一示例,分布式计算机系统的计算机之间的网络连接不稳定可能导致数据被丢弃或其他方式的不可用。作为又一示例,分布式计算机系统的一个或多个计算机的硬件故障可能阻止执行处理操作。

在一些示例中,计算机处理管线可以由人类管理员手动监控。在这种手动监控方案中,人类管理员可能在针对整个计算机处理管线的处理操作已经完成后,才仅知道计算机处理管线的最终状态。特别地,人类管理员可能仅知道计算机处理管线在管线的最后阶段之后是成功或故障中的一者。在这种手动方案中,直到计算机处理管线已经成功地或不成功地完成最后阶段之后,错误或计算机异常才可以被标识。此外,这种手动监控方案无法提供洞察在计算机处理管线中的哪里发生错误或计算机异常。此外,由于计算机处理管线的不同计算机阶段之间的依赖性,这种手动监控方案无法预期附加的下游错误或计算机异常。

因此,一种用于自动地监控和检测计算机处理管线中的异常的框架被提供。这种框架可以是可扩缩的,以自动地计算机监控和检测针对计算机处理管线的多个计算机阶段的计算机异常,并且进一步自动地计算机监控和检测针对几乎任何数目的不同计算机处理管线的计算机异常。

通过采用针对自动计算机监控和异常检测的历史期望调度,计算机处理管线的操作中的异常可以被自动检测,而不必等到计算机处理管线的最后阶段已经完成处理操作。以这种方式,如果管线的中间阶段故障,异常警报可以以基本上实时的方式被发布。此外,通过基本上实时地发布异常警报,在一些情况下,基于下游计算机阶段的依赖性的附加计算机异常可以以更及时的方式被预期和处理。因为根据期望的历史调度,计算机异常可以针对计算机处理管线的特定计算机阶段而被标识,在单个计算机阶段级别处的根本原因诊断可以被使用来在下游结果被复合之前解决计算机异常。

图1示出了示例计算机框架,其用于自动地计算机监控和检测在计算机处理管线的操作中的异常。在所描绘的示例中,多个计算机处理管线100均可以在分布式计算系统102上被执行。分布式计算系统102可以包括多个分布式处理器104和多个分布式存储机106。多个分布式处理器104和多个分布式存储机106可以采用多个网络连接的计算机(例如,服务器计算机)的形式,多个网络连接的计算机被配置为经由网络111(诸如互联网)向和/或从彼此发送和/或接收消息、数据和/或其他信息。

分布式计算机系统102可以池化并且集中地管理分布式计算机资源(例如,处理器104、存储机106),以执行计算机处理管线100中的一个或多个计算机处理管线100。在一个示例中,分布式计算机系统100可以包括数据存储管理器108和处理器管理器110。数据存储管理器108可以被配置为将数据集划分为不同的块,并且将这些块跨多个分布式存储机106的不同节点分布。在一个示例中,数据存储管理器108包括分布式文件系统,诸如ApacheHadoop。分布式计算系统102可以采用任何合适的分布式文件系统。处理器管理器110可以被配置为跨多个分布式处理器104调度(多个)计算机处理管线的处理操作以用于并行处理。处理器管理器110可以被配置为基于针对多个计算机处理管线100中的一个或多个计算机处理管线100所编程的工作流来调度处理操作。工作流可以包括由一个或多个计算机处理管线的一个或多个计算机阶段执行的一系列处理步骤。在一些示例中,工作流可以指定用于启动一个或多个处理操作的触发器或开始时间。例如,工作流可以指定以特定时间或以规则的间隔,处理操作可以被执行、或者数据集可以被产生(例如,特定的输出数据集可能每小时、每天、每月或每年被产生)。在一个示例中,处理器管理器110包括MapReduce编程模型。分布式计算系统102可以采用任何合适的处理模型用于管理多个分布式处理器104的操作。

多个计算机处理管线100中的每个计算机处理管线都包括多个有序的计算机阶段112。每个计算机阶段112被配置为从分布式计算机系统102的一个或多个存储机106接收输入数据集114。计算机阶段112被配置为对输入数据集114执行一个或多个计算机处理操作以产生输出数据集116。输出数据集116可以被存储在分布式计算系统102的一个或多个存储机106上。尽管输入数据集114被描绘为仅输入到计算机处理管线100的第一计算机阶段,但是应当理解,计算机处理管线100的(多个)下游计算机阶段可以从其他阶段接收(多个)中间数据集输出。同样地,虽然输出数据集116被描述为仅从计算机处理管线100的最后计算机阶段被输出,但是应当理解,计算机处理管线100的(多个)上游计算机阶段可以产生在其他阶段被用作输入的(多个)中间输出数据集。

在一些情况下,计算机阶段可以接收从另一计算机阶段输出的输入数据集,和/或将输出数据集作为输入提供给计算机处理管线100的不同计算机阶段。这种安排可能在计算机处理管线100的不同计算机阶段之间产生依赖性。此外,在一些情况下,计算机处理管线可以接收从另一计算机处理管线输出的输入数据集,和/或提供作为不同计算机处理管线的输入的输出数据集。这种安排可能会在不同的计算机处理管线之间产生依赖性。

分布式计算系统102可以采用任何合适的形式并且可以被配置为串行和/或并行地执行任何合适数目的计算机处理管线。在一些示例中,分布式计算系统102可以包括许多网络连接的计算机的大规模网络,该网络连接的计算机被配置为执行大量的计算机处理管线,该计算机处理管线被配置为解决涉及大量数据和计算的问题。这种大规模并行处理可以被采用于各种应用,包括企业业务、搜索引擎、社交网络、数字媒体和其他大规模数据处理应用。

多个计算机处理管线100在分布式计算机系统102上的执行,在某些情况下,可能由于各种原因而产生数据错误或计算机异常,各种原因尤其包括逻辑故障、网络连接不稳定和硬件故障。由于跨分布式计算机系统102而被执行的大规模并行计算机处理管线的大量数据集和复杂的数据处理逻辑,人类管理员的手动监控和异常检测可能是不可行的。因此,自动监控计算机系统118可以被配置为自动地监控多个计算机处理管线100的操作,并且基于检测多个计算机处理管线100的操作中的错误或计算机异常来发布异常警报。自动监控计算机系统118可以经由网络111与分布式计算系统102通信。

自动监控计算机系统118可以包括调度模块120。调度模块120可以被配置为生成多个处理管线100的操作的历史期望调度122。历史期望调度122可以指示在每个计算机处理管线的每个计算机阶段112被期望产生输出数据集时的期望时间。调度模块120可以被配置为在与自动计算机监控分开执行的预处理阶段中生成历史期望调度122,该自动计算机监控在多个计算机处理管线的运行时间被执行。

对于生成历史期望调度122的过程,调度模块120可以被配置为经由网络111从分布式计算机系统102接收工作流数据124。工作流数据124可以包括定义工作流的配置文件—例如,由计算机阶段和/或计算机处理管线执行的处理步骤的序列。调度模块122可以被配置为解析工作流配置文件以标识针对计算机阶段和/或计算机处理管线的数据集和历史处理度量,以在数据集上执行计算机处理操作。换句话说,历史处理度量可以指示计算机阶段在输入数据集上执行处理操作以产生输出数据集需要多长时间。历史处理度量可以基于以下而被确定:在具有特定的计算机配置而不发生错误或异常的普通操作条件下,对在数据集上执行处理操作的(多个)计算机处理管线的(多个)计算机阶段的实际操作的观察。换句话说,历史处理度量可以基于操作历史凭经验地被测量,而不是理论地被计算。在一些实现中,历史处理度量可以被定期地更新以导致(多个)计算机处理管线的操作中的随时间的变化。

调度模块122可以被配置为基于所标识的数据集和历史处理度量来生成管线图126。管线图126包括多个节点。每个所标识的数据集和历史处理度量可以被视为管线图126中的单个节点。针对每个工作流,针对输入和输出数据集的相对应的节点可以被添加到管线图126中。边然后可以被添加到节点之间,以形成将输入数据集连接到输出数据集的路径。每个节点可以通过相对应的数据集的绝对路径被标记,以避免在管线图126中的重复节点。

调度模块120可以被配置为基于管线图126生成历史期望调度122。特别地,调度模块120可以被配置为,针对通过管线图126的每条路径,对沿着路径的、由计算机阶段所执行的不同计算机过程的所观察到的运行时间进行排序,以确定期望准备时间或输出数据集的可用性。每个期望准备时间可以通过应用针对处理操作的历史处理度量以处理数据集来被计算。调度模块120可以被配置为逐步通过管线图126的每个节点以利用期望准备时间来填充历史期望调度122。历史期望调度122的期望准备时间可以是在没有错误或计算机异常发生时在计算机阶段和/或计算机处理管线的合规操作下将要发生的期望准备时间。生成过程可以被执行以填充历史期望调度122,使得历史期望调度可以被应用于任何合适的开始时间。作为简化的示例,两阶段处理管线可以包括具有一小时运行时间的第一阶段和具有两小时运行时间的第二阶段。如果处理管线在1:00时开始,则第一阶段可以被调度在2:00时生成输出数据集,并且第二阶段可以被调度在4:00时生成输出数据集。如果处理管线在4:00时开始,则第一阶段可以被调度在5:00时生成输出数据集,并且第二阶段可以被调度在7:00时生成输出数据集。

在一些示例中,基于历史处理度量而被确定的运行时间可以是静态的,使得无论执行处理操作的时间如何(例如,基于管线何时启动),处理运行时间都可以是相同的。在一些示例中,基于历史处理度量而被确定的运行时间可以是时间依赖性的,使得运行时间可以基于在何时执行处理操作而不同。在一些这样的示例中,可以基于计算机处理管线的历史观察行为来确定时间依赖性的运行时间。

图2示意性地示出了可以由图1中所示的调度模块120生成的历史期望调度122的方面。所描绘的示例包括跨越历史期望调度122的7月1日至7月2日的二十八小时的时间窗口。在该示例时间窗口中,多个每小时计算机过程200被调度为通过一个或多个计算机处理管线的一个或多个计算机阶段而被执行。特别地,在7月1日的1:00时,过程A被调度为在输入数据集A上被执行以生成输出数据集B。过程A具有0.9小时的期望运行时间,其是基于要在数据集A上执行的针对过程A的历史处理度量来被确定的。历史处理度量可以通过对(多个)计算机处理管线的(多个)计算机阶段的先前/历史操作的观察凭经验地被确定。基于针对过程A的开始时间和历史处理度量,针对输出数据集B的期望时间在7月1日的1:54时处可用。过程B被调度在7月1日的2:00时在输入数据集B上被执行,以产生输出数据集C。过程B可以比过程A的期望准备时间偏置缓冲持续时间,以允许针对处理操作的运行时间的容差。过程B具有期望0.9小时的期望运行时间,其是基于要在数据集B上被执行的针对过程B的历史处理度量来被确定的。基于针对过程B的开始时间和历史处理度量,针对输出数据集C的期望时间在7月1日的2:54时处可用。过程C被调度为在7月1日的3:00时在输入数据集C上被执行,以产生输出数据集D。过程C可以比过程B的期望准备时间偏置缓冲持续时间,以允许针对处理操作的运行时间的容差。过程C具有0.9小时的期望运行时间,其基于要在数据集C上被执行的针对过程C的历史处理度量来被确定的。基于针对过程C的所模拟的开始时间和历史处理度量,针对输出数据集D的期望时间在7月1日的3:54时处可用。这些每小时过程200被调度为通过所描绘的时间窗口每小时被执行一次。然而,每个每小时过程200依赖于可用的先前每小时过程的输出数据集。因此,与历史期望调度的任何高于阈值的偏差都可能导致异常,其可能对其他过程/阶段产生下游影响。

此外,在历史期望调度122的所描绘的时间窗口中,多个每日计算机过程202被调度为通过一个或多个计算机处理管线的一个或多个计算机阶段而被执行。特别地,在7月1日的3:00时,过程D被调度为在输入数据集E上被执行以产生输出数据集F。过程D具有23小时的期望运行时间,其是基于针对要在数据集E上被执行的过程D的历史处理度量来被确定的。基于针对过程D的所模拟的开始时间和历史处理度量,针对输出数据集F的期望时间在7月2日的2:00时处可用。过程G被调度在7月2日的3:00时在输入数据集上G被执行,以产生输出数据集F。过程G可以比过程D的期望准备时间偏置缓冲持续时间,以允许针对处理操作的运行时间的容差。过程G具有23小时的期望运行时间,其是基于要在数据集F上被执行的针对过程G的历史处理度量来被确定的。基于针对流程G的所模拟的开始时间和历史处理度量,输出数据集C的期望时间在7月3日的2:00时处可用。在这个示例中,过程G依赖于数据集G是可用的。因此,到过程D的任何高于阈值的偏差都可能导致异常,其可能阻止过程G的成功执行。

所描绘的过程作为非限制性示例而被提供。应当理解,历史期望调度122可以包括针对任何合适的开始时间所调度的任何合适数目的处理操作。历史期望调度122可以包括与处理操作和执行处理操作的期望定时和结果有关的任何合适的信息。此外,历史期望调度122可以跨越任何合适的持续时间/时间范围。

在所描绘的示例中,中间过程中的每个中间过程都具有预定的开始时间(具有内置的缓冲时间)。在其他示例中,每个中间过程的开始时间也可以是非预定的。例如,如果过程C使用数据集A和数据集B的两者作为输入,那么过程C可能只有在A和B的两者都可用后才能启动。在以这种方式生成期望调度时,过程的开始时间可以通过针对该过程的所有输入数据集的最晚可用时间来被确定。

在所描绘的示例中,历史期望调度被处理操作、所调度的开始时间、数据集和历史期望运行时间填充,这些被从图1所示的工作流数据124中解析。此外,调度模块120被配置为,针对每个处理操作,基于针对处理操作的历史运行时间计算输出数据集将从处理操作中可用的期望时间戳,并且将期望时间戳添加到历史期望调度122中。历史期望调度122为(多个)计算机处理管线的自动计算机监控和异常检测提供了基础。

在一些实现中,历史期望调度122可以包括具有容差的所调度的开始时间,该容差允许在不触发错误或异常的情况下,所调度的开始时间被移动。在一些示例中,每个处理操作可以具有相同的容差(例如,五分钟)。在一些示例中,不同类型的处理操作可能具有不同的容差。例如,每小时处理操作可能具有五分钟的容差,而每日处理操作可能具有三十分钟的容差。在一些示例中,容差可以被设置为期望处理运行时间的百分比(例如,运行时间的5%)。作为一个这种示例,具有六十分钟的期望运行时间的处理操作可以具有三分钟的容差。应当理解,任何处理操作都可以具有内置于历史期望调度中的任何合适的容差。

回到图1,自动监控计算机系统118可以包括异常检测模块128。异常检测模块128可以被配置为自动地监控多个计算机处理管线100的操作以检测多个计算机处理管线100的错误或计算机异常。特别地,异常检测模块128可以被配置为在由历史期望调度120规定的经指定时间处从分布式计算系统100的存储机106自动采样输出数据集130。例如,经指定时间可以是如历史期望调度122所指示的在输出数据集被期望为可用之后的、在阈值持续处的时间或阈值持续时间之内的时间期望。

在一些示例中,异常检测模块128可以对所监控的计算机处理管线的每个计算机阶段的输出数据集进行采样。在一些示例中,异常检测模块128可以对被监控的计算机处理管线的所选定的计算机阶段的输出数据集进行采样。

异常检测模块128可以被配置为针对与一个或多个检测规则132的符合,自动地测试经采样的输出数据集。输出数据集的不符合可以指示错误或计算机异常。异常检测模块128可以被配置为将任何合适类型的检测规则应用于经采样的输出数据集。作为一个示例,检测规则可以指定基于在经指定时间处的输出数据集不可用于采样,来生成异常。换句话说,数据集无法在经指定时间处从存储机106被接收。作为另一示例,检测规则可以指定基于输出数据集不可用于作为输入而要被提供给计算机处理管线的下游计算机阶段,来生成异常。这种类型的规则可以允许依赖下游的错误或异常被预期和被标识。以这种方式,错误/异常可以潜在地被及时解决,使得依赖的处理操作被执行而没有复合问题。作为又一示例,检测规则可以指定基于输出数据集中的值在期望值范围之外来生成异常。作为又一示例,检测规则可以指定基于输出数据集陈旧(例如,从管线的先前运行中被生成)来生成异常。作为又一示例,检测规则可以指定基于输出数据集的格式与期望格式不同来生成异常。应当理解,许多其他类型的检测规则可以通过异常检测模块128来被用于测试。

在一些实现中,自动监控计算机系统118可选地可以包括异常评估模块136。异常评估模块136可以被配置为基于一个或多个优先级规则138为每个所标识的错误或异常分配优先级。优先级可以从多个不同的优先级中来被选择(例如,高、中、低优先级)。在一些示例中,优先级可以指示或优先排序哪些错误可能更重要和/或需要在其他错误或异常之前被解决。优先级规则138可以基于一个或多个因素以任何合适的方式对异常进行优先排序。在一些示例中,优先级规则138可以基于时间。例如,优先级规则可以指定异常的优先级可以随着异常未被解决的时间增加而增加。在一些示例中,优先级规则可以指定基于触发异常的处理操作的类型来确定优先级。

一旦错误或异常被标识(并且可选地被优先排序),异常检测模块128可以被配置为自动发布异常警报134。换句话说,异常警报134可以基于输出数据集与检测规则132的不符合来被发布。异常警报134可以指示作为测试经采样的输出数据集130的结果而被标识的一个或多个错误或异常。

异常检测模块128可以以各种形式发布异常警报134。在一些示例中,发布异常警报134可以包括在异常记录142中记录异常,异常记录142被存储在自动监控计算机系统118的异常警报存储机140(例如,数据库)中。异常记录142可以包括异常检测模块128所检测的所有先前和未解决的异常的历史。在一些示例中,记录在异常记录142中的每个异常可以被指示为活动/未解决或已解决。异常记录142可以在每次异常检测模块128发布异常警报134时被更新。

在另一示例中,发布异常警报可以包括经由计算机网络111向管理员计算机系统146发送标识一个或多个异常的警报消息148。管理员计算机系统146可以与负责监控多个计算机管线100的操作的人类管理员相关联。管理员计算机系统146可以采用任何合适的形式,诸如台式计算机、膝上型计算机或移动计算机(例如,平板计算机或智能电话)。在一个示例中,警报消息148可以采用电子邮件的形式。在另一示例中,警报消息148可以采用短消息服务(SMS)文本消息的形式。警报消息148可以采用任何合适的形式并且可以包括与所标识的计算机异常有关的任何合适的信息,诸如发生计算机异常的计算机阶段和/或计算机处理管线、异常的定时、依赖性,等等。

在另一示例中,发布异常警报可以包括经由显示器呈现包括与所标识的计算机异常有关的信息的图形用户界面。例如,图形用户界面可以采用异常警报仪表板150的形式。异常警报仪表板150可以包括所标识的计算机异常的视觉表示。

图3A和图3B示意性地示出了示例异常警报仪表板图形用户界面300。如图3A所示,异常警报仪表板包括多个异常元素302,每个异常元素可以对应于由自动监控计算机系统118所标识的不同的活动/未解决异常。在此示例中,不同的异常元素具有不同的视觉特点,其指示不同的优先级。特别地,与具有高优先级的异常相关的异常元素是交叉阴影的;与具有中等优先级的异常相关的异常元素是斜对角阴影的;与具有低优先级的异常相关的异常元素是水平阴影的;与已解决和/或“健康的”的异常相关的异常元素为纯白色。

此外,在所描绘的示例中,具有依赖性的异常可以通过优先级来被链接。例如,异常元素304可以与针对处理操作所标识的异常相关联,该处理操作被执行以每小时为单位产生S1数据集。作为一个非限制性示例,S1数据集可以是访问网站的唯一用户的总数,在这种情况下是在特定小时内。以每小时为单位执行以产生S1数据的处理操作可以作为针对其他处理操作的输入而被提供。例如,以每日为单位产生S1数据集的处理操作可以接收针对一天二十四小时的S1每小时数据集作为输入。换句话说,S1每日处理操作可能依赖于S1每小时处理操作。更进一步,S1每日处理操作可以作为S1每月处理操作的输入而被提供。如此,当针对S1每小时处理操作的异常被标识时,针对S1每日处理操作和依赖于S1每小时处理操作的S1每月处理操作的附加异常可以被标识。异常警报仪表板300可以包括与这些异常中的每个异常相关联的异常元素。特别地,异常元素304对应于S1每小时处理操作,异常元素306对应于S1每日处理操作,而异常元素305对应于S1每月处理操作。在该示例中,异常元素304被分配高优先级,因为异常/处理操作实际上已经发生。异常元素306被分配中优先级,因为异常/处理操作尚未发生但是迫近的。异常元素308被分配低优先级,因为异常元素/处理操作还没有发生并且不是迫近的。注意,这些示例意味着是非限制性的,并且异常更改仪表板300可以采用任何合适的形式来传达与图1所示的多个计算机处理管线100的操作中的错误或计算机异常相关的信息。

在一些实现中,异常警报仪表板300可以是交互式的。例如,多个异常元素310中的每个异常元素可以被选择以呈现关于与异常元素相关联的特定异常的附加的深入信息。在图3B所示的一个示例中,异常元素304被选择。基于异常元素304的选择,深入信息覆盖310被呈现。覆盖310包括与针对S1每小时过程操作所标识的异常相关的信息。例如,覆盖310可以包括异常的优先级(例如,高优先级)和异常类型(例如,S1数据集在期望时间戳处不可用)。覆盖可以包括与相关联的异常有关的任何合适的信息。

返回到图1,在某些实现中,异常检测模块128可以被配置为基于不同类型的所标识的异常,来发布不同类型的异常警报。例如,第一类型的异常可以触发异常元素以被显示在如图3A和图3B所示的异常警报仪表板300中。此外,第二类型的异常可以触发要被发送给管理员计算机系统146的消息(例如,电子邮件)。

在一些实现中,异常检测模块128可以被配置为基于异常的优先级来发布不同的异常警报。在一些示例中,异常警报可以根据逐步上升层级来被发布。例如,当异常具有低优先级时,异常元素可以在如图3A和图3B所示的异常警报仪表板300中被呈现。进一步地,当异常具有中等优先级时,消息可以被发送给管理员计算机系统146并且异常可以在异常警报仪表板300中被呈现。更进一步地,当异常具有高优先级时,电话消息可以被发送给管理员电话,消息可以被发送给管理员计算机系统146,并且异常可以在异常警报仪表板300中被呈现。在另一示例中,基于异常的逐步上升,异常警报可以向更多和/或不同的管理员(例如,主管)被发布。

在一些实现中,异常检测模块128可以被配置为以重复的间隔(例如,每分钟、每小时、每日、每月、每年),采样输出数据集、测试输出数据集并且基于这样的测试发布异常警报。任何合适的条件都可以触发这些要被重复的操作。在一些示例中,基于历史期望调度122,这种间隔可以来被选择。

在一些实现中,自动监控计算机系统118可以被配置为在每个间隔重复处解决先前所标识的异常。异常检测模块128可以被配置为,在每个间隔处重复,针对一个或多个先前所标识的异常中的每个异常,自动地计算机重新测试针对与一项或多项检测规则符合的、触发先前所标识的异常的重新采样的输出数据集。如果重新采样的数据集与检测规则132符合,则异常检测模块128可以解决先前所标识的异常。如果重新采样的数据集与检测规则132不符合,则异常检测模块128可以继续将先前所标识的异常包括于在当前间隔处发布的异常警报134中。另外,在一些实现中,异常评估模块136可以被配置为将先前所标识的异常的优先级从一个间隔重复改变为下一个。例如,由于异常在间隔重复到间隔重复之间仍未解决,因此异常的优先级可以被增加以使得其优先排序于具有较低优先级的其他异常。

图4是用于自动地检测计算机异常的方法400的流程图。方法400可以在计算机处理管线的至少一个计算机阶段上被执行。在一些示例中,方法400可以在计算机处理管线的每个计算机阶段上被执行。此外,在一些示例中,方法400可以在多个不同处理管线的每个计算机阶段上被执行。在一些这样的示例中,方法400可以在多个不同的计算机处理管线上并行地被执行。在一个示例中,方法400可以由如图1所示的自动监控计算机系统118执行。

在402处,方法400包括自动地计算机监控在分布式计算机系统上执行的计算机处理管线。计算机处理管线可以包括多个有序的计算机阶段。多个有序的计算机阶段中的至少一个计算机阶段可以被配置为从分布式计算机系统的一个或多个存储机接收输入数据集,并且在输入数据集上执行一个或多个计算机处理操作以产生输出数据集。输出数据集可以被存储在一个或多个存储机上并且作为输入被提供给计算机处理管线的不同计算机阶段。

在404处,方法400包括针对至少一个计算机阶段的合规执行,自动地计算机生成历史期望调度。在一些示例中,基于从针对计算机处理管线的处理工作流配置文件解析的数据集的管线图和相关联的处理度量,历史期望调度可以被生成。

在406处,方法400包括在由历史期望调度规定的经指定时间处,从一个或多个存储机自动地计算机采样输出数据集。

在408处,方法400包括针对与一个或多个检测规则的符合,自动地计算机测试经采样的输出数据集。

在410处,方法400包括基于输出数据集与一个或多个检测规则的不符合,自动地计算机标识一个或多个异常。

在一些实现中,在412处,方法400可选地可以包括基于重新采样的输出数据集与一个或多个检测规则的符合来自动地计算机解决一个或多个先前所标识的异常。

在一些实现中,在414处,方法400可选地可以包括基于一个或多个优先级规则,来向一个或多个异常中的每个异常自动地计算机分配优先级。

在416处,方法400包括基于输出数据集与一个或多个检测规则的不符合,自动地计算机发布标识一个或多个异常的异常警报。在一个示例中,发布异常警报包括在异常警报记录(例如,数据库)中记录一个或多个异常。在另一示例中,发布异常警报包括经由显示器呈现包括一个或多个异常的视觉表示的图形用户界面。在又一示例中,发布异常警报包括发送标识一个或多个异常的警报消息。在一些这种示例中,发送警报消息可以包括向管理员计算机发送电子邮件消息。在一些这种示例中,发送警报消息可以包括向管理员蜂窝电话发送文本消息。

方法400可以针对计算机处理管线的一个或多个计算机阶段来被执行。在一些示例中,方法400可以针对计算机处理管线的每个计算机阶段来被执行。此外,在一些示例中,该方法可以针对多个计算机处理管线来被执行,以自动地检测多个计算机处理管线的操作中的计算机异常。此外,方法400可以根据固定的间隔被重复地执行。在一些示例中,间隔可以基于历史期望调度来被确定。

在一些实现方式中,本文所描述的方法和过程可以被绑定到一个或多个计算设备的计算系统。特别地,这种方法和过程可以被实现为计算机应用程序或服务、应用编程接口(API)、库和/或其他计算机程序产品。

图5示意性地示出了计算系统500的非限制性实现,该计算系统500可以执行上述方法和过程中的一个或多个。计算系统500以简化形式示出。计算系统500可以采用一台或多台个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算机、游戏设备、移动计算设备、移动通信设备(例如,智能电话)和/或其他计算设备的形式。例如,计算系统500可以采用如图1所示的分布式计算机系统1??、和/或自动监控计算机系统1??的一个或多个计算设备的形式。

计算系统500包括逻辑机502和存储机504。计算系统500可以可选地包括显示子系统506、输入子系统508、通信子系统510和/或图5中未示出的其他组件。

逻辑机502包括被配置为执行指令的一个或多个物理设备。例如,逻辑机520可以被配置为执行作为一个或多个应用、服务、程序、例程、库、对象、组件、数据结构或其他逻辑构造的一部分的指令。这种指令可被实现以执行任务、实现数据类型、转换一个或多个组件的状态、实现技术效果或以其他方式达到期望的结果。

逻辑机502可以包括一个或多个被配置为执行软件指令的处理器。附加地或替代地,逻辑机502可以包括被配置为执行硬件或固件指令的一个或多个硬件或固件逻辑机。逻辑机502的处理器可以是单核或多核,并且在其上执行的指令可以被配置用于顺序、并行和/或分布式处理。逻辑机502的各个部件可选地可以分布在两个或更多个单独的设备中,这些设备可以远程定位和/或被配置用于协调处理。逻辑机502的方面可以通过被配置在云计算配置或分布式计算机系统中的远程访问的联网计算设备而被虚拟化和被执行。

存储机504包括一个或多个物理设备,该物理设备被配置为保存可由逻辑机502执行的指令以实现本文所述的方法和过程。当实现这种方法和过程时,存储机504的状态可以被转换——例如,持有不同的数据。

存储机504可以包括可移除和/或内置设备。存储机504可以包括光学存储器(例如,CD、DVD、HD-DVD、蓝光光盘等)、半导体存储器(例如,RAM、EPROM、EEPROM等)和/或磁存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等),等等。存储机504可以包括易失性、非易失性、动态、静态、读/写、只读、随机访问、顺序访问、位置可寻址、文件可寻址和/或内容可寻址设备。

应当理解,存储机504包括一个或多个物理设备。然而,本文描述的指令的各方面备选地可以由物理设备在有限持续时间内不持有的通信介质(例如,电磁信号、光信号等)来传播。

逻辑机502和存储机504的方面可以一起集成到一个或多个硬件逻辑组件中。此类硬件逻辑组件可以包括例如现场可编程门阵列(FPGA)、程序和应用专用集成电路(PASIC/ASIC)、程序和应用专用标准产品(PSSP/ASSP)、片上系统(SOC),以及复杂可编程逻辑器件(CPLD)。

术语“模块”、“程序”和“引擎”可以用于描述被实现以执行特定功能的计算系统500的方面。在一些情况下,模块、程序或引擎可以经由逻辑机502执行由存储机504持有的指令来实例化。可以理解,不同的模块、程序和/或引擎可以从相同的应用、服务、代码块、对象、库、例程、API、函数等来被实例化。同样,相同的模块、程序和/或引擎可以由不同的应用、服务、代码块、对象、例程、API、函数等来被实例化。术语“模块”、“程序”和“引擎”可以包括单个或一组可执行文件、数据文件、库、驱动程序、脚本、数据库记录等。

应当理解,本文使用的“服务”是跨多个用户会话可执行的应用程序。服务可能对一个或多个系统组件、程序和/或其他服务可用。在一些实现中,服务可以在一个或多个服务器计算设备上运行。

当被包括时,显示子系统506可以用于呈现由存储机504持有的数据的视觉表示。这种视觉表示可以采用图形用户界面(GUI)的形式。由于本文所描述的方法和过程改变由存储机504持有的数据,并且因此转换存储机504的状态,因此显示子系统506的状态同样可以被转换以在视觉上表示底层数据的变化。显示子系统506可以包括使用几乎任何类型的技术的一个或多个显示设备。这种显示设备可以与逻辑机502和/或存储机504组合在一个共享的外壳中,或者这样的显示设备可以是外围显示设备。

当被包括时,输入子系统508可以包括一个或多个用户输入设备或与一个或多个用户输入设备进行接口,一个或多个用户输入设备诸如键盘、鼠标、触摸屏或游戏控制器。在一些实施例中,输入子系统508可以包括选定的自然用户输入(NUI)组件或与选定的自然用户输入(NUI)组件进行接口。这种组件可以是集成的或外围的,并且输入动作的转换和/或处理可以在机上或机外处理。示例NUI组件可以包括用于语音和/或语音识别的麦克风;用于机器视觉和/或手势识别的红外、彩色、立体和/或深度相机;用于运动检测和/或意图识别的头部追踪器、眼部追踪器、加速度计和/或陀螺仪;以及用于评估大脑活动的电场传感组件。

当被包括时,通信子系统510可以被配置为将计算系统500与一个或多个其他计算设备通信耦合。通信子系统510可以包括与一种或多种不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统510可以被配置用于经由无线电话网络或者有线或无线局域网或广域网进行通信。在一些实现中,通信子系统510可以允许计算系统500经由诸如互联网的网络向和/或从其他设备发送和/或接收消息。

在一个例子中,一种检测计算机异常的方法,包括:自动地计算机监控在分布式计算机系统上执行的、并且包括多个有序的计算机阶段的计算机处理管线,至少一个计算机阶段被配置为从分布式计算机系统的一个或多个存储机接收输入数据集并且对输入数据集执行一个或多个计算机处理操作以产生输出数据集,其中,输出数据集被存储在一个或多个存储机上,并且作为输入被提供给计算机处理管线的不同计算机阶段,针对至少一个计算机阶段的合规执行,自动地计算机生成历史期望调度,在由历史期望调度规定的经指定时间处自动地计算机采样来自一个或多个存储机的输出数据集,自动地计算机测试经采样的输出数据集是否符合一个或多个检测规则,以及基于输出数据集不符合一个或多个检测规则,自动地计算机发布标识一个或多个异常的异常警报。在该示例和/或其他示例中,可以针对计算机处理管线的多个不同计算机阶段中的每个计算机阶段执行自动地计算机识别、自动地计算机采样、自动地计算机测试和自动地计算机发布的步骤。在该示例和/或其他示例中,自动地计算机识别、自动地计算机采样、自动地计算机测试和自动地计算机发布的步骤可以针对至少一个计算机阶段以有规律的间隔而被重复。在该示例和/或其他示例中,该方法还可以包括在每个间隔重复:对于一个或多个先前所标识的异常中的每个异常,针对符合一个或多个检测规则,自动地计算机重新测试触发先前所标识的异常的重新采样的输出数据集,并且基于重新采样的数据集,根据一个或多个检测规则自动地计算机解决先前所标识的异常。在该示例和/或其他示例中,一个或多个检测规则可以指定基于在经指定时间处的输出数据集不可用于采样来生成异常。在该示例和/或其他示例中,一个或多个检测规则可以指定基于输出数据集不可用于作为输入被提供给计算机处理管线的不同计算机阶段来生成异常。在该示例和/或其他示例中,一个或多个检测规则可以指定基于输出数据集中的值在期望值范围之外来生成异常。在该示例和/或其他示例中,一个或多个检测规则可以指定基于输出数据集的格式与期望格式不同的来生成异常。在该示例和/或其他示例中,还可以包括基于一个或多个优先级规则,向一个或多个异常中的每个异常自动地计算机分配优先级。在该示例和/或其他示例中,可以针对一个或多个异常的不同优先级发布不同的异常警报。在该示例和/或其他示例中,发布异常警报可以包括经由显示器呈现包括一个或多个异常的视觉表示的图形用户界面。在该示例和/或其他示例中,发布异常警报可以包括发送标识一个或多个异常的警报消息。在该示例和/或其他示例中,发送警报消息可以包括向管理员计算机系统发送电子邮件。在该示例和/或其他示例中,发送警报消息可以包括向电话发送文本消息。在该示例和/或其他示例中,基于数据集和相关联的历史处理度量,历史期望调度被生成,用于在针对计算机处理管线的处理工作流配置文件所解析的数据集上执行处理操作。在该示例和/或其他示例中,可以基于对执行处理操作的一个或多个计算机阶段的实际操作的观察来确定历史处理度量。

在一个示例中,一种计算系统包括一个或多个逻辑机,以及一个或多个存储机,该存储机持有可以由一个或多个逻辑机执行的指令,以自动地计算机监控在分布式计算机系统上执行的、并且包括多个有序的计算机阶段的计算机处理管线,至少一个计算机阶段被配置为从分布式计算机系统的一个或多个存储机接收输入数据集并且对输入数据集执行一个或多个计算机处理操作以产生输出数据集,其中输出数据集被存储在一个或多个存储机上,并且作为输入被提供给计算机处理管线的不同计算机阶段,针对至少一个计算机阶段的合规执行,自动地计算机生成历史期望调度,在由历史期望调度规定的经指定时间处自动地计算机采样来自一个或多个存储机的输出数据集,自动地计算机测试经采样的输出数据集是否符合一个或多个检测规则,并且根据输出数据集与一个或多个检测规则的不符合,自动地计算机发布标识一个或多个异常的异常警报。在该示例和/或其他示例中,自动地计算机识别、自动地计算机采样、自动地计算机测试和自动地计算机发布的步骤可以针对至少一个计算机阶段以有规律的间隔而被重复。在该示例和/或其他示例中,一个或多个存储机可以持有一个或多个逻辑机可执行的指令,使得在每个间隔重复:对于一个或多个先前所标识的异常中的每个异常,针对符合一个或多个检测规则,自动地计算机重新测试触发先前所标识的异常的经重新采样的输出数据集,以及基于重新采样的数据集符合一个或多个检测规则,自动地计算机解决先前所标识的异常。

在该示例和/或其他示例中,一种检测计算机异常的方法包括:自动地计算机监控在分布式计算机系统上执行的、并且包括多个有序的计算机阶段的计算机处理管线,至少一个计算机阶段被配置为从分布式计算机系统的一个或多个存储机接收输入数据集并且对输入数据集执行一个或多个计算机处理操作以产生输出数据集,其中输出数据集被存储在一个或多个存储机上,并且作为输入被提供给计算机处理管线的不同计算机阶段,针对至少一个计算机阶段的合规执行,自动地计算机生成历史期望调度,在由历史期望调度规定的经指定时间处自动地计算机采样来自一个或多个存储机的输出数据集,自动地计算机测试经采样的输出数据集是否符合一个或多个检测规则,并且基于经采样的输出数据与一个或多个检测规则的不符合,自动地计算机标识一个或多个异常,基于一个或多个优先级规则,自动地向一个或多个异常中的每个异常计算机分配优先级,并且基于输出数据集与一个或多个异常的不符合,以及基于相关的优先级,自动地计算机发布标识一个或多个异常的异常警报。

应当理解,本文所描述的配置和/或方法本质上是示例性的,并且这些特定实施例或示例不应被视为限制性的,因为许多变化是可能的。本文所描述的特定程序或方法可以代表任何数目的处理策略中的一种或多种。因此,所图示和/或描述的各种动作可以按照所示和/或描述的顺序、以其他顺序、并行或省略来执行。同样,上述过程的顺序可以改变。

本公开的主题包括本文公开的各种过程、系统和配置以及其他特征、功能、动作和/或特性的所有新颖和非显而易见的组合和子组合,以及其中任何和所有等价物。

技术分类

06120113170779