fix(impl): Support custom span creation in Processor #124
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Probably a very narrow use case.
But it could happen.
Along the way of a recent PR by @nreant1A trying to make sure:
First added 1 QuarkusTest in impl.
The implementation was:
ping.withValue(...)
The issue we have: baggage cannot be modified in the processor, and any other context modification in the processor is basically ignored (creating a custom span for instance).
Solution: move the injection of the contextual data (traceparent, tracestate, baggage) at message production by implementing a TracingProducerInterceptor.
The OpenTelemetryExtension for JUnit 5 has bean copy pasted so we can inject the W3CBaggagePropagator.
Indeed the original class is final, with private constructor.
A fix upstream will be done shortly.
Also the KStreamTopologyDriverTest started failing in tests related to tracing.
Actually in tests based on TopologyTestDriver, the ProducerOnSendInterceptors are not called.
The solution is to transform those tests methods in ones using the Kafka Devservices.