Standardize http.Client collector configurations #121
Merged
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.
Intent
The current implementation will use two different
http.Client
configurations depending on whether the collector is targetting ALL queues or only particular ones.Problem
When targetting particular queues, the code will use
http.DefaultClient
and, as a consequence of its default values, it will use an infinite client timeout. This is particularly problematic as upstream servers may not have timeouts set either or use a very long one. Hence, when used in the Lambda environment, a bad behaving request can force the function execution time to skyrocket and go past the Lambda execution timeout.Solution
To ensure that both configurations (all queues vs particular queues) do use the same HTTP client configurations with a sensible client timeout value.