2

Well I have a new setup with Sleuth 3.0.1 where by default spring.sleuth.reactor.instrumentation-type is set to manual

Therefore I wrapped all my places where I need to trace with WebFluxSleuthOperators.withSpanInScope(tracer, currentTraceContext, exchange, () -> {}) logic and it generally puts span in scope but the traceid is always different before and after the response is received:

INFO [gateway,2b601780f2242aa9,2b601780f2242aa9] 9 --- [or-http-epoll-1] ...LogFilter    : Request - Username: ..., method: GET, uri: ...
INFO [gateway,,] 9 --- [or-http-epoll-1] ...ValidationFilter      : ... Validation passed
INFO [gateway,6a396715ff0979a6,6a396715ff0979a6] 9 --- [or-http-epoll-4] ...LogFilter    : Request - Username: ..., method: GET, uri: ...
INFO [gateway,,] 9 --- [or-http-epoll-4] ...ValidationFilter      : ... Validation passed
INFO [gateway,020c11ab0c37f8ae,020c11ab0c37f8ae] 9 --- [or-http-epoll-2] ...LogFilter    : Request - Username: ..., method: GET, uri: ...
INFO [gateway,,] 9 --- [or-http-epoll-2] ...ValidationFilter      : Validation passed
INFO [gateway,189a49553566f771,f51aaaf68e5738d0] 9 --- [or-http-epoll-1] ...LogFilter    : Response - Status: 200 OK
INFO [gateway,92f25dcff9833079,87db5f7b1cbefedb] 9 --- [or-http-epoll-2] ...LogFilter    : Response - Status: 200 OK
INFO [gateway,d8b133f2200e7808,1743df4b5ad37d07] 9 --- [or-http-epoll-1] ...LogFilter    : Response - Status: 400 BAD_REQUEST

Digging deeper it seems the span returned on exchange.getAttribute(Span.class.getName()); has different trace ID in post routing phase.

Of course changing instrumentation-type to decorate_on_last fixes the issue but would like to avoid unnecessary performance degradations.

domaru
  • 348
  • 2
  • 13
  • 1
    Can you file an issue in the spring cloud sleuth repo and present a sample? before you do that please check the latest sleuth 3.0.2 and 2020.0.2 release train – Marcin Grzejszczak Mar 30 '21 at 10:15
  • You can also give a try to `DECORATE_QUEUES`: https://docs.spring.io/spring-cloud-sleuth/docs/current/reference/htmlsingle/#sleuth-reactor-integration >This should lead to feature parity with ON_EACH with low performance impact. – Jonatan Ivanov Mar 30 '21 at 15:41

0 Answers0