动态图的性能监视的制作方法_3

文档序号:9221615阅读:来源:国知局
[0051]当运行-微型图组件,例如图2中的运行-微型图组件210,执行微型图时,表400可以被更新。在这个示例中,表400可以基于由数据记录412代表的、对“取消信用卡”微型图的新的调用而被更新。该新的调用包括0.04秒的处理器时间和0.10秒的经过的时间。
[0052]“取消信用卡”行410从表400被读取,并且使用来自新的调用的信息来更新。在这个示例中,“取消信用卡”微型图的累计性能度量包括通过32次调用的、1.23秒的处理器时间和2.62秒的经过的时间。在新的记录被添加之后,已更新的取消信用卡行410包括通过33次调用的、1.27秒的处理器时间(1.23秒+0.04秒)和2.72秒的经过的时间。
[0053]以这种方式,性能度量可以在微型图的执行期间被聚合。聚合性能度量可以具有如下益处,使得存储和管理表400所需的存储器开销的数量最小化。
[0054]由于相同数据流图的不同实例可以被并行地执行,所以聚合性能度量进一步被复杂化。例如,多个不同机器可以并发地执行和收集同一数据流图的不同实例的性能度量。
[0055]图5示出其中运行微型图组件并行执行的示例环境。运行微型图组件的每个实例可以在一个机器、虚拟机器、处理器等等上被执行。
[0056]在这个示例中,分割元件502在运行微型图组件的多个实例210a、210b和210c之间划分输入记录的流(flow)。当运行微型图组件处理输入记录并产生输出记录时,输出记录被聚集元件504收集。
[0057]每个运行微型图组件的性能度量可以被传递到数据存储库220并且跨越每个并行实例被聚合,或者可以针对每个并行实例独立地被存储。在一些实现中,每个并行实例的性能度量可以被存储在位于同一机器或设备上的独立数据存储库中,作为运行-微型图的实例。
[0058]作为子图,每个微型图可以包括多个单独组件,它们使用数据记录来执行一个或多个不同的操作。在一些实现中,微型图可以被仪器化(instrumented)以报告与该微型图的各个组件的性能有关的另外的信息(例如更详细的信息)。图6示出“提高信用额度”事务的微型图的示例。
[0059]在这个示例中,“提高信用额度”微型图602在输入端口 604上接受输入记录。“提高信用额度”微型图602包括多个组件,诸如获得历史组件606,其获得请求提高信用额度的用户的支付历史;信用检查组件608,其检查用户的信用;选择额度组件610,其基于所述历史和信用检查来选择新的信用额度;以及更新记录组件612,其用新的信用额度来更新或创建输出记录。该输出记录被提供在微型图602的输出端口 614上。
[0060]微型图602可以在性能监视输出端口 616上报告它的构成组件的性能特性。例如,“提高信用额度”微型图612可以报告获得历史组件606、信用检查组件608、选择额度组件610、以及更新记录组件612的处理器时间和经过的时间。运行微型图组件(未示出)可以基于以上所描述的聚合方案来收集和报告这些性能度量。
[0061]在一些实现中,运行微型图组件可以请求微型图的构成组件的列表,例如,通过经由专用输入端口(未示出)发送消息。该运行微型图组件可以在性能监视输出端口 616上提供组件的列表。例如,响应于来自运行微型图组件(未示出)的请求,“提高信用额度”微型图可以在性能度量端口上提供逗号分隔的列表“获得历史、检查信用、选择额度、更新记录”。
[0062]在一些实现中,运行微型图组件维护先前被加载的微型图的记录。当微型图被加载时,运行微型图组件可以确定该微型图之前是否已被加载过。若该微型图之前没有被加载过,那么运行微型图组件请求该微型图的构成组件的列表。这些构成组件的标识可以被存储在数据存储库中。
[0063]一旦性能度量被存储在持久数据存储库中,例如图2中的持久数据存储库224,性能监视应用就可以访问并使用所存储的性能度量。通常,性能监视应用以帮助用户理解度量的方式来向用户呈现所收集的度量。
[0064]图7示出用于向用户呈现所收集的性能度量的系统的示例用户接口。在这个示例中,用户接口 700在用户接口的部分702中呈现数据的汇总(summary)。用户接口 700可以以一个或多个形式来呈现,诸如不同类型的基于网络的资源(asset),例如在用户的计算机系统的网页浏览器中显示的网页。
[0065]监视器选择器714使得用户能够动态地确定是否监视微型图的执行。在一些实现中,若用户选择不监控微型图的执行,那么不收集性能度量。监视器选择器714还可以允许用户选择如何聚合性能度量。例如,用户可以选择按微型图名称来汇总微型图的性能度量、跨越所有微型图来汇总性能度量、仅存储每个微型图的最近执行、或者保存微型图的每个执行的细节。
[0066]通常,任务(job)是指由一个或多个数据流图来处理一组数据记录。对于每个任务,性能度量可以被不同地汇总。例如,一个微型图716(标题为“mg_runner_all.mp”)跨越所有微型图执行被汇总。另一微型图718(标题为“mg_runner_name.mp”)按它的微型图名称被汇总。又一微型图720(标题为“mg_runner.mp”)分别地记录每个执行的性能度量。
[0067]每个微型图的性能度量可以从在持久数据存储库中存储的性能度量中获得。例如,开始时间708和经过的时间710,以及使用的总处理器时间712被报告。
[0068]在一些实现中,用户接口允许用户扩展和查看具体任务、微型图等的细节。图8示出显示微型图的示例用户接口 800。在这个示例中,重新格式化的微型图804被显示。还显示了,用于向重新格式化的微型图804提供输入记录的输入端口 802以及用于从重新格式化的微型图804获得输出记录的输出端口 806。
[0069]性能度量被整合到该用户接口中。在这个示例中,该用户接口显示了已被提供(808)给该微型图的一个记录以及由该微型图已经产生(810)的一个记录。
[0070]图9示出显示另外的性能度量的示例用户接口。用户接口 900以表格形式呈现被聚合的性能度量。度量列902列出度量的名称,并且,值列904提供该度量的相应值。单位列906提供定义该值904的单位。度量的列表中包括微型图被执行的次数,以及有多少次微型图无法成功地完成执行。
[0071]图10是收集性能度量的示例过程的流程图。该过程1000可以由包括例如图1中的执行模块104的执行模块的一个或多个计算机系统来执行。简单起见,该过程将相对于执行该过程的系统来描述。
[0072]接收作业的多个单元,1002。作业的单元可以由数据流图的组件来接收。作业的单元可以包括零个或更多个输入数据记录。这些输入数据记录可以从数据存储库提供,或者从数据流图中的在先组件的输出端口来提供。
[0073]作业的单元的特性被确定,1004。特性可以是输入数据记录之一的字段中存储的一个或多个值。例如,特性可以是标识将被数据流图的组件所执行的操作的字段中的值。
[0074]微型图基于该特性被识别,1006。例如,该过程可以识别执行由所述字段标识的操作的微型图。微型图可以通过将作业的单元的特性与可用微型图的列表进行比较来识别,例如通过使用查找表、字典或类似的数据结构。
[0075]被识别出的数据流图被加载,1008。运行微型图组件可以加载该数据流图。微型图可以是,例如在数据存储库中存储的数据流图。微型图可以被配置为由数据流图的组件,例如图2中的运行微型图组件,来加载和执行。在一些布置中,微型图在从数据存储系统被加载时保持未编译的形式。在一些布置中,微型图在被存储到数据存储系统之前被序列化。通常,序列化是如下过程,即,通过序列化,已编译或未编译形式的数据流图被翻译为O和I的二进制流,从而数据流图处于能够容易地被存储在数据存储库中的形式。
[0076]作业的单元使用所识别的数据流图来处理,1lOo在一些实现中,作业的单元被提供在识别出的微型图的输入端口上。所生成的输出记录,如果有的话,通过识别出的微型图的输出端口来提供。
[0077]一个或多个性能度量被确定,1012。性能度量可以由运行微型图组件来确定,或者微型图可以被仪表化(instrumented)以在该微型图的专用的输出端口上提供性能度量。
[0078]以上描述的性能监视方法可以使用在计算机上执行的软件来实现。例如,该软件在一个或多个被编程或可编程的计算机系统(其可以是各种架构的,诸如分布式、客户端/服务器,或网格)上执
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1