跟踪作为服务的制作方法_3

文档序号:9401929阅读:来源:国知局
存储212可以是只读、或能够读/写。在一些实施例中,非易失性存储212可以是基于云的网络存储或可通过网络连接访问的其他存储。
[0097]用户接口 214可以是能够显示输出并且从用户接收输入的任何类型的硬件。在许多情况下,输出显示可以是图形显示监视器,但是输出设备可包括灯光和其他视觉输出、音频输出、动力致动器输出、以及其他输出设备。常规输入设备可包括键盘和定点设备,诸如鼠标、指示笔、跟踪球、或其他定点设备。其他输入设备可包括各种传感器,包括生物测定输入设备、音频和视频输入设备、以及其他传感器。
[0098]网络接口 216可以是到另一计算机的任何类型的连接。在许多实施例中,网络接口 216可以是有线以太网连接。其他实施例可包括基于各种通信协议的有线或无线连接。
[0099]客户端202可以包括可执行各种应用254的操作系统218。在某些实施例中,执行环境220可执行应用254。在任一情况中,操作系统218或执行环境220可通过管理由用于254消耗的资源并控制执行来管理应用254的执行。
[0100]由操作系统218或执行环境220管理的资源可以是存储器资源、网络资源、输入/输出资源、处理器资源、和其它资源。操作系统218或执行环境220可分配存储器、执行垃圾收集、安排处理器可用性、赋予存储资源优先级及分配存储资源、以及其它功能。在某些实施例中,该执行环境220可以被称作虚拟机。
[0101]跟踪器222和224可在操作系统218或执行环境220内操作。跟踪器222和224可监视应用254的执行并收集各种信息,包括执行数据、操作数据、调试数据、和其它类型的信息。在很多情况中,跟踪器222和224可被暴露给可由应用254处理的敏感数据。
[0102]原始跟踪数据226可以是跟踪器222或224收集的数据。原始跟踪数据226可包括由应用254处理的数据元素,以及对应用元素的引用,诸如函数名和其它描述符。
[0103]模糊器228可处理原始跟踪数据以创建经模糊的跟踪数据230。模糊器228可使用各种机制来模糊原始跟踪数据226的一些或全部。在某些情况中,仅特定元素可被模糊,而原始跟踪数据226中的其它元素可维持在明文格式。
[0104]在某些实施例中,源代码分析器252可创建一组源代码注释254。源代码注释254可被用来以有意义的函数名和其它信息来装饰原始跟踪数据226。
[0105]源代码注释254可以是注释、标记、标签、或可从源代码取得的其它信息。这样的信息可由编译器、调试工具、或其它源创建。在某些情况中,源代码注释254可由专用源代码分析器252创建。通信代理232可将经模糊的跟踪数据230发送到远程设备240用以处理。远程设备240可位于可由防火墙236以及其它安全措施保护的安全环境之外。通信代理232可将经模糊的跟踪数据230通过防火墙236和网络238发送到远程设备240。
[0106]远程设备240可在硬件平台242上操作。硬件平台242可类似于硬件平台204。在某些实例中,硬件平台242可以是虚拟机、云计算系统、计算群集、或某些其它执行环境。
[0107]通信代理246可从设备202接收经模糊的跟踪数据230并处理经模糊的跟踪数据230。分析器248可针对经模糊的跟踪数据244执行分析以生成各种分析结果,该结果可以是调试和执行信息、优化信息、或任何其它类型的分析结果。
[0108]经模糊的跟踪数据244可包含来自多个设备202的跟踪数据。在某些实施例中,来自两个或更多个设备的跟踪数据可被组合,以创建比可能仅从一个设备创建的跟踪数据更为复杂的跟踪数据集。
[0109]在某些实施例中,来自远程设备240的结果可被发送到设备202以用于进一步检查和使用。在这样的实施例中,查找数据库234可用经模糊的和原始数据元素填充。在从远程设备240接收到结果时,查找数据234可被用来从经模糊的结果转换到更有意义的结果O
[0110]图3是示出用于安装并监视可执行代码的方法的实施例300的流程图示。实施例300在左列示出了客户端设备302的操作在右列示出了远程设备304的操作。
[0111]其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。实施例300示出了安全位置中的设备302和可能在安全位置外的远程设备304之间的交互。跟踪数据在设备302上被收集、模糊、并被发送到远程设备304。远程设备304可仅处理经模糊的数据来创建特定结果,该结果被返回设备302并被去模糊。
[0112]在设备302上,应用可在框306中执行。当应用执行时,跟踪数据可在框308中收集。参数的一些或全部可使用散列、加密、查找表、随机化、或其它模糊技术来被模糊。
[0113]经模糊的数据可在框312中被发送到远程设备304,远程设备304可在框314中接收经模糊的数据。
[0114]远程设备304可在框316中对经模糊的跟踪数据执行分析以在框318中生成分析结果。分析结果可在框320中被发送到设备302,设备302可在框322中接收分析结果。
[0115]设备302可在框324中对数据去模糊以在框326中对分析结果动作。在框324中的去模糊可采用从计算自经模糊的数据的结果来确定原始、初始值的机制。
[0116]图4是示出并行跟踪系统的实施例400的图示。实施例400示出了具有分发器的系统的高级视图,分发器可将工作的各单元发送到不同系统,所述不同的系统包括用于性能测量以及细化的检测或剖析的系统。
[0117]实施例400可以是其中工作的各单元可在不同环境中执行的系统的示例,其可包括在没有检测下的执行、执行级检测、以及细化的检测。在许多情况中,增加检测的级别可导致性能下降。然而,更完整的有关应用的理解可将执行和细化检测结果两者组合。通过从两个不同环境收集跟踪数据,执行相关数据可不受细化跟踪的影响。
[0118]工作的单个单元可被两个不同系统分析。在这样的系统中,执行结果和细化跟踪结果可针对工作的那些单元被组合。这样的系统可用标识符对跟踪结果做标记,该标识符可以允许聚集器将结果匹配到工作的同一单元。
[0119]在其它实施例中,工作的单个单元可仅被分析一次。在这样的系统中,执行和细化分析的结果可被组合以给出整体图片,而不需要能够直接对比工作的各个单元。例如,在工作负载到每类分析的分发可具有统计上正态分布时,这样的图片可以是统计上显著的。
[0120]请求者42可向分发器406发送请求404。请求404可以是要由执行环境的群集处理的工作负载。在一个示例中,请求404可以是对应用编程接口的调用,其中应用编程接口可由计算群集来执行。在另一示例中,请求404可以是高性能计算系统内的工作负载。在又一个实施例中,请求404可以是计算机应用内的函数或方法调用。
[0121]分发器406可分析请求404以确定如何路由请求404。在实施例400的示例中,请求404可被路由到未检测系统410、经执行检测的系统412、或详细检测的系统414。其它实施例可具有能够执行请求404的更多或更少的系统。
[0122]分发器406可具有那个定义分发器406可如何执行其分发功能的配置408。配置408可具有其下细化的或执行跟踪可被执行的条件,以及定义何时无跟踪可执行的条件。
[0123]条件408可包含过滤器,其将检测限制为仅针对可用请求的子集。过滤器或目标可定义与输入流、采样频率相关的参数、或可定义检测如何发生及何时发生的其它参数。目标可定义检测粒度,诸如功能组件、函数、处理、存储器对象、或数据收集的细节的其它级另O。作为与输入流相关的参数的示例,条件408可指示检测可在包含具有特定值或值的范围的特定变量的请求时执行。其它类型的配置定义的示例可为可能被检测的请求定义采样频率。
[0124]未检测系统410可用很少的或无跟踪或检测来处理请求404。在很多情况中,未检测410可包含可监视系统的状态或其它行为的最少检测。未检测系统410不能够生成可用从其它经检测系统收集的数据来分析的检测结果。
[0125]经执行检测的系统412可在收集性能相关度量时处理请求404。检测可被设计以具有对系统性能的最小影响,使得性能度量可被认为是精确的。
[0126]经细化检测的系统414可在收集细化操作信息时处理请求404。在许多情况中,这样的系统可跟踪函数调用、收集进程和函数之间传递的数据对象、收集作为执行期间的特定点的对象值、和其它数据。在许多情况中,经细化检测的系统414可能比执行系统412显著地慢。
[0127]在实施例400的示例中,三个系统被示为处理请求404。在某些实施例中,这样的设备可以是具有相同或不同软件组件的相同的硬件设备,而在其它实施例中,可使用具有不同硬件或软件组件的不同设备。这样不相同的系统可具有设计用于高性能、细化检测或其它功能的专用硬件或软件组件。
[0128]应用输出416可从执行请求404的各系统被接收。应用输出416可被返回到请求者 402。
[0129]在两个系统执行相同请求的情况中,应用输出416可被比较以确定两个系统是否收集了相同输出。在某些实施例中,当两个并行设备收集相同输出时,输出可被看成是可靠的或实体化的。当来自两个系统的输出不相同时,输出值之一可被选择、值被平均、或采取其它动作。
[0130]结果组合器418可从经执行检测的系统412和经细化检测的系统414两者收集跟踪数据,并将结果存储在一组检测结果420中。在某些情况中,结果组合器418可将在两个或更多个不同跟踪数据间的特定执行运行或特征进行匹配。可在本说明书的稍后处找出这样的匹配的示例。
[0131]图5是示出其中不同执行系统可生成不同级别的跟踪数据的网络环境的实施例500的图示。实施例500示出可实现实施例400以及其他实施例中描述的操作的某些的硬件组件。
[0132]图5的图示出了系统的功能组件。在一些情况下,组件可以是硬件组件、软件组件、或者硬件和软件的组合。一些组件可以是应用级软件,而其他组件可以是执行环境级组件。在一些情况下,一个组件到另一组件的连接可以是紧密连接,其中两个或更多个组件在单个硬件平台上操作。在其他情况下,连接可通过跨长距离的网络连接来进行。每个实施例都可使用不同的硬件、软件、以及互连架构来实现所描述的功能。
[0133]实施例500示出了处理通过外部网络504从请求者502接收到的请求系统的示例。分发器系统506可解析进入的请求流并导致各种执行系统520执行请求。对请求的应用输出或响应可被传回请求者502,而从执行系统520收集的任何跟踪数据可被存储并由分析系统552使用。
[0134]实施例500中所示的各种设备的每一个可具有硬件平台。相应的硬件平台可类似于实施例100中的硬件平台100。设备可以是任何类型的硬件平台,诸如个人计算机、服务器计算机、游戏控制台、平板计算机、移动电话、或具有可编程处理器的任何其它设备。
[0135]分发器系统506可接收并解析输入流,接着将工作的各单元引导到各种执行系统520。分发器系统506可操作在硬件平台508上并包含经由外部接口 512接收工作请求的分发器510。分发器510可具有跟踪配置514和定义工作的各单元如何分发的分发配置516。
[0136]跟踪配置514可定义算法、条件、或可定义如何及合适收集检测数据的其它条件。跟踪配置514可包括粒度、采样率、采样大小、要收集的数据,和其它信息。跟踪配置514还可包括何时跟踪或不跟踪的特定条件。
[0137]这样的条件可评估请求中的数据元素,以及来自外部源的数据元素。例如,条件可导致详细跟踪在晚间在输入参数为“蓝”时发生。
[0138]分发配置516可定义用于分配其它工作单元的条件。分发配置516可定义负载平衡算法,例如,该算法将工作分配给轻度负载的设备而避免将工作发送给重度负载的工作。
[0139]本地网络518可将分发器系统506与各种执行系统520相连接。执行系统520可具有操作系统524或执行环境530可在其上运行的硬件平台522。应用534可在执行系统520上执行以响应于工作单元,并且各种跟踪器可在应用534处理该工作单元时收集数据。
[0140]在某些实施例中,应用534可直接在操作系统524上执行。在这样的实施例中,操作系统524可具有用于收集执行相关测量的轻量跟踪器526,以及可在应用执行期间收集经细化信息的详细跟踪
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1