智能分布式追踪上下文注入制造技术

技术编号:37441178 阅读:16 留言:0更新日期:2023-05-06 09:13
所公开的系统涉及跨分布式软件应用传播追踪。在示例中,应用记录用于来自原始服务器的网页的追踪数据。应用在web浏览器处确定来自原始服务器的网页要求对原始服务器的域之外的外部服务器的请求。应用询问外部服务器以确定外部服务器是否允许追踪请求中的报头。应用在web浏览器处更新允许列表,以指示外部服务器允许追踪来自原始服务器的请求中的报头。应用基于该询问的结果在请求中注入追踪报头。应用从web浏览器向外部服务器发送带有追踪报头的请求。外部服务器被配置为基于该追踪报头来记录追踪数据。来记录追踪数据。来记录追踪数据。

【技术实现步骤摘要】
【国外来华专利技术】智能分布式追踪上下文注入
[0001]相关申请的交叉引用

技术介绍

[0002]随着基于web的应用变得更加先进,传统的追踪器应用可能无法跨服务器、平台或线程捕获准确的遥测数据。所公开的解决方案促进克服这些缺陷的改进的遥测能力和分析。

技术实现思路

[0003]在一方面,一种跨分布式软件应用传播追踪的方法包括记录用于来自原始服务器的网页的追踪数据,该网页由web浏览器执行。该方法还包括在web浏览器处确定来自原始服务器的网页要求对原始服务器的域之外的外部服务器的请求。该方法还包括在web浏览器处在拒绝列表中搜索外部服务器是否不允许追踪来自原始服务器的请求中的报头。该方法还包括在web浏览器处在允许列表中搜索外部服务器是否允许追踪来自原始服务器的请求中的报头。该方法还包括询问外部服务器以确定外部服务器是否允许追踪请求中的报头。该询问基于拒绝列表或允许列表的搜索中的否定结果。该方法还包括在web浏览器处更新允许列表,以指示外部服务器允许追踪来自原始服务器的请求中的报头。该方法还包括基于该询问的结果在请求中注入追踪报头。该方法还包括从web浏览器向外部服务器发送带有追踪报头的请求,外部服务器被配置为基于该追踪报头来记录追踪数据。
[0004]在一方面,该方法还包括在web浏览器处确定来自原始服务器的网页要求对外部服务器的附加请求。该方法还包括确定高速缓存包括与外部服务器对应的条目。该方法还包括从高速缓存中获得与该条目对应的响应并且提供该响应来为附加请求提供服务。
[0005]在一方面,该方法还包括响应于确定原始服务器没有运行跨源资源共享(CORS)而将追踪报头注入到请求中并且发送带有追踪报头的请求。
[0006]在一方面,该请求是超文本传输协议(HTTP)请求。
[0007]在一方面,该方法还包括从外部服务器接收跨度的性能的测量。该跨度包括为请求提供服务而执行的操作。性能的测量包括以下中的一个或多个:(i)与操作的执行对应的处理周期的数量或(ii)操作的执行时间。
[0008]在一方面,对外部服务器的请求是由与网页的交互发起的事件的执行造成的。该方法还包括基于事件的执行来自动记录附加跨度。该跨度是该附加跨度的子代。
[0009]在一方面,该方法还包括从外部服务器接收该请求未被接受的通知。该方法还包括在web浏览器处将外部服务器添加到拒绝列表。该方法还包括从web浏览器向外部服务器重新发送不带有该追踪报头的请求。
[0010]上述方法可以被实现为有形的计算机可读介质和/或在计算机处理器和附接的存储器内操作。
附图说明
[0011]图1描绘了根据本公开的方面的用于利用遥测自动仪表化(instrument)企业应用的系统的示例。
[0012]图2描绘了根据本公开的方面的用于搜集遥测数据的过程的示例。
[0013]图3描绘了根据本公开的某些方面的用于生成跨度上下文的仪表化的应用的示例。
[0014]图4描绘了根据本公开的方面的跨度层次结构的示例。
[0015]图5描绘了根据本公开的某些方面的用于生成跨度上下文和日志的仪表化的应用内的追踪器组件。
[0016]图6描绘了根据本公开的某些方面的用于管理由跨度的仪表化造成的背压的追踪体系架构的示例。
[0017]图7描绘了根据本公开的某些方面的具有优先化的跨度层次结构的示例。
[0018]图8描绘了根据本公开的某些方面的用于对跨度进行优先化的过程的示例。
[0019]图9描绘了根据本公开的某些方面的具有踪迹工作者(traceworker)客户端的分布式追踪环境的示例。
[0020]图10描绘了根据本公开的某些方面的用于仪表化线程的过程的示例。
[0021]图11描绘了根据本公开的某些方面的用于跨分布式软件应用传播追踪的过程的示例。
[0022]图12描绘了根据本公开的某些方面的跨分布式系统中的服务传播跨度上下文(context)的示例。
[0023]图13描绘了根据本公开的某些方面的报头的示例。
[0024]图14描绘了用于实现各方面中的一个方面的分布式系统的简化图。
[0025]图15是根据一方面的系统环境的组件的简化框图,通过该系统环境,由一方面系统的组件提供的服务可以作为云服务提供。
[0026]图16图示了示例性计算子系统,其中可以实现本专利技术的各个方面。
具体实施方式
[0027]本文公开的技术提供了用于为企业应用自动提供遥测能力的解决方案。遥测是指搜集有关软件的运行时执行的报告性能数据。此类数据的示例包括网页或应用上某些特征的使用频率、启动时间或执行时间的测量、过程是否崩溃、故障信息和用户体验。遥测数据可以基于应用或更细粒度的级别进行搜集,诸如关于网页的每个过程完成所花费的时间的运行时度量。所公开的解决方案使用应用编程接口(API)能力来启用对遥测数据的访问。
[0028]如所讨论的,现有解决方案存在缺陷。例如,一些现有解决方案可以要求追踪库的手动导入或链接,然后在期望仪表化数据的代码的部分周围添加一个或多个函数调用。此外,此类解决方案可以要求开发人员从一个或多个供应商选择仪表化库并且配置这些库。相比之下,所公开的解决方案通过在代码中检测事件和对服务器的调用并自动仪表化这些事件来自动仪表化基于web的应用。
[0029]在一方面,所公开的系统可以自动仪表化企业应用而不要求来自软件开发人员的输入。本公开的某些方面涉及提供运行时遥测框架的软件开发工具,该框架可以被自动集
成到由软件开发人员设计的自定义应用中。例如,软件开发工具可以自动将追踪功能注入企业应用。追踪功能自动追踪诸如用户交互、页面导航和服务器调用之类的操作,并以启用从用户在网页上的点击开始的端到端追踪的方式将相关的逻辑事务分组在一起,包括实现后端服务的分布式服务器系统(异构或其它)。
[0030]在另一方面,所公开的系统使得能够对一个或多个跨度和与跨度相关的消息进行优先化,以最小化在一些情况下由大量仪表化数据造成的网络拥塞。例如,在运行时或之前,可以将特定跨度指定为较低优先级,这使得仪表化不测量该特定跨度的性能,同时仍然搜集针对子跨度的数据,这可以是开发人员更感兴趣的。
[0031]在又一方面,所公开的解决方案涉及使基于web的应用的开发人员可以获得关于作为企业应用的一部分执行的一个或多个过程的详细仪表化,而不管这些过程是否包括多个线程。在应用的运行时执行时,遥测框架促进跨各种过程、线程和服务器的仪表化。以这种方式,仪表化上下文是跨线程维护的,从而产生更细粒度的仪表化数据。
[0032]在另一方面,所公开的系统促进跨分布式系统的遥测,包括在分布式服务器上,由于安全性要求或出于其它原因,可能不会自动允许通过追踪报头指示的仪表化。更具体而言,某些方面可以自动发现协议支持并基于协议支持调整将追踪信息注入到不同的调用中。因此,所公开的系统能够获得用于在远程服务器上执行的过程的详细遥测数据,特别是通过跨域请求访问本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种跨分布式软件应用传播追踪的方法,所述方法包括:记录用于来自原始服务器的网页的追踪数据,该网页由web浏览器执行;在web浏览器处确定来自原始服务器的网页要求对原始服务器的域之外的外部服务器的请求;在web浏览器处在拒绝列表中搜索外部服务器是否不允许追踪来自原始服务器的请求中的报头;在web浏览器处在允许列表中搜索外部服务器是否允许追踪来自原始服务器的请求中的报头;询问外部服务器以确定外部服务器是否允许追踪请求中的报头,所述询问基于拒绝列表或允许列表的搜索中的否定结果;在web浏览器处更新允许列表,以指示外部服务器允许追踪来自原始服务器的请求中的报头;基于所述询问的结果在请求中注入追踪报头;以及从web浏览器向外部服务器发送带有追踪报头的请求,外部服务器被配置为基于所述追踪报头来记录追踪数据。2.如权利要求1所述的方法,还包括:在web浏览器处确定来自原始服务器的网页要求对外部服务器的附加请求;确定高速缓存包括与外部服务器对应的条目;以及从高速缓存中获得与所述条目对应的响应并且提供所述响应来为附加请求提供服务。3.如权利要求1所述的方法,还包括:响应于确定原始服务器没有运行跨源资源共享(CORS),将追踪报头注入到请求中并且发送带有追踪报头的请求。4.如权利要求1所述的方法,其中所述请求是超文本传输协议(HTTP)请求。5.如权利要求1所述的方法,还包括:从外部服务器接收跨度的性能的测量,其中该跨度包括为请求提供服务而执行的操作,并且其中性能的测量包括以下中的一个或多个:(i)与操作的执行对应的处理周期的数量或(ii)操作的执行时间。6.如权利要求5所述的方法,其中对外部服务器的请求是由与网页的交互发起的事件的执行造成的,所述方法还包括基于事件的执行来自动记录附加跨度,并且其中所述跨度是所述附加跨度的子代。7.如权利要求1所述的方法,还包括:从外部服务器接收所述请求未被接受的通知;在web浏览器处将外部服务器添加到拒绝列表;以及从web浏览器向外部服务器重新发送不带有所述追踪报头的请求。8.一种系统,包括:非暂态计算机可读介质,存储计算机可执行程序指令;以及至少一个处理器,通信地耦合到非暂态计算机可读介质并且执行计算机可执行程序指令以用于以下操作:记录用于来自原始服务器的网页的追踪数据,该网页由web浏览器执行;
确定来自原始服务器的网页要求对原始服务器的域之外的外部服务器的请求;在允许列表中搜索外部服务器是否允许追踪来自原始服务器的请求中的报头;基于搜索中的否定结果在请求中注入追踪报头;以及向外部服务器发送带有追踪报头的请求,外部服务器被配置为基于所述追踪报头来记录追踪数据。9.如权利要求8所述的系统,其中计算机可执行指令包括用于以下操作的指令:从外部服务器接收所述请求未被接受的通知;将外部服务器添加到拒绝列表;以及从web浏览器向外部服务器发送不带有所述追踪报头的请求。10.如权利要求8所述的系统,其中所述请求是超文本传输协议(HTTP)请求。11.如权利要求8所述的系统,其中计算机可执行指令包括...

【专利技术属性】
技术研发人员:K
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:

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

1