without this change there were cases (that we didn't test) where the tracing context would leak and pollute other parts of the code (including tests)
with this change we ensure that in case of errors we don't allow any dangling tracing context
* TracingChannelInterceptor: simple refactoring
* * More clean up in the `TracingChannelInterceptor`
- Move Spring Cloud Stream classes logic into `static` methods
to avoid eager load for those classes which are not present on CP
- Remove `emptyMessage()` since the contract for `ChannelInterceptor`
never accept a `null`
- Remove thread state manipulation from the `postReceive()` since
no one takes care about thread local afterwards
- Remove `afterReceiveCompletion()` in favor of its `default` impl
in the interface: we don't do thread local manipulation for `receive()`
since `afterReceiveCompletion()` is called *before* the message is really
returned to the target subscriber on the channel
* * Restore span manipulation for `receive()`.
Even if we don't need a thread local store, we still
need to call `span.end()` and set an exception tag
to it if any.
So, just reuse an existing API which includes thread local.
Even if we don't need it logically, there might be some
other interceptors in between which would like to take a
span from thread local do something even on that "void"
`receive()` operation
Without this change we don't even really know how many tags are created and what are their values.
With this change we want this information to be automatically rendered.
Spans names are in the form '<http method> <uri template>'
(e.g. 'GET /path/{id}'). This naming strategy matches the span names
generated by TraceWebFilter.
The improve naming strategy is not applied to RestTemplate as the uri
template is not readily available to interceptors and RestTemplate is
in maintenance mode
* Bump javadocs since version to 3.1.0
* Extend integration tests to cover all Kafka clients
* Add autoconfiguration module for kafka instrumentation
* Refactor instrumentation for reactive Kafka Receiver
* Refactor instrumentation for reactive Kafka Receiver
* Add docs for Kafka instrumentation
* Revert "Refactor instrumentation for reactive Kafka Receiver"
This reverts commit 58c8f2fa
* Revert "Revert "Refactor instrumentation for reactive Kafka Receiver""
This reverts commit 450a9f8c
* Remove empty test
* Resolve comments from PR 1936
* Revert whitespaces
* Revert whitespaces in common tests pom.xml
* Fix autoconfig to consider generics when registering beans.
Only register reactor-kafka beans if the dependency is on the classpath.
* Split autoconfig for kafka and reactor-kafka
without this change a default Feign.Builder doesn't have its feign.Client instrumented
with this change we're using reflection to instrument that Client
fixes gh-1870
* Don't allow double Gateway instrumentation
with this change we're doing both HeaderFilter based Gateway instrumentation and the Netty Client one.
with this change we're conditionally enabling the HeaderFilter instrumentation only when there is no Netty Client one present on the classpath.
fixes gh-1840