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

基于软件的仪器化的实时报告制造技术

技术编号:15529568 阅读:68 留言:0更新日期:2017-06-04 16:53
数据分析系统处理由仪器化软件生成的数据。数据分析系统接收由在系统上执行的仪器化软件的实例生成的数据流。数据分析系统还接收描述数据流的元数据。数据分析系统基于元数据接收表达式。数据分析系统接收每个时间间隔的数据流的数据,并且根据接收到的数据值计算表达式的结果。数据分析系统对每个时间间隔重复这些步骤。数据分析系统可以通过基于针对时间间隔为每个数据流接收的数据生成该时间间隔的聚合值,来量化每个时间间隔的数据流的数据值。数据分析系统使用该时间间隔的量化数据来评估表达式。

Software based instrumentation for real-time reporting

The data analysis system deals with data generated by instrumented software. The data analysis system receives data streams generated by instances of instrumented software executed on the system. The data analysis system also receives metadata describing the data flow. The data analysis system receives expressions based on metadata. The data analysis system receives the data of the data stream at each time interval, and calculates the result of the expression according to the received data value. The data analysis system repeats the steps for each time interval. The data analysis system can quantify the data value of each time interval data stream by aggregated values of the time interval based on the data received for each data stream for each time interval. The data analysis system uses quantitative data at this interval to evaluate the expression.

【技术实现步骤摘要】
【国外来华专利技术】基于软件的仪器化的实时报告
技术介绍
本公开总体上涉及软件的仪器化,并且更具体地涉及基于由仪器化软件生成的数据流的实时报告。软件开发人员通过对代码仪器化来监测他们开发的软件的不同方面。这些方面包括软件的执行、在执行软件期间遇到的错误、在执行软件期间遇到的重大事件、描述代码的哪些部分正在执行以及哪些部分未被执行的信息等等。用于对代码仪器化的传统技术包括用于记录不同类型的信息以在屏幕上记录文件或打印信息的代码中的语句。这种类型的仪器适用于简单应用,例如具有在单个处理器上执行的简单执行流程的应用。然而,这些用于对软件仪器化的技术对于可能分布在多个系统(其中每个系统执行多个执行进程或线程)上的复杂应用是不够的。传统上用于仪器化这种复杂系统的一种技术是在对软件仪器化时使用专家的帮助。某些供应商提供有助于代码的仪器化的专家服务。然而,这些供应商通常提供通常不是非常灵活的标准服务。此外,这些基于供应商的解决方案在供应商对仪器代码所需的时间方面具有显著的开销。因此,这些解决方案适合于缓慢的开发周期,例如一年的开发周期。然而,软件产品的软件开发和发布周期已经变短了。例如,存在几个在线系统,其中软件开发人员每月、每周或甚至每天进行更改并且进行部署。由于基于供应商的仪器解决方案的巨大开销,开发人员发现在快节奏的开发环境中难以使用这些服务。此外,用于对代码仪器化的传统技术在信息的同化、信息的存储和信息的分析以产生报告方面引起显著的延迟。因此,在软件中发生问题的时间与经由代码的仪器化检测到问题的时间之间可能会有显著的延迟。因此,用于基于软件的仪器化来生成报告的传统系统在复杂应用的快节奏开发周期中通常是不够的。
技术实现思路
所描述的实施例处理由仪器化软件生成的数据。软件开发人员经常对通过在软件中包含用于对代码仪器化的代码片段而开发的软件进行仪器化。仪器化软件的实例在执行时生成数据流,并且将数据流发送给系统用于分析。分析仪器化软件的系统接收标识多个数据流的信息,每个数据流包括由仪器化软件的实例生成的数据值。在数据流中接收的数据值包括第一属性集合。系统还接收描述数据流的元数据。元数据规定与第一集合中的属性不同的数据流的属性。系统接收表达式的规定,该表达式跨数据流聚合数据值。表达式包括来自第一集合的一个或多个属性和来自第二集合的一个或多个属性。例如,该表达式可以将通过数据流接收的属性聚合,其通过元数据中规定的属性而被分组。系统通过对每个时间间隔执行以下步骤来在多个时间间隔上处理数据流的数据。系统在每个时间间隔从数据流中接收元组。每个元组包括与时间间隔内的时间点相关联的数据值。系统根据接收的元组的数据值计算表达式。系统对于随后的时间间隔重复这些步骤。在实施例中,系统对于每个时间间隔接收的每个数据流量化数据值,并且基于时间间隔对量化的数据值进行对准。为了量化数据值,对于每个时间间隔,系统基于该时间间隔为每个数据流接收的数据来生成聚合值。系统使用每个时间间隔的量化数据基于元数据来评估表达式。说明书中描述的特征和优点并非全部是包括性的,并且特别地,鉴于附图、说明书和权利要求书,很多附加的特征和优点对于本领域普通技术人员将是显而易见的。此外,应当注意,说明书中使用的语言主要是为了可读性和教示目的而选择的,并且可能没有被选择来描绘或限制所公开的主题。附图说明所公开的实施例具有由于详细描述、所附权利要求以及附图(或图)将更加明显的其他的优点和特征。下面简要介绍附图。图1示出了根据实施例的用于基于仪器化软件的报告的整体系统环境。图2示出了根据实施例的用于基于仪器化软件的报告的系统的架构。图3示出了根据实施例的与从执行的仪器化软件的实例接收的数据流相关联地规定的元数据对象的示例层级。图4示出了根据实施例的与元数据对象的层级相关联的数据流集合。图5示出了根据实施例的用于基于仪器化软件来生成报告的整体过程。图6示出了根据实施例的从仪器化软件接收的数据流的量化过程。图7示出了根据实施例的用于组合从各种源接收的数据流的数据的整体过程。现在将详细参考其示例在附图中示出的几个实施例的示例。值得注意的是,只要在可行的情况下,附图中可以使用类似或相似的附图标记,并且指示类似或相似的功能。附图仅出于说明的目的描绘了所公开的系统(或方法)的实施例。本领域技术人员将从以下描述中容易地认识到,在不背离本文中所描述的原理的情况下,可以采用本文中所描述的结构和方法的替代实施例。具体实施方式整体系统环境图1示出了根据实施例的基于仪器化软件的报告的整体系统环境。整体系统环境包括仪器分析系统100、一个或多个开发系统120、管理系统160和报告系统150。在其他实施例中,可以使用与图1中所示的部件相比更多或更少的部件。例如,开发系统120、管理系统160和报告系统150可以经由网络(图1中未示出)与仪器分析系统100交互。此外,图1所示的每个系统可能存在或多或少的实例,例如,可以存在多个报告系统150。图1和其它附图使用相同的附图标记来标识相同的元件。诸如“130a”等在附图标记之后的字母表示文本具体涉及具有该特定附图标记的元素。在没有后面的字母的文本中,如“130”等附图标记是指具有图中承载该附图标记的任何或所有元素(例如,“130”在文本中是指图中的附图标记“130a”和/或“130b”)。仪器分析系统100接收包括由不同开发系统120发送的度量的值的数据(仪器分析系统100在本文中也可以被称为分析系统或数据分析系统;开发系统在本文中也可以被称为外部系统)。开发系统120执行已经被仪器化的软件,例如应用130。尽管在图1中将应用130示出为仪器化软件的示例,但是本文中所公开的技术不限于应用软件,而是适用于其他类型的软件,例如服务器软件、在客户端设备上执行的软件、网站等。在开发系统120上执行的软件被配置为将由于对软件仪器化而生成的信息发送给仪器分析系统100。例如,应用130可以周期性地向仪器分析系统100发送数据。不同的应用130可以以不同的速率发送相同的度量或不同的度量。相同的应用可以以不同的速率发送不同的度量。应用将数据流形式的数据发送给仪器分析系统100。数据流在本文中也称为时间序列。应用130通过调用由仪器分析系统100支持的应用编程接口(API)来将数据发送给仪器分析系统100。应用130(或任何其他软件)可以被仪器化以向应用添加计数器或测量仪。计数器包括存储在软件中发生特定事件时递增的值的指令。计数器可以用于确定代码的特定部分被执行的次数,例如函数或方法、条件代码的特定分支、异常、循环等。通常,计数器值单调地变化,例如,计数器值可以单调增加,或者计数器值可以单调减小。可以比较计数器的值以确定在两个不同时间点的特定计数器值的变化。例如,可以通过计算从t1到t2的相应计数器值的变化,来确定特定事件在时间t1和t2之间的时间间隔内发生的次数。应用130调用仪器分析系统100的API,以周期性地将计数器的当前值发送给仪器分析系统100。以下是应用130的仪器化代码的示例。被包括在被仪器化的代码中的以下指令创建用于跟踪动作或实体的计数的计数器对象。counter1=createCounter(source=“web1”,metric=“metric1”);上述指令创建计数本文档来自技高网
...
基于软件的仪器化的实时报告

【技术保护点】
一种用于处理由仪器化软件生成的数据的方法,所述方法包括:从一个或多个外部系统接收标识多个数据流的信息,每个数据流由在所述一个或多个外部系统上执行的仪器化软件的实例生成,每个数据流包括元组,每个元组包括所述数据流的属性的第一集合的值;接收描述所述多个数据流中的每个数据流的元数据,数据流的所述元数据包括属性的第二集合,所述第二集合中的每个属性不同于所述第一集合;接收表达式的规定,所述表达式跨所述多个数据流来聚合数据,所述表达式至少基于所述第一集合中的属性和所述第二集合中的属性;以及使用所述数据流在多个时间间隔上评估所述表达式,以生成输出数据流。

【技术特征摘要】
【国外来华专利技术】2014.10.08 US 62/061,616;2015.07.15 US 14/800,677;1.一种用于处理由仪器化软件生成的数据的方法,所述方法包括:从一个或多个外部系统接收标识多个数据流的信息,每个数据流由在所述一个或多个外部系统上执行的仪器化软件的实例生成,每个数据流包括元组,每个元组包括所述数据流的属性的第一集合的值;接收描述所述多个数据流中的每个数据流的元数据,数据流的所述元数据包括属性的第二集合,所述第二集合中的每个属性不同于所述第一集合;接收表达式的规定,所述表达式跨所述多个数据流来聚合数据,所述表达式至少基于所述第一集合中的属性和所述第二集合中的属性;以及使用所述数据流在多个时间间隔上评估所述表达式,以生成输出数据流。2.根据权利要求1所述的方法,其中对于每个时间间隔,所述表达式的所述评估包括:从所述多个数据流接收一个或多个元组,每个元组包括与时间点相关联的数据值,基于所接收的元组的所述数据值来确定所述表达式的值,以及提供所述表达式的所述值用于所述输出数据流。3.根据权利要求1所述的方法,其中评估所述表达式包括聚合所述数据流的数据值,每个数据值与所述时间间隔相关联,其中所述表达式规定确定属于所述属性的第一集合的第一属性的聚合值,所述聚合值通过属于所述属性的第二集合的第二属性被分组,其中评估所述表达式包括生成多个输出数据流,所述多个输出数据流中的每个输出数据流对应于所述第二属性的值。4.根据权利要求3所述的方法,其中评估所述表达式包括在第一时间间隔生成第一多个输出流、并且在第二时间间隔生成第二多个输出流。5.根据权利要求1所述的方法,还包括:在第一时间间隔期间接收第一数据流集合;通过使用所述第一数据流集合评估所述表达式来生成第一多个输出数据流;在第二时间间隔期间接收第二数据流集合;以及通过使用所述第二数据流集合评估所述表达式来生成第二多个输出数据流。6.根据权利要求1所述的方法,其中通过由所述仪器化软件执行的指令来生成每个数据流的数据,所述指令与计数器或测量仪中的一项相关联。7.根据权利要求1所述的方法,还包括:接收修改与数据流相关联的元数据的指令;以及对于随后的时间间隔,对于每个时间间隔:基于已修改的元数据来计算所述表达式的值,以及基于已修改的元数据来存储所述表达式的计算的所述值。8.根据权利要求1所述的方法,其中接收描述数据流的元数据包括:接收描述元数据对象的信息,每个元数据对象与一个或多个属性相关联,每个属性包括名称和值,以及接收描述元数据对象之间的关联的信息以及标识数据流的信息。9.根据权利要求8所述的方法,其中多个元数据对象被组织为层级,其中所述层级至少包括与第二元数据对象相关的第一元数据对象,其中所述第一元数据对象在所述层级中、在所述第二元数据对象之上,所述方法包括:在所述第二元数据对象中包括第一元数据对象的属性。10.根据权利要求9所述的方法,其中多个元数据对象被组织为层级,并且元数据对象包括在所述层级中、在所述元数据对象之上的元数据对象的属性。11.根据权利要求10所述的方法,还包括:接收标识与所述层级的一个或多个元数据对象相关联的数据流集合的信息;以及通过包括与在所述层级中、在元数据对象下面的一个或多个元数据对象相关联的数据流,来确定与所述元数据对象相关联的数据流集合。12.根据权利要求10所述的方法,还包括:接收标识与所述层级中的一个或多个元数据对象相关联的数据流集合的信息;以及基于与在所述层级中、在元数据对象下面的所有元数据对象相关联的数据流集合的并集,来确定与所述元数据对象相关联的数据流集合。13.根据权利要求1所述的方法,其中每个数据流提供度量的值,所述值以可变的时间间隔生成,所述方法还包括:对于每个数据流,标识用于聚合所述数据流的所述度量的值的函数;基于所述数据流来生成多个量化数据流,每个量化数据流包括以固定时间间隔周期性地出现...

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

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

1