Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 打开跟踪:将多个TraceID链接到一个跟踪中_Java_Opentracing - Fatal编程技术网

Java 打开跟踪:将多个TraceID链接到一个跟踪中

Java 打开跟踪:将多个TraceID链接到一个跟踪中,java,opentracing,Java,Opentracing,有没有办法将具有不同跟踪ID的多个跟踪连接到一个跟踪中?在我的例子中,我有下面这样的东西,我想把它们合并成一个单一的跟踪 |--- UI Trace ---------------------------------| |- UI Span -| |-- Backend Trace -----------| |- Backend Span --| |--| 是的,我可以重构,使我的后端跟踪位于UI跟踪中。但我正在

有没有办法将具有不同跟踪ID的多个跟踪连接到一个跟踪中?在我的例子中,我有下面这样的东西,我想把它们合并成一个单一的跟踪

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

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

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

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

  • 在前端生成一个正确格式的跟踪id,并将其用作OpenTracing
    SpanContext
    跟踪id,假设您的后端也会传播它(如果它被提供给它)
  • 创建一个代理,临时存储UI中的跨度,等待后端跟踪id可用,然后使用后端生成的跟踪id重写
    SpanContext
    。您不必向下传递未完成或格式不正确的跨距,只需将所需的数据段沿线路发送到后端,然后在该点为UI创建新的跨距即可

  • 无法在UI端生成我们的ID。但是,看起来LightStep确实有办法解决与旧系统集成的问题: