Allow disabling thread wakeup in send_request_to_node #2335
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.
The Datadog kafka_consumer check uses the
kafka-python
client library to collect metrics. On very large clusters, it sometimes gets aKafkaTimeoutError
similar to the one here. We've been able to work around this by disabling the socket wakeup since our check runs in a single thread (after looking at this old Github issue that was meant to fix the issue). However, we needed to re-implement some parts of the_send_request_to_node()
function since the library's version always runs a socket wakeup.This PR just adds the
wakeup
argument to_send_request_to_node()
to make it easier to skip socket wakeup.I saw that there's a few other places in the code that calls
_client.send()
where adding awakeup
argument can be possible (examples: 1, 2), but wasn't sure if those would necessarily be useful.Let me know if I should do anything else for this PR!
This change is