-
Notifications
You must be signed in to change notification settings - Fork 228
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GH-321 / PR 325 - Observation propagation #368
Comments
upvoting this |
When you mention Spring Boot and its WebFlux server, you don't compare apples with apples in this project. At the same time we accept this ticket as a feature improvement since we also think that something like |
upvoting |
In general it seems it's impossible to make "seamless" tracing with flux publishers (whether it's reactor kafka or other flux source) since the context is bound with publisher as whole, when it's created and not with it's records. Thus tracing for flux will always require significant code changes, since we need to change the logic from providing handler to Flux.flatMap to actually making a wrapper to Flux.flatMap that wraps a handler for Mono.flatMap that would have access to correct context as that mono would have special context designed for that 1 record on it's queue upon receiving that event. |
Currently testing the enhancements added by PR #325. Great work!!
Is there a chance that observation context will be fully initialized on consumer side? I mean without manually calling API as described below?
When using HTTP calls
tag/tap
orSpan.current()
can be used on consumer side (Spring Boot 3.1.5). What is different when propagating observation via Kafka topic? Or how does Kafka limit observation propagation?Because the reverse order nature of the Reactor context, the observation functionality on the
KafkaReceiver
is limited just to a singletrace
logging message for each received record.Restored tracing information will be correlated into logs if so configured for the logging system.
If there are requirements to continue an observation on the consumer side, the
KafkaReceiverObservation.RECEIVER_OBSERVATION
API must be used manually in the record processing operator:The text was updated successfully, but these errors were encountered: