本文最初发表于2018年7月31日,更新于2018年8月29日及之后2020年4月27日

每月有超过4300万辆车被浏览,Dealer.com的站点的性能和可用性驱动着全国数千家汽车经销商的业务。如果该网站不可用,或者出现了错误,消费者不能快速、无缝地获得报价,或者对一辆新汽车或卡车进行初步研究,那么销售可能永远不会发生。

在像经销商那样的复杂软件环境中,每个请求通常都通过数十种离散服务来实现。沿着路径的单一问题服务可以影响该请求的整体响应时间,将良好的客户体验更改为糟糕的客户体验,并可能导致客户在其他地方寻找。

软件团队,在有许多服务中涉及服务请求的环境中,需要深入了解每个服务的性能,包括上游和下游,因此它们可以更有效地解决性能问题,测量整体系统健康,并优先考虑高度- 改善地区。

New Relic分布式追踪概述

新的遗物分布式跟踪旨在为现代环境中工作的软件团队提供一种简单的方法来通过复杂的体系结构捕获,可视化和分析迹象,包括使用巨大和微服务的架构。

“我们发现New Relic的分布式跟踪非常容易集成。我们只是简单地更新了我们的代理,然后突然间我们就分发了追踪。这是一次很棒的经历。——安德鲁·波特,考克斯汽车品牌Dealer.com的高级开发人员

每一位顾客新Relic APM Pro订阅不需要额外付费就能获得这种功能;您只需更新代理并在配置中启用分布式跟踪。New Relic的支持C, Go, Java, . net, Node。js, PHP, Python和Ruby,以及New Relic的浏览器,AWSλ和紫皮格式痕迹穿过跟踪API,并组装跨多边形环境收集的跟踪数据,以将详细的散点图和瀑布可视化。

new Relic One中的新型分布式跟踪视图。

理解现代软件的复杂性

为了理解分布式跟踪为什么如此重要,看看软件环境是如何变化的是很有帮助的。现代软件技术,如云平台、容器化和容器编排,正在帮助有远见的软件组织更快地构建、扩展和操作关键业务的应用程序。

传统的软件环境通常只包括一些大型服务。当问题出现时,这些相对简单的单片架构更容易识别出是哪个服务出了问题,因此开发团队可以通过挖掘该服务中的事务来发现关键的瓶颈或错误。

今天的应用程序通常由成百上千个建立在临时基础设施上的独立服务组成。其中一些服务是用遗留技术构建的大型独立服务,而另一些则是由更小的动态微服务组成的集群。尽管这些分布式架构有许多优点,但组件数量的爆炸式增长以及它们在语言、操作环境和所有权方面的多样性,给试图管理它们的团队带来了巨大的新负担。除非团队完全理解,否则他们无法有效地解决复杂系统中的问题调用图对于请求以及依赖服务的性能特征如何影响它们的服务。他们需要对整个系统有一个完整的看法。

德沃斯团队,了解下游服务如何“几幅跳跃”可以创造一个关键的瓶颈他们的服务对于快速问题解决是必不可少的。同样重要的是,它还提供了有关如何优化其代码的洞察力的团队。如果Devops团队无法确定何时,为什么以及如何发生问题,小缺陷可能会继续在生产中徘徊,直到一个完美的事件风暴对齐,并且系统一次突破。分布式跟踪为工程师提供了具有个别要求的详细视图,因此它们可以确定较大系统的哪些部分存在问题。

分布式跟踪:创建一个钢线程

随着组织向更分布式的体系结构发展,他们很快就发现了分布式跟踪的需求。作为New Relic的Erika Arnold在博客帖子中解释(跟踪,追踪和跟踪之间的差异),我们可以将分布式跟踪描述为通过复杂的分布式系统检测、传播上下文、记录和可视化请求的一种方式。

让我们来看看New Relic是如何实现一个解决方案来处理分布式跟踪的所有四个组件的:

分布式跟踪的四个组成部分

分布式跟踪的四个组成部分。

仪器

新的遗物通过使用与多种语言跨越多种语言的数百个不同的库和框架的语言代理,通过自动仪表应用程序代码来实现分布式跟踪。新的遗物仪器在请求中涉及的每项服务,无论是巨大的还是微服务,都会为服务中的操作创建时间,并将每个测量操作作为“跨度”发送给新的遗物平台。

新遗物自动为每个跨度自动添加重要的故障排除信息。例如,当新的遗物仪器创建表示数据库查询操作的跨度时,它包括数据库连接信息和SQL查询作为跨度中的属性。使用New Relic现有代理API的客户将自定义属性添加到事务将在跟踪中看到所有信息,而不会更改任何内容。

传播环境

New Relic的分布式跟踪解决方案自动检测您的服务,为每个传入的请求创建一个唯一的跟踪ID。它将跟踪ID和其他必要的相关信息作为“跟踪上下文”在整个调用中传播。例如,当一个服务调用另一个服务时,New Relic将跟踪上下文添加到下一个要使用的服务的HTTP请求头。New Relic的自动插装旨在消除管理和传播上下文的繁重工作,但如果您正在使用需要手动插装的传输,那么New Relic代理提供了一个API,允许您注入和提取跟踪上下文。新遗迹特工使用W3C跟踪上下文用于传播跟踪上下文的格式,使它们与任何其他追踪代理或工具互操作,也支持W3C跟踪上下文标准。

记录

New Relic代理将跟踪数据发送到我们的软件即服务(SaaS)平台,我们在那里接收并存储数据NRDB,世界上最强大的遥测数据库。这也许是整个系统中最不吸引人的部分,也是最难完成工作的地方。New Relic已经在一个可扩展的平台中吸收和存储大量的指标、事件和其他遥测数据,所以我们的客户可以专注于建立他们的业务,而不是管理他们的监测平台。因为New Relic在NRDB中为您存储跟踪数据,所以您可以直接查询跟踪数据并创建自定义仪表板。

可视化的痕迹

最后,这一切都在一起新遗物通过跟踪可视化的用户体验,旨在帮助您快速理解为什么特定的请求是缓慢的,错误起源于何处,以及您可以在何处优化代码以改善客户体验。为此,我们提供了一个高级的跟踪过滤功能和跟踪可视化,将分布式跟踪和New Relic APM结合在一起。

开始使用New Relic的分布式跟踪

1.检查过渡的指导分布式跟踪文档

2.将最新的APM代理部署到您感兴趣的调用路径中涉及的每个服务,并在代理配置中启用分布式跟踪。

2 a。部署最新的浏览器代理

3.New Relic APM中的“分布式跟踪”菜单或New Relic One中的分布式跟踪启动器将带您到主要的“跟踪列表”视图,在那里您将能够快速识别缓慢的跟踪和带有错误的跟踪。您可以调整“时间选择器”来改变您想要查看的轨迹窗口。您可以使用高级筛选来通过属性的组合查找跟踪。

查看和筛选跟踪您参与的服务。

4.深入分布式跟踪,查看每个跨度需要多长时间。您可以单击每个span,查看您需要理解和排除问题的上下文中该层的历史性能图表和相关属性。您还可以直接跳转到跟踪中涉及的特定服务的相关APM概述页面。在这里,您可以看到更深入的事务信息和堆栈跟踪,以解决该服务中的问题。

查看组成跟踪的所有跨。使用为每个span捕获的细节来理解发生了什么并进行故障排除。

5.与之New Relic的一图表生成器,您可以运行对跨度数据的查询,以创建对您的团队很重要的自定义图表和其他可视化。您还可以自定义构建仪表板包含多个图表。

轻松查询您的跟踪数据独特的见解。

结论

在New Relic,我们理解,随着现代软件组织发展他们的环境,事情变得越来越复杂,越来越难以理解和解决问题。New Relic对自动检测的深度使得使用分布式跟踪变得很容易,这样您就可以快速地理解为什么特定的请求会很慢,错误的源头在哪里,以及您可以在哪里优化代码以改善客户的体验。

你可以在New Relic文档中找到更多关于分布式跟踪的信息:

这篇文章包含了“前瞻性”的声明,这个术语是根据联邦证券法定义的,包括但不限于分布式跟踪的未来路线图以及这些特性的好处。重要的成就或成功由这些前瞻性陈述基于New Relic目前的假设,期望,和信仰和受到实质性的风险,不确定性,假设,和环境的变化可能会导致New Relic的实际结果,性能,或成就不同物质的表达或暗示任何前瞻性声明。进一步信息因素可能影响New Relic的金融和其他结果和前瞻性陈述本新闻稿/ post包含在申请新遗迹与证交会不时,包括10 - k New Relic的最新形式,尤其是在标题“风险因素”和“管理财务状况和结果的讨论和分析操作。这些文件的副本可以通过访问New Relic的投资者关系网站获得http://ir.newrelic.com或SEC的网站www.sec.gov。新的遗物不承担义务,并不打算更新这些前瞻性陈述,除非法律要求。

在进入项目管理和领导力的情况下,维克多为各种组织进行了职业书写软件的前14年,他可以与最终用户和客户更加密切地工作。他在企业软件开发,实施咨询和后销售支持方面的经验帮助他了解运行复杂系统的挑战。在新的遗物中,Victor是负责分布式跟踪的产品经理,这是一个有助于客户理解和故障排除的分布式系统的功能。Victor在俄勒冈州波特兰生活和作品,在那里他喜欢骑自行车,徒步旅行,足球,篮球和在太平洋西北地区的家人冒险。查看帖子

对新遗物博客的写作有兴趣吗?亚搏体育登入网给我们发一份建议书!