当前位置: 首页 > 专利查询>信号公司专利>正文

用于分析仪器化软件的数据流处理语言制造技术

技术编号:16112607 阅读:67 留言:0更新日期:2017-08-30 05:57
仪器化分析系统通过执行使用数据流语言程序指定的指令来处理数据流。该数据流语言允许用户使用查找块来指定搜索条件,该查找块用于标识由数据流语言程序处理的数据流集合。所标识的数据流集合可以动态地改变。该数据流语言允许用户基于与输入数据流相关联的一个或多个元数据属性的独特值来将数据流编组成数据流集合。数据流语言允许用户指定阈值块,用于确定输入数据流的数据值是否在利用低阈值/高阈值指定的边界之外。输入到阈值块的数据流集合的元素可以动态地改变。低阈值/高阈值可以被指定为数据流并且可以动态地改变。

【技术实现步骤摘要】
【国外来华专利技术】用于分析仪器化软件的数据流处理语言
技术介绍
本公开一般而言涉及数据流处理,更具体地,涉及用于处理从仪器化软件接收的数据流的数据流处理语言。软件开发人员通过将软件仪器化来监控他们所开发的软件的不同方面。这些方面包括软件的执行、执行软件期间遇到的误差、在执行软件期间遇到的显著事件、描述代码的哪些部分正在被执行以及哪些部分未被执行的信息,等等。用于将代码仪器化的常规技术包括代码中的声明,其记录不同类型的信息以记录文件或在屏幕上打印信息。该技术适用于简单应用,例如,具有在单个处理器上执行的简单执行流程的应用。然而,用于仪器化软件的这些技术对于可能分布在多个系统上的复杂应用(每个系统执行多个进程或执行线程)而言不够胜任。用于仪器化这种复杂系统的另一常规技术是在仪器化代码中使用专家的帮助。某些供应商提供帮助仪器化代码的专家服务。然而,这些供应商通常提供通常不是非常灵活的标准服务。此外,这些基于供应商的解决方案在供应商仪器化代码所需的时间方面具有显著开销。因而,这些解决方案适合于缓慢的开发周期,例如,长为一年的开发周期。然而,软件产品的软件开发和发布周期已经变短了。例如,存在几个在线系统,其中软件开发人员每月、每周或甚至每天改变它们并且对它们进行部署。由于基于供应商的仪器化解决方案的显著开销,所以开发人员发现难以在快节奏开发环境中使用这些服务。此外,用于仪器化代码的常规技术在同化信息、存储信息和分析信息以生成报告方面引起显著延迟。因此,在软件中发生问题的时间与该问题经由代码的仪器化被检测到的时间之间可能会有显著延迟。因而,用于基于软件的仪器化来生成报告的常规系统在复杂应用的快节奏开发周期中常常不够胜任。
技术实现思路
仪器化分析系统的实施例基于在数据流语言中指定的指令来处理数据流。数据流从在外部系统上执行的仪器化代码接收。数据流语言的命令被指定为块。块执行某个类型的操作(或计算,例如,取回数据、处理数据等等)。块可选地包括输入端口、输出端口和参数。输入端口接收可以从外部系统接收或由其他块生成的数据流的数据。块的计算结果作为输出被提供给块的输出端口。与块相关联的参数用于指定块的计算。例如,参数指定查找数据流的块的搜索字符串。数据流语言程序包括块的网络,其中块的输出可以作为输入被提供给其他块,等等。任务表示数据流语言程序的执行。针对相同的数据流语言程序,多个任务可以被执行。任务与开始时间、停止时间和周期性相关联。该任务在开始时间开始,并且执行直到停止时间为止。该任务包括基于所指定的周期性、以时间间隔周期性地执行的指令。对于每个时间间隔,任务从数据流集合接收数据值,并且执行数据流语言的块以生成输出数据值。其他实施例使用不同的语法和不同的编程范式来实现本文中所指示的功能。仪器化分析系统的实施例基于在数据流语言中指定的指令来处理数据流。数据流从在外部系统上执行的仪器化代码接收,或者可以作为数据流语言程序的结果、通过仪器化分析系统来生成。仪器化分析系统接收数据流语言程序,其执行数据流与阈值的比较。例如,数据流的数据可以与低阈值和/或高阈值进行比较。低阈值/高阈值可以是常数值或动态改变的值。低阈值/高阈值可以通过生成数据流的数据流语言程序来指定。阈值块被配置成接收第一输入和第二输入。例如,第一输入通过阈值块的数据端口接收,第二输入通过阈值块的阈值端口接收。数据流语言程序的第一指令集合生成第一输入,并且数据流语言程序的第二指令集合生成第二输入。系统接收输入数据流集合。系统执行第一指令集合以聚合输入数据流集合的数据,以生成第一多个数据流,其包括作为阈值块的第一输入而被提供的数据值。系统执行第二指令集合以聚合输入数据流集合的数据,以生成第二多个数据流,其包括作为阈值块的第二输入而被提供的阈值。该系统将作为数据值的、作为第一输入被接收的数据流,与作为阈值的、作为第二输入被接收的数据流进行匹配。对于在第一输入处接收的每个数据流,系统将数据流的数据值与来自第二个多个数据流的对应数据流的阈值进行比较,并且基于数据值和阈值的比较结果来确定是否生成事件。在实施例中,所生成的事件被报告作为在由系统分析的数据流中检测到的异常。例如,异常可以指示具体数据流或基于数据流集合的聚合值超出由阈值块的低阈值和高阈值设置的界限。低阈值和高阈值本身可以动态地改变,例如,低阈值和高阈值可以被定义为基于某些输入数据流的移动平均。实施例描述了一种基于在数据流语言中指定的指令来处理数据流的仪器化分析系统。该系统存储描述多个数据流的元数据。该系统接收用于执行的数据流语言程序。数据流语言程序包括使用数据流语言指定的指令集合。指令包括与基于与所接收的数据流相关联的元数据属性的搜索表达式相关联的查找块。系统评价搜索表达式以标识符合搜索表达式的数据流集合。系统通过执行以下步骤来重复执行数据流语言程序。系统从所标识的数据流集合的每个数据流接收数据值。系统执行数据流语言程序的每个块,并且基于执行来生成结果数据值。结果值与由数据流语言程序生成的结果数据流相对应。系统存储一个或多个结果数据值。在实施例中,查找块是数据流语言程序的第一块。系统重复评价查找块。由查找块标识的数据流集合可以从查找块的一个评价改变为另一评价。查找块可以以与数据流语言程序的其余块的执行速率不同的速率来评价。系统的实施例基于在数据流语言中指定的指令来处理数据流。系统存储描述由系统处理的数据流的元数据。每个数据流的元数据包括与数据流相关联的属性。例如,数据流可以与具有值“databank1”的属性“source”和具有值“numCacheMisses”的属性“metric_name”相关联。系统接收使用数据流语言程序指定的指令集合用于处理输入数据流。系统通过执行指令集合来生成结果数据流。例如,数据流语言程序可以包括用于通过某些属性对所接收的数据流进行编组的指令,并且基于所标识的组的数目,数据流语言程序的结果可以包括多个结果数据流。系统执行结果数据流中的每个结果数据流的以下步骤。系统确定描述结果数据流的属性值集合。系统将该值集合存储为描述结果数据流的元数据。系统生成数据流的标识符,并且将标识符与描述数据流的元数据相关联。该系统存储与该标识符相关联的结果数据流的数据。在实施例中,数据流语言程序指定多个分组(groupby)命令。仪器化分析系统与每个结果数据流相关联,所指定的元数据属性的值与数据流语言程序的最后分组命令相关联。本说明书中描述的特征和优点并非全部包括,并且具体地,考虑到附图、说明书和权利要求书,许多附加特征和优点对于本领域普通技术人员将是明显的。而且,应当指出,说明书中所使用的语言主要出于可读性和指导的目的而被选择,并且可能没有被选择来描绘或限制所公开的主题。附图说明所公开的实施例具有根据具体实施方式、所附权利要求和附图(或图)将更容易显而易见的其他优点和特征。下文简要介绍这些附图。图1示出了根据实施例的用于基于仪器化软件来报告的整体系统环境。图2示出了根据实施例的用于执行用于处理从仪器化软件接收的数据流的数据流语言程序的系统的架构。图3示出了根据实施例的用于处理数据流语言程序的块的数据流语言处理器的架构。图4示出了根据实施例的用于说明数据流语言的特征的数据流语言程序的示例。图5示出了根据实施例的用于基于数本文档来自技高网
...
用于分析仪器化软件的数据流处理语言

【技术保护点】
一种用于检测数据流中的异常的方法,所述方法包括:接收数据流语言程序的指令,包括:阈值块,被配置成接收第一输入和第二输入,所述第一输入包括具有数据值的多个数据流,并且所述第二输入包括具有阈值的多个数据流;第一指令集合,用于生成所述阈值块的所述第一输入;以及第二指令集合,用于生成所述阈值块的所述第二输入;接收输入数据流集合;以及执行所述第一指令集合以聚合所述输入数据流集合的数据,以生成第一多个数据流,所述第一多个数据流包括作为所述阈值块的所述第一输入而被提供的数据值;执行所述第二指令集合以聚合所述输入数据流集合的数据,以生成第二多个数据流,所述第二多个数据流包括作为所述阈值块的所述第二输入而被提供的阈值;将来自所述第一多个数据流的数据流与来自所述第二多个数据流的数据流进行匹配,以标识对应的数据流;以及对于所述第一多个数据流中的每个数据流:将所述数据流的数据值与来自所述第二多个数据流的对应数据流的阈值进行比较;以及基于所述数据值和所述阈值的比较的结果,来确定是否生成事件。

【技术特征摘要】
【国外来华专利技术】2014.12.19 US 62/094,935;2015.12.15 US 14/970,454;1.一种用于检测数据流中的异常的方法,所述方法包括:接收数据流语言程序的指令,包括:阈值块,被配置成接收第一输入和第二输入,所述第一输入包括具有数据值的多个数据流,并且所述第二输入包括具有阈值的多个数据流;第一指令集合,用于生成所述阈值块的所述第一输入;以及第二指令集合,用于生成所述阈值块的所述第二输入;接收输入数据流集合;以及执行所述第一指令集合以聚合所述输入数据流集合的数据,以生成第一多个数据流,所述第一多个数据流包括作为所述阈值块的所述第一输入而被提供的数据值;执行所述第二指令集合以聚合所述输入数据流集合的数据,以生成第二多个数据流,所述第二多个数据流包括作为所述阈值块的所述第二输入而被提供的阈值;将来自所述第一多个数据流的数据流与来自所述第二多个数据流的数据流进行匹配,以标识对应的数据流;以及对于所述第一多个数据流中的每个数据流:将所述数据流的数据值与来自所述第二多个数据流的对应数据流的阈值进行比较;以及基于所述数据值和所述阈值的比较的结果,来确定是否生成事件。2.根据权利要求1所述的方法,确定是否生成事件包括:如果所述比较指示所述输入组的数据流的所述数据超过来自所述第二多个数据流的所述对应数据流的阈值,则生成事件。3.根据权利要求1所述的方法,其中执行所述第一指令集合以聚合所述输入数据流集合的所述数据包括:基于第一元数据属性集合来编组所述输入数据流集合,并且执行所述第二指令集合来聚合所述输入数据流集合的所述数据包括:基于第二元数据属性集合来编组所述输入数据流集合。4.根据权利要求3所述的方法,其中所述第一多个数据流中的每个数据流与所述第一元数据属性集合的第一值集合相关联,所述第二多个数据流中的每个数据流与所述第二元数据属性集合的第二值集合相关联。5.根据权利要求1所述的方法,其中将来自所述第一多个数据流的数据流与来自所述第二多个数据流的数据流进行匹配包括:将来自所述第一值集合的值与来自所述第二值集合的值进行比较。6.根据权利要求1所述的方法,其中所述第二多个数据流的所述数据流的所述阈值是高阈值,并且如果所述第一多个数据流中的数据流的所述数据超过来自所述第二多个数据流的对应数据流的阈值,则事件被生成。7.根据权利要求1所述的方法,其中所述第二多个数据流的所述数据流的所述阈值为低阈值,并且如果所述第一多个数据流中的数据流的所述数据被确定为低于来自所述第二多个数据流的对应数据流的阈值,则事件被生成。8.根据权利要求1所述的方法,其中所述第二元数据属性集合是所述第一元数据属性集合的子集。9.根据权利要求1所述的方法,其中所述第一多个数据流中的数据流的数目取决于与所述输入数据流集合的所述数据流相关联的所述第一元数据属性集合的独特值的数目,并且其中所述第二多个数据流中的数据流的数目取决于与所述输入数据流集合的所述数据流相关联的所述第二元数据属性集合的独特值的数目。10.根据权利要求1所述的方法,其中所述第二指令集合包括窗口指令,以基于预定大小的移动窗口来确定移动聚合值。11.根据权利要求1所述的方法,其中所述阈值块与阈值窗口大小相关联,其中如果对于所述阈值窗口大小的窗口中出现的所有数据点,来自所述第一多个数据流组的数据流的数据值超过来自所述第二多个数据流的所述匹配数据流的所述数据值,则所述事件被生成。12.根据权利要求11所述的方法,其中所述阈值块还与分数参数相关联,其中如果对于所述阈值窗口大小的窗口中出现的大于所述分数的数据点,来自所述第一多个数据流的数据流的所述数据值大于来自所述第二多个数据流的所述匹配数据流的所述数据值,则所述事件被生成。13.根据权利要求11所述的方法,其中所述阈值块还与分数参数相关联,其中如果对于超过所述分数的所述阈值窗口大小的窗口的持续时间,来自所述输入组的数据流的所述数据值大于来自所述第二多个数据流的所述匹配数据流的所述数据值,则所述事件被生成。14.根据权利要求1所述的方法,还包括:确定所述第一多个数据流中的每个数据流在所述第二多个数据流中是否具有匹配数据流;以及如果所述第一多个数据流中的至少一个数据流在所述第二多个数据流中没有匹配数据流,则发送错误消息。15.根据权利要求1所述的方法,其中用于所述第一多个数据流的第一子集的事件被生成,但是用于所述第一多个数据流的第二子集的事件没有被生成。16.根据权利要求1所述的方法,其中所述第一多个数据流和所述第二多个数据流中的所述数据流作为所述数据流集合中的改变的结果而动态改变。17.根据权利要求1所述的方法,其中所述第一多个数据流和所述第二多个数据流中的所述数据流作为描述数据流的所述元数据属性值的改变的结果而动态改变。18.根据权利要求1所述的方法,其中所述输入数据流集合中的所述数据流从在外部系统上执行的仪器化软件或数据流语言程序的执行结果中的一个或多个来接收。19.一种计算机可读非暂态存储介质,存储指令用于:接收数据流语言程序的指令,包括:阈值块,被配置成接收第一输入和第二输入,所述第一输入包括具有数据值的多个数据流,并且所述第二输入包括具有阈值的多个数据流;第一指令集合,用于生成所述阈值块的所述第一输入;以及第二指令集合,用于生成所述阈值块的所述第二输入;接收输入数据流集合;以及执行所述第一指令集合以聚合所述输入数据流集合的数据,以生成第一多个数据流,所述第一多个数据流包括作为所述阈值块的所述第一输入而被提供的数据值;执行所述第二指令集合以聚合所述输入数据流集合的数据,以生成第二多个数据流,所述第二多个数据流包括作为所述阈值块的所述第二输入而被提供的阈值;将来自所述第一多个数据流的数据流与来自所述第二多个数据流的数据流进行匹配,以标识对应的数据流;以及对于所述第一多个数据流中的每个数据流:将所述数据流的数据值与来自所述第二多个数据流的对应数据流的阈值进行比较;以及基于所述数据值和所述阈值的比较的结果,来确定是否生成事件。20.一种计算机系统,包括:计算机处理器;以及计算机可读非暂态存储介质,存储指令用于:接收数据流语言程序的指令,包括:阈值块,被配置成接收第一输入和第二输入,所述第一输入包括具有数据值的多个数据流,并且所述第二输入包括具有阈值的多个数据流;第一指令集合,用于生成所述阈值块的所述第一输入;以及第二指令集合,用于生成所述阈值块的所述第二输入;接收输入数据流集合;以及执行所述第一指令集合以聚合所述输入数据流集合的数据,以生成第一多个数据流,所述第一多个数据流包括作为所述阈值块的所述第一输入而被提供的数据值;执行所述第二指令集合以聚合所述输入数据流集合的数据,以生成第二多个数据流,所述第二多个数据流包括作为所述阈值块的所述第二输入而被提供的阈值;将来自所述第一多个数据流的数据流与来自所述第二多个数据流的数据流进行匹配,以标识对应的数据流;以及对于所述第一多个数据流中的每个数据流:将所述数据流的数据值与来自所述第二多个数据流的对应数据流的阈值进行比较;以及基于所述数据值和所述阈值的比较的结果,来确定是否生成事件。21.一种使用数据流语言程序来处理动态改变的数据流集合的方法,所述方法包括:通过仪器化分析系统存储描述多个数据流的元数据;接收包括使用数据流语言指定的指令集合的数据流语言程序,所述指令包括与搜索表达式相关联的查找块,所述搜索表达式基于与数据流相关联的元数据属性;评价所述搜索表达式,以从所述多个数据流中标识符合所述搜索表达式的数据流集合;以及重复执行所述数据流语言程序,所述执行包括:从所标识的数据流集合的每个数据流接收数据值;执行所述数据流语言程序的每个块;基于所述执行来生成一个或多个结果数据值,所述结果值与由所述数据流语言程序生成的结果数据流相对应;以及存储所述一个或多个结果数据值。22.根据权利要求21所述的方法,其中在所述数据流语言程序的所述执行期间,所述搜索表达式被重复评价。23.根据权利要求22所述的方法,其中在第一时间间隔期间被评价的所标识的数据流集合有别于在第二时间间隔期间被评价的所标识的数据流集合。24.根据权利要求22所述的方法,其中所述查找块与周期性相关联,并且针对基于与所述查找块相关联的周期性而确定的每个时间间隔,所述搜索表达式被周期性地评价。25.根据权利要求22所述的方法,其中响应于与所述数据流相关联的元数据的改变,所述搜索表达式被评价。26.根据权利要求22所述的方法,其中响应于所述多个数据流的改变,所述搜索表达式被评价,所述改变包括数据流的添加或数据流的删除。27.根据权利要求22所述的方法,其中响应于所述搜索表达式的指定的改变,所述搜索表达式被评价。28.根据权利要求27所述的方法,其中执行所述查找块的速率与执行所述数据流语言程序的一个或多个其他块的速率不同。29.根据权利要求21所述的方法,其中所述多个数据流包括从外部系统接收的数据流。30.根据权利要求21所述的方法,其中所述多个数据流包括作为另一数据流语言程序的执行结果而生成...

【专利技术属性】
技术研发人员:R·拉曼A·穆科赫基K·格兰迪P·刘
申请(专利权)人:信号公司
类型:发明
国别省市:美国,US

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

1