1

有没有办法将具有不同跟踪 id 的多个跟踪连接到一个跟踪中?就我而言,我有类似以下的内容,我想将它们合并成一个单一的跟踪。

|--- UI Trace ---------------------------------|
    |- UI Span -|
                 |-- Backend Trace -----------|
                   |- Backend Span --| |--| 

是的,我可以重构,以便我Backend Trace的跨度在UI Trace. 但是我正在使用一些现有代码,其中后端服务已经有一个通过 http 标头传递的每个请求的 ID。我想重新使用现有的后端 ID,而不是向所有现有请求添加新的跟踪 ID 标头。

4

1 回答 1

1

通常,以您描述的方式“加入跟踪”将成为跟踪分析器(Jaeger、LightStep 等)的一部分,我不相信它们中的任何一个都允许这种查询。TraceID只是分析器将不同的跨度关联到单个逻辑跟踪的一种方式。

解决此问题的一些选项如下 -

  1. 在前端生成正确格式的跟踪 id 并将其用作 OpenTracingSpanContext跟踪 id,假设您的后端也会传播它,如果它被提供给它。
  2. 创建一个代理来临时存储 UI 中的 span,等待后端跟踪 id 可用,然后SpanContext用后端生成的跟踪 id 重写。您不一定必须向下传递未完成或格式错误的跨度 - 您可以简单地将所需的数据片段通过线路发送到您的后端,并在此时为 UI 创建新的跨度。
于 2019-02-21T23:14:23.203 回答