spanId
traceId
和
spanId
,而同一方法中的其他线程中的其他线程为null。一些虚拟代码以显示以下内容:
traceId
结果是:只有主线程日志具有public void doSomething() {
log.info("here is main thread");
executor.submit(() -> log.info("here is thread1"));
}
。
我知道我可以添加一些代码来启动新的跨度并传递到线程。但是理想情况下,可以通过某种配置来实现,而不是在我的业务方法中插入过多的非相关代码。
这是受支持的,或者只是我需要手动创建新的跨度并通过它? 我期望在一个事务/方法中传播相同的其他线程。
您可以尝试以下任何一个:
在执行程序级别 - 配置ContextPropagatingTaskDecorator以处理该特定executor的线程之间的上下文传播。
在应用程序级别 - 尝试使用答案中解释的钩子