跟踪作为服务的制作方法

文档序号:9401929阅读:345来源:国知局
跟踪作为服务的制作方法
【专利说明】跟踪作为服务
[0001]相关申请的交叉引用
[0002]本申请要求于2013年I月25日提交的题为“Tracing as a service (跟踪作为服务)”的美国专利申请序列号13/751,026的优先权和权益,该申请的整体内容通过援引被明确地纳入于此。
[0003]背景
[0004]跟踪收集与应用如何在计算机系统内执行有关的信息。跟踪数据可包括任何类型的可解释该应用如何操作的数据,并且这样的数据可由开发者在应用的调试或优化期间分析。在许多情况中,跟踪数据可被用于调试应用以及理解和优化应用。跟踪数据还可在该应用的常规操作期间被管理员用来标识任何问题。

【发明内容】

[0005]仪表化执行环境可连接到一执行环境以随着应用运行提供经细化的应用的跟踪和日志。仪表化执行环境可被配置成可被配置和购买的单独服务。仪表化执行环境可与各种认证系统、管理用户界面和其它组件一起部署。仪表化执行环境可通过分发器来参与客户的系统,分发器可管理应用工作负载以向仪表化执行环境和其它工作器系统分发工作。市场可提供多个预先配置好的执行环境,所述执行环境可供选择、进一步配置,并被部署以针对特定数据收集目标。
[0006]负载平衡系统可将仪表化系统结合到一组被管理的设备内,并在各设备间分发工作负载以同时满足负载平和和数据收集。负载分发器可与若干被管理的设备进行通信并配置它们,某些设备可具有可为那些设备上运行的工作负载收集跟踪数据的仪器。认证可在被管理的设备和负载分发器之间执行,以验证被管理的设备能够接收工作负载并在执行前验证工作负载。工作负载分发器可增加或减少与在任何给定时间经历的工作负载相关的检测的量。
[0007]并行跟踪器可与应用的执行或轻度经检测版本并行地执行应用的细化的或经深度检测的分析。应用的两个版本都可操作在同一输入流上,但是深度经检测版本具有与轻度经检测版本的不同执行结果。该跟踪结果可被用于各种分析,包括优化和调试。
[0008]跟踪器可模糊跟踪数据,使得跟踪数据可被用在不安全环境中,即使原始跟踪数据可包含私有的、机密的、或其它敏感的信息。跟踪器可使用不可逆的或有损散列函数、查找表、或针对特定原始跟踪数据的其它机制来模糊、呈现经模糊的对传输、存储和分析可接受的跟踪数据。在参数到函数来回传递的情况中,跟踪数据可作为组或个体参数来被模糊。在某些情形中,经模糊的跟踪数据可被发送到远程服务器。
[0009]提供概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念的选集。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
[0010]附图简述
[0011]在附图中:
[0012]图1是示出用于跟踪处理机密数据的应用的系统的实施例的图示。图2是示出用于分析敏感跟踪数据的网络环境的实施例的图示。
[0013]图3是示出安全环境和远程设备之间的交互的实施例的时间线图。
[0014]图4是示出并行跟踪系统的实施例的图示。
[0015]图5是示出具有并行跟踪的网络环境的实施例的图示。
[0016]图6是示出用于执行具有并行仪表化的方法的实施例的流程图示。
[0017]图7是示出用于组合结果的方法的实施例的流程图示。
[0018]图8是示出用工作负载分发器来进行跟踪的实施例的图示。
[0019]图9是示出具有工作负载分发器的网络环境的实施例的图示。
[0020]图10是示出用于带跟踪的负载平衡的方法的实施例的流程图示。
[0021]图11是示出作为服务的跟踪的实施例的图示。
[0022]图12是示出具有远程跟踪的网络环境的实施例的图示。
[0023]图13是用于配置仪表化系统的实施例的流程图示。
[0024]图14是示出用于部署仪表化系统的方法的实施例的流程图示。
[0025]详细描述
[0026]跟踪作为服务
[0027]仪表化执行环境可被部署为服务。在创建帐号后,用户可向用户自己的执行环境内的工作负载分发器添加仪表化执行环境。工作负载分发器可接收进入的工作负载流并将工作负载的某些或全部引导到仪表化执行环境。
[0028]仪表化执行环境可包括软件、硬件、以及能够在处理工作负载的同时捕捉各种信息的其它组件。仪表可收集可被存储并分析的各种跟踪数据。在某些情况中,跟踪数据可在收集后被分析,而在其它情况中,跟踪数据可实时地被分析。
[0029]用户可使用管理用户界面来配置仪表化执行环境供分发器使用。用户可能能够建立帐号、确定支付机制、并选择仪表化执行环境的各种特征。
[0030]管理活动还可包括创建各种认证密钥或可使交互系统彼此认证的其它机制。认证系统可被用来验证仪表化执行环境已经被允许接收分发器的输出,并且分发器被授权以向仪表化执行环境发送工作项目。
[0031]分发器可被添加到用户的执行环境以在应用中引入重定向点或决策点。在某些情况中,分发器可以是截取输入流并应用负载平衡和仪表检测逻辑两者以标识用以处理给定工作项目的执行环境的应用。在某些情况中,分发器可以是可被包括在库中的可执行代码,库可从应用内被调用。
[0032]可将检测作为服务提供给应用的开发者或管理者。检测可使用可能对于安装、配置或操作而言复杂的精细工具和分析来收集数据。用户可使用不同的支付方案为这样的服务付费,诸如部分基于可消耗多少处理、存储、或其它资源来付费。在某些情况中,支付可以是订购以供使用一段时间,诸如一个月的服务的固定费用支付。许多其他的支付方案可被部署。用工作负载分发器来跟踪
[0033]经负载平衡或经其它管理的计算环境可向仪表化和非仪表化的系统分发工作项目。工作平衡或分发可考虑应用的仪表检测目标来进行。在一个示例中,仪表检测可在系统上的负载可允许时执行,但是当负载因素增加时仪表检测可被减少或消除。
[0034]工作负载分发器可具有若干仪表检测目标,其定义收集数据的条件以及要收集的数据。目标可包括诸如采样率、开始或停止仪表检测的事件或条件、要收集的数据的数量或质量、以及要被应用的仪表化的具体参数或类型之类的项目。
[0035]工作负载分发器可将仪表检测目标发送到工作器系统,其中目标可使得工作器系统收集所描述的数据。在这样的情况中,分发器可能能够为仪表检测每个工作项目创建自定义的目标。
[0036]计算环境可具有多个工作器系统,其执行由分发器定义的工作项目。每个工作器系统可向分发器注册,注册可包括初始联系人和登记并建立各设备之间的认证机制。工作器系统的状态可被周期性地收集并用于确定执行给定工作项目的可能性。
[0037]并行跟踪
[0038]深度仪表化的跟踪器可与轻度仪表化的工作器并行操作以捕捉应用的详细测量和性能测量两者。在许多情况中,深度仪表检测可能不利地影响应用的性能,因此破坏可在同时收集的性能度量。随着检测变得更详细,性能度量通常可能变得更受影响。
[0039]跟踪系统可并行操作以在可仅捕捉性能度量的性能环境中进行跟踪,而另一个详细跟踪器可捕捉详细结果。在某些情况中,相同应用负载可被并行分析并且性能结果和详细结果可被聚集在一起以生成应用的完整的表示。
[0040]并行跟踪系统的体系结构可被部署在分布式计算环境中。在这样的环境中,多个设备或处理器可各自执行应用的某些工作。计算群集可以是分布式计算环境的一个示例,其中多个设备各自执行输入流的一部分。
[0041]单个设备可能能够执行并行跟踪。多处理器设备可具有可以以高性能方式处理应用工作负载的一些处理器而其它处理器使用详细工作器来执行应用。
[0042]并行跟踪的概念可被应用到单个系统或单处理器系统。在这样的系统中,分开的跟踪操作可顺序执行。例如,可使用性能水平仪表检测来执行应用工作负载的第一次运行,接着使用详细仪表检测系统来执行工作负载的第二次运行。在这样的实施例中,输入流可被捕捉用于以详细方式进行的后续执行。
[0043]分发器可标识输入流中的各个工作单元以发送到不同组件。工作单元可以是可以以相对独立的方式执行的任何计算工作负载对于每个程序或应用,工作单元可以不同。
[0044]在一些应用中,工作单元可以是可包括函数的输入参数的函数调用。对于函数语言(诸如Erlang、Haskell、Scala、F#)或对于以函数方式写的非函数语言,应用的各部分可能够被独立计算。在某些情况中,各工作单元可具有与其它工作单元的依赖性或其它交互。
[0045]工作单元可以是输入项目或对应用作出的请求。在应用编程接口的示例中,对接口的调用可被看成一个工作单元,其可由应用的实例来执行。这样的请求可以或者可以不依赖于其它请求,但是一般来说许多这样的系统可具有可独立于其它请求操作的请求。
[0046]在某些情况中,可由两个不同地仪表检测的系统执行的工作单元可返回不同结果。在一个简单示例中,工作单元可基于一天里的确切时间来执行函数。在这样的示例中,在性能水平仪表检测上执行的工作单元将返回与在可能慢得多的高度仪表化的系统上执行的同一工作单元不同的值。
[0047]当执行在两个不同系统上的工作单元返回不同值时,算法可被应用以确定返回值。在等待时间、响应时间、或其它与性能相关的因素可能不利地影响结果的系统中,来自性能水平仪表化系统的结果可被使用而从高度仪表化系统收集的结果可被丢弃。在某些情况中,来自性能水平仪表化系统的结果可被丢弃,以支持来自高度仪表化系统的结果。在又一些情况中,可使用平均或其它概要来聚集来自一个工作的单元的两次分开运行的应用结果O
[0048]模糊跟踪数据
[0049]跟踪器可模糊从应用收集的数据并将经模糊的数据发送到分析引擎。分析引擎可在经模糊的数据上执行全部的分析,使得分析引擎可不接触在跟踪器控制的数据中包含的任何秘密的、私人的、或其他形式的敏感数据。
[0050]跟踪器可在应用的执行期间收集数据。应用可处理可能是敏感的数据。当跟踪器遭遇应用数据时,这样的数据可在分析前被模糊。经模糊的数据可接着被分析以理解、分类、优化、或执行与该应用相关的其它功能。在某些情况中,分析可生成可涉及可被模糊的特定数据元素的推荐或其它结果。在这样的情况中,用于确定底层数据值的机制可通过逆模糊过程被提供。
[0051]模糊处理可包括散列函数,其可以是有损的或无损的。在其它实施例中,模糊处理可以是加密处理,其可以是或者可以不是密码上安全的。又一些实施例可采用维护在客户端设备上的查找表,其将有意义的数据值转换成用于分析的任意值。
[0052]多个值可被散列化或以其他方式被看成是跟踪器输出中的单个元素。例如,函数可用三个自变量来调用。在某些实施例中,这三个自变量可被组合成单个自变量并被散列化或以其他方式模糊成单个值。在其它实施例中,这三个自变量可各自被模糊并存储为三个分开的值。
[0053]贯穿本说明书和权利要求书,术语“剖析器”、“跟踪器”和“仪表检测” (instrumentat1n) ”被可互换地使用。这些术语指代可在应用被执行时收集数据的任何机制。在经典定义中,“检测”可指代可向其插入可执行代码并藉此改变该可执行代码的存根(stub)、挂钩(hook)或其他数据收集机制,而“剖析器”或“跟踪器”可经典地指代不可改变可执行代码的数据收集机制。使用这些术语及其派生词中的任一者都可蕴含或暗示彼此。例如使用“跟踪器”的数据收集可使用“跟踪器”的经典意义中的非接触式数据收集以及用其中可执行代码可被改变的“仪表检测”的经典意义的数据收集来执行。相似地,通过“仪表检测”收集的数据可包括使用非接触式数据收集机制的数据收集。
[0054]此外,通过“剖析”、“跟踪”和“仪表检测”收集的数据可包括可收集的任何类型的数据,包括诸如处理时间、吞吐量、性能计数器之类的与性能相关的数据等等。收集到的数据可包括函数名称、所传递的参数、存储器对象名称和内容、所传递的消息、消息内容、注册表设置、注册表内容、差错标志、中断或与正被跟踪的应用有关的任何其他参数或其他可收集的数据。
[0055]贯穿本说明书和权利要求书,术语“执行环境”可用于指代用于执行应用的任何类型的支持软件。执行环境的一个示例是操作系统。在一些图示中,“执行环境”可被示为与操作系统分开。这可能是为了示出为应用提供各支持函数的虚拟机,诸如过程虚拟机。在其他实施例中,虚拟机可以是可包括其自己的内部操作系统并可模拟整个计算机系统的系统虚拟机。贯穿本说明书和权利要求书,术语“执行环境”包括操作系统和可具有或可不具有可
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1