OpenTelemetry Python - 如何将新的跨度实例化为给定 trace_id 的子跨度

问题描述

我的目标是通过几个组件对我的应用程序的整个过程进行跟踪。我正在使用 GCP 和 Pub/Sub 消息队列在组件之间传递信息(用 Python 开发)。

我目前正在尝试通过创建一个新的跨度作为我的根跟踪的子跨度来在组件 A 和组件 B 之间保持相同的根跟踪。

这是一个小图:

Component A            ---> Pub/Sub message       ---> component B
(create the root trace)      (contain @R_73_4045@ion)      (new span for root trace)

我有我父母的给定 trace_idspan_id,我可以通过 Pub/Sub 传输,但我不知道如何将新的跨度声明为最后一个的孩子。我设法做的就是将新的跟踪链接到父跟踪,但这不是我正在寻找的行为。

有人已经尝试过这样做吗?

问候,

解决方法

它被称为跟踪上下文传播,有多种格式,例如 w3c 跟踪上下文、jaeger、b3 等...https://github.com/open-telemetry/opentelemetry-specification/blob/b46bcab5fb709381f1fd52096a19541370c7d1b3/specification/context/api-propagators.md#propagators-distribution。为此,您必须使用传播器的注入/提取方法之一。这是使用 W3CTraceContext 传播器的简单示例。

float64