赢得自定义新的遗物弹球机!只需将数据书呆子提交以注册Futureestack。 现在注册

全球追踪搜索在新遗迹一:一个更好的方式与自定义属性工作

9分钟阅读

New Relic宣布分布式跟踪功能为现代软件团队提供了查找和修复性能问题、度量系统健康状况以及设置团队目标和优先级的最佳工具,这是向前迈出的重要一步。

今天,我们再次加强了分布式追踪,为new Relic的客户提供了新的全球搜索体验。

自发射以来分布式跟踪,我们通过添加特点,我们在这一领域不断改进并扩展了新的遗物平台的能力异常检测,Confensed Trace视图,部署标记和跟踪分组。现在,通过全局跟踪搜索,我们作为一部分介绍New Relic的一,我们的客户拥有一套强大的工具,可以消除混乱和复杂性,并更快、更有效地解决分布式软件环境中的性能问题。

全局跟踪搜索使我们的客户通过使用自定义属性(或标记,进入)来为查找迹线进行简单而有效的工具OpenTracing),团队经常将其添加到特定服务的范围内。这些属性—例如,用户id、用户电子邮件地址、版本号、错误消息或描述在一个范围内执行的工作类型的标记—对于拥有其他服务的其他团队可能有价值。然而,到目前为止,由于分布式跟踪搜索工具的范围有限,很难甚至不可能利用这一价值。

(在此上下文中,“跨度”代表了一个离散的、命名的和定时的操作它定义了在分布式系统中所做的单个工作单元。可以将跟踪看作是一系列的span,每个span描述一个特定的操作。团队用自定义属性注释跨度,这样他们就有更多更好的方法来查询、过滤和分析跟踪数据。)

跟踪搜索更容易 - 更强大

全局跟踪搜索消除了现有跟踪搜索工具的限制,使团队更容易找到匹配特定跨度属性的跟踪,而不管这些属性在跟踪中的何处添加。为了理解为什么这可能是一个改变游戏规则的创新,让我们看一个包含三个服务的应用程序的简单例子,如下所示:


大多数分布式跟踪工具将搜索范围限制为正在查看的服务。围绕此约束工作很少是一个实用的选择。

想象一下,你是服务的所有者c。您可以轻松搜索具有服务中的错误的痕迹,但您无法做的是使用CustomerID属性在Service C中搜索服务中的追踪,该属性添加了服务的所有者作为自定义属性到自己服务中的跨度。That's because existing search tools force you to scope down your search to just one service, making it impossible to search for traces with the customerID attribute (or any other custom attribute being used in any other service) if you’re not scoped to that specific service.

这些限制并不是New Relic的分布式追踪功能所独有的。事实上,任何现有分布式跟踪解决方案中的跟踪搜索功能都可能施加类似的限制。

现在的问题是自定义属性

绕过此问题的理论方法,并在一个服务中创建的自定义属性可见并从其他服务中搜索。作为服务的所有者,您可以访问您的服务,并要求他们手动将其CustomerID属性传播到服务B.然后您可以追踪服务的所有者B,并将它们询问乐器并向上传播CustomerId属性,这次你的服务。

最后,您将能够访问customerID属性—但只有在您的两位同事投入时间和精力为您检测和传播该属性之后。

当只涉及少量服务时,此流程可能是可行的。但是当使用数十个甚至数百个不同的服务时,这几乎是不可能的。甚至无法知道另一个服务所有者是否创建了customerID属性,或者其他服务是否也创建了您可能认为有用的属性。当然,如果您负责所有这些团队和服务,您可能会要求每个服务作为策略来检测和传播每个属性,但这不会随着时间的推移而扩展。

在实践中,所有这些协调和手动仪器的成本将是令人望而却要的。甚至尝试大型分布式应用程序,这种方法也是不可能的。

全局跟踪搜索:释放自定义属性的力量

New Relic的新全球追踪搜索提供了一个更好的方法来解决这个问题。如下所示,我们已经在分布式跟踪中扩展了搜索范围,让New Relic的客户搜索任何span属性,而不需要求助于手动传播,也不需要知道属性源自何处或与哪些服务相关联。

例如,作为服务的所有者C,您现在可以根据CustomerID属性搜索并在系统中搜索所有痕迹,而无需追踪属性的来源,而且没有任何人必须编写单行代码乐器并传播它。无论在跟踪中,都会适用于重点在版本号,错误消息,用户/客户信息或任何其他自定义属性的搜索相同的功能。


New Relic One的全局跟踪搜索允许用户搜索任何跨度属性——无需在手动传播上浪费时间和资源。

新的遗物全局跟踪搜索中的高级功能允许用户定义复合跨度条件,以查找包含特定属性和值的跨度的痕迹。例如,高级搜索可以找到涉及服务A和服务B的迹线,其中服务B的总持续时间大于500 ms,并且服务B中的数据存储查询花费超过300毫秒。

使用全局跟踪搜索

让我们对全局跟踪搜索特性进行一个快速的亲身体验,以展示它在多大程度上提高了您快速、轻松和更精确地查找跟踪的能力。


New Relic One Entity Explorer启动器提供了易于访问分布式跟踪工具,包括全局跟踪搜索。

要开始使用全局跟踪搜索,可以通过分布式跟踪主页(如下面的截图所示)或通过New Relic One主页上的分布式跟踪菜单项(如上所示)访问它。


从New Relic One的分布式追踪主页访问全球追踪搜索

单击查询输入以查询常用属性列表。您可以单击或向下滚动到建议的属性或简单地开始键入您记录的属性名称。搜索输入使用自动完成,该自动填充根据您所键入的内容建议选项。

输入属性名后,选择一个操作符(等于(=)、大于(>)等)和一个值,或者选择一个自动完成选项。


全局跟踪搜索中的查询将属性与运算符和值对组合。

全局跟踪搜索还支持匹配针对多个属性和值的跨查询的复合条件。单击输入栏右侧的箭头以展开表单并输入多个条件。必须在相同的范围内满足组中的所有条件,以便匹配跟踪出现在搜索结果中。

当以这种方式使用时,分组条件允许您查找跨度来自特定服务的跟踪,这些服务具有特定的名称和持续时间。这是一个强大的功能,特别是在非常大和复杂的分布式环境中。


全局跟踪搜索支持组合多个属性和/或价值的复合条件 - 在大型和复杂的分布式环境中搜索的强大功能。

分布式跟踪被设计用于跨New Relic账户;跟踪查询在用户具有访问权限的所有帐户上运行,全局跟踪搜索结果遵循相同的访问规则。请记住,如果一个帐户没有访问服务的权限,那么您就不能查询该服务生成的跨度中的属性和值。

可用性和价格

今天,New Relic Pro或同等订阅计划的所有客户都可以使用全球跟踪搜索。

我们很高兴能够以这种强大的新方法连接我们的客户来查找痕迹!全局跟踪搜索使团队访问分布式跟踪中长期存在的全套属性,但几乎不可能有效使用。今天,这一切都在变化。因此,我们认为在新的遗物中的分布式追踪将对我们的客户和业务感到更有价值。

了解更多关于新遗迹一newrelic.com/platform.

额外的新遗迹1资源