仪表范围
仪表范围表示应用代码中的逻辑单元,与发出的遥测数据相关联。
通常情况下,由开发人员决定什么是合理的仪表范围,例如可以选择模块、包或类作为仪表范围。对于库或框架,常见的方法是使用一个唯一于库或框架的标识符作为范围,比如库或框架的完全限定名称和版本。如果库本身没有内置的OpenTelemetry仪表,而是使用了一个Instrumentation Library,建议使用Instrumentation Library的名称和版本作为仪表范围。
当从提供者获取跟踪器(Tracer)、计量器(Meter)或记录器(Logger)实例时,会为仪表范围定义一个名称和版本对。由实例创建的每个跨度(span)、指标(metric)或日志记录(log record)都将与提供的仪表范围相关联。
在您的可观测性后端中,这允许您通过仪表范围对遥测数据进行切片和切割,例如查看哪些用户正在使用库的哪个版本以及该库版本的性能,或者将问题定位到应用程序的特定模块。
下图说明了一个具有多个仪表范围的跟踪。不同的范围由不同的颜色表示:
- 顶部的
/api/placeOrder
跨度是由使用的HTTP框架生成的。 - 绿色的跨度(
CheckoutService::placeOrder
、prepareOrderItems
和checkout
)是应用程序代码,按照CheckoutService
类进行分组。 CartService::getCart
和ProductService::getProduct
的跨度也是应用程序代码,按照CartService
和ProductService
类进行分组。- 橙色的跨度(
Cache::find
)和浅蓝色的跨度(DB::query
)是库代码,按照库名称和版本进行分组。
最后修改 December 10, 2023: translate (a4350d6e)