仪表范围

仪表范围表示应用代码中的逻辑单元,与发出的遥测数据相关联。

通常情况下,由开发人员决定什么是合理的仪表范围,例如可以选择模块、包或类作为仪表范围。对于库或框架,常见的方法是使用一个唯一于库或框架的标识符作为范围,比如库或框架的完全限定名称和版本。如果库本身没有内置的OpenTelemetry仪表,而是使用了一个Instrumentation Library,建议使用Instrumentation Library的名称和版本作为仪表范围。

当从提供者获取跟踪器(Tracer)、计量器(Meter)或记录器(Logger)实例时,会为仪表范围定义一个名称和版本对。由实例创建的每个跨度(span)、指标(metric)或日志记录(log record)都将与提供的仪表范围相关联。

在您的可观测性后端中,这允许您通过仪表范围对遥测数据进行切片和切割,例如查看哪些用户正在使用库的哪个版本以及该库版本的性能,或者将问题定位到应用程序的特定模块。

下图说明了一个具有多个仪表范围的跟踪。不同的范围由不同的颜色表示:

  • 顶部的/api/placeOrder跨度是由使用的HTTP框架生成的。
  • 绿色的跨度(CheckoutService::placeOrderprepareOrderItemscheckout)是应用程序代码,按照CheckoutService类进行分组。
  • CartService::getCartProductService::getProduct的跨度也是应用程序代码,按照CartServiceProductService类进行分组。
  • 橙色的跨度(Cache::find)和浅蓝色的跨度(DB::query)是库代码,按照库名称和版本进行分组。
此图像说明了具有多个仪表范围的跟踪
最后修改 December 10, 2023: translate (a4350d6e)