Skip to content
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

KREST-7091 POC of request tracing with focus on Produce v3 #1064

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

dimitarndimitrov
Copy link
Member

This is a POC of a basic request tracing mechanism that intercepts requests, sets up a trace ID for each request, and traces (via logging) various stages of the request and response handling.

The POC uses Jersey filters for the main tracing pointcuts - it intercepts with a pre-matching request filter, post-matching request filter, and a response filter. The trace ID that can be extracted from the ContainerRequestContext can be used in the corresponding resources for further tracing (e.g. tracing just before making a Kafka RPC and just after receiving a result from it). The POC does that just for the Produce v3 API where it traces the parsing and sending of records, the reception of results (or errors), and the closing of the so-called produce batch or stream and the corresponding response channel.

It has been tested with a Produce v3 workload of ~80 concurrent req/sec and seemed to work well, being able to provide various data points about E2E latency from the Kafka REST POV, Produce v3 request outliers, etc.

@dimitarndimitrov
Copy link
Member Author

I have pushed these changes to the main confluentinc repo of kafka-rest:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant