Optimize response body length reporting in OkHttp instrumentation#1790
Merged
0xnm merged 1 commit intoDec 28, 2023
Merged
Conversation
0xnm
force-pushed
the
nogorodnikov/optimize-body-length-reporting-in-okhttp-instrumentation
branch
from
December 27, 2023 10:35
c0cce81 to
c42c0c2
Compare
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## develop #1790 +/- ##
===========================================
- Coverage 83.64% 83.43% -0.21%
===========================================
Files 466 466
Lines 16368 16347 -21
Branches 2451 2449 -2
===========================================
- Hits 13691 13639 -52
- Misses 2023 2042 +19
- Partials 654 666 +12
|
xgouchet
approved these changes
Dec 27, 2023
mariusc83
approved these changes
Dec 28, 2023
0xnm
deleted the
nogorodnikov/optimize-body-length-reporting-in-okhttp-instrumentation
branch
December 28, 2023 08:35
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What does this PR do?
This PR optimizes the way we are reporting response body length in OkHttp instrumentation.
We first try to get content length from response body as-is, and if it didn't work, we try to call
peekBody. The explanation to that is related to the way OkHttp works: the following doc states, that OkHttp will removeContent-Lengthheader (and makecontentLength()return -1) if transparent compression is used. This means that ifbody.contentLengthreturns positive value, then we are good already, and if it is not, we may try to callpeekBodywhich will apply decompression and load a decompressed body in memory.Another benefit is that now we can report body length more than 1MB, because
peekBodywas limited by 1MB and if there is no need to call it, we may report full body length.Motivation
What inspired you to submit this pull request?
Additional Notes
Anything else we should know when reviewing?
Review checklist (to be filled by reviewers)