我正在使用Sleuth 2.1.3。 我想添加一个自定义的“跟踪ID”作为具有字母数字值的“相关ID”,并想吐出带有spanid和父id的日志。 如果我使用以下实现创建新的自定义跟踪ID。它会打印在日志中吗?
我尝试了以下实现,但在日志中看不到任何自定义跟踪 https://github.com/openzipkin/zipkin-aws/blob/release-0.11.2/brave-propagation-aws/src/main/java/brave/propagation/aws/AWSPropagation.java
Tracing.newBuilder().propagationFactory(
ExtraFieldPropagation.newFactoryBuilder(B3Propagation.FACTORY)
.addField("x-vcap-request-id")
.addPrefixedFields("x-baggage-", Arrays.asList("country-code", "user-id"))
.build()
);
我尝试使用来自https://cloud.spring.io/spring-cloud-sleuth/reference/html/#propagation的上述代码,但在日志中未看到任何自定义跟踪ID
答案 0 :(得分:0)
您已将B3Propagation.FACTORY
作为传播工厂的实现进行了传递,因此您明确声明要使用默认的B3标头。您已经说过,您还希望传播字母数字的其他字段。然后,在日志分析工具中,您可以定义要使用自定义字段作为跟踪ID,但这并不意味着默认的X-B3-TraceId字段将被更改。如果要使用Sleuth可以理解的自定义字段作为跟踪ID,则需要更改日志记录格式并实现其他传播工厂Bean。
答案 1 :(得分:0)
对我有用的一种方法是 使用ExtraFieldPropagation 并在传播键下的侦探属性中添加这些键 和列入白名单的键
示例代码 '@Autowired Tracer跟踪器;
Span currentSpan = tracer.nextSpan().start();
ExtraFieldPropagation.set(
"customkey", "customvalue");
sleuth:
log:
slf4j:
whitelisted-mdc-key : customkey
propagation:
tag:
enabled: true
propagation-keys : customkey '