gpt4 book ai didi

java - 记录 X-B3-SpanId 或 SpanId 哪个? X-B3-TraceId 还是 TraceId? ( Spring 的侦探)

转载 作者:行者123 更新时间:2023-11-30 05:35:18 31 4
gpt4 key购买 nike

Spring 的 sleuth 添加到 MDC X-B3-SpanId 和 SpanId。 (TraceId 相同)

{X-B3-SpanId=0000000000000001, X-B3-TraceId=0000000000000002, X-Span-Export=false, spanExportable=false, spanId=0000000000000001, traceId=0000000000000002}

“X-B3-”前缀值与无前缀值相同。
如果其中之一是多余的,我宁愿将其删除。 (以减少日志的冗长性)

X-B3-SpanId 和 SpanId 有什么区别吗? (X-B3-TraceId 和 Traceid)
有充分的理由记录两者吗?

Spring 文档中的图表 https://cloud.spring.io/spring-cloud-sleuth/2.1.x/single/spring-cloud-sleuth.html#_propagation显示“X-B3-”前缀的内容仅存在于用于传输的请求 header 中,但如果我在没有任何这些 header 的情况下发出请求,我的日志的 MDC 仍包含“X-B3-”前缀值。

<小时/>

使用的依赖项:

  • org.springframework.boot:spring-boot-starter-log4j2:2.0.3.RELEASE
  • org.springframework.cloud:spring-cloud-sleuth-core:2.0.3.RELEASE

只是简单地添加对 gradle.build 的依赖 - 没有关于 sleuth 的自定义/配置。

*MDC = log4j2 的映射诊断上下文 https://logging.apache.org/log4j/2.x/manual/thread-context.html

最佳答案

查看 Slf4jScopeDecorator 类,可以清楚地看到这两个值完全相同,并且它们维护 X-B3* 前缀值只是为了向后兼容:

 * Adds {@linkplain MDC} properties "traceId", "parentId", "spanId" and "spanExportable"
* when a {@link brave.Tracer#currentSpan() span is current}. These can be used in log
* correlation. Supports backward compatibility of MDC entries by adding legacy "X-B3"
* entries to MDC context "X-B3-TraceId", "X-B3-ParentSpanId", "X-B3-SpanId" and
* "X-B3-Sampled"

https://github.com/spring-cloud/spring-cloud-sleuth/blob/master/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/Slf4jScopeDecorator.java

因此您可以使用您想要的两个中的任何一个,但请注意它们认为 X-B3* 变量是遗留的

关于java - 记录 X-B3-SpanId 或 SpanId 哪个? X-B3-TraceId 还是 TraceId? ( Spring 的侦探),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56767956/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com