opentracing-contrib / java-spring-web

OpenTracing Spring Web instrumentation
Apache License 2.0
107 stars 59 forks source link

Span customization - Extend WebFluxSpanDecorator #140

Open NHebrard opened 3 years ago

NHebrard commented 3 years ago

Hello!

I need to customize a span right after its creation and before its activation (injecting some baggage items).

I am encountering this need for both regular Servlet based applications and WebFlux applications.

In the Servlet world, it’s totally feasible thanks to a ServletFilterSpanDecorator.onRequest() which is invoked right after the span creation and before its activation. See TracingFilter.

However, it’s not achievable in the reactor world as the WebFluxSpanDecorator.onRequest() is actually called at the subscription time occurring after the span activation. See TracingOperator and TracingSubscriber.

Could we extend the WebFluxSpanDecorator by adding a new callback onCreate() that would be called right after the span creation? I would also remove This is called right after span in created from the onRequest() documentation as it's not really the case.

Let me know if you agree with the proposal, I'll be happy to contribute! :)

geoand commented 3 years ago

Hi,

That sounds good to me! Feel free to contribute :)