我有 spring boot3 应用程序并尝试将 Traceid 添加到日志中。我确实看到了踪迹。但是当调度程序作业运行时,会处理一堆记录。我需要为每条处理的记录添加新的 Traceid。现在,作为调度程序 cron 作业运行的一部分执行的所有记录都打印相同的 Traceid 和 spanid。
如何强制为每个已处理的记录添加新的traceid并将其传递到下游。基本上每条记录都有一个新的 Traceid。
对于每条记录 生成新的traceid 过程记录 }
2024-08-26T13:56:10.007-04:00信息24524 --- [调度-1] [66ccc1ba42497316fc03db0ec91b6667-fc03db0ec91b6667] d.u.e.c.b.m.c.c.t.s.CardTravelDocService:打印值0
2024-08-26T13:56:10.008-04:00信息24524 --- [调度-1] [66ccc1ba42497316fc03db0ec91b6667-fc03db0ec91b6667] d.u.e.c.b.m.c.c.t.s.CardTravelDocService:打印值1
我尝试过span.end();和 span.start().. 我们可以以编程方式使用 uuid 作为 Traceid 吗?这样可以确保每条记录都获得新的 Traceid
我做了类似下面的事情..但我希望框架也为traceid提供范围。现在我正在构建 Traceid。
UUID uuid = UUID.randomUUID();
TraceContext context = tracer.traceContextBuilder()
.traceId(uuid.toString().replaceAll("-", ""))
.spanId("00f067aa0ba902b7")
.sampled(true)
.build();
Span span2 = tracer.spanBuilder().setParent(context).start();
tracer.withSpan(span2.start());
log.info(" printing value {}", i);
transformationService.callTest(i); --> some method call
span2.end();