Batch logs before sending #98
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.
Currently report_event() and report_log_event() methods in PythonSDK schedule each log to be send in a separate request to EEC.
This causes problems due to EEC’s insufficient log ingest performance → 200-300ms request response time on average, which can cause significant problems when there are hundreds and thousands of requests in a single interval.
To minimize the impact of the subpar efficiency, the goal is to batch reported logs and send them in a single message once per interval.
Similar mechanism is currently implemented for metrics ingest.
What is important is that the change must not change the interface, so that no changes are required for all built-in and custom Python extensions.
What could be worth implementing however, is an optional parameter which would give the possibility to also send logs in the “old way”. This could be useful for performance testing in the future and in this case logs should arrive earlier on the server, hence it could be useful in a production environment.