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

context: add response.total_size #9839

Merged
merged 2 commits into from
Jan 28, 2020

Conversation

kyessenov
Copy link
Contributor

Signed-off-by: Kuat Yessenov kuat@google.com

Description: define response.total_size. It is used via Wasm ABI in an istio telemetry extension, and we noticed it's missing.
Risk Level: low
Testing: unit
Docs Changes: list of properties updated
Release Notes: none

Signed-off-by: Kuat Yessenov <kuat@google.com>
@kyessenov kyessenov requested a review from lizan as a code owner January 27, 2020 19:30
@mandarjog
Copy link
Contributor

@PiotrSikora @lizan this is blocking istio 1.5 release.

@@ -83,6 +83,7 @@ The following attributes are exposed to the language runtime:
response.headers, string map, All response headers
response.trailers, string map, All response trailers
response.size, int, Size of the response body
response.total_size, int, Total size of the response including the headers and the trailers
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unpacked or on the wire (i.e. does it account for HPACK/QPACK, chunked encoding, etc.)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had the same question. I'm using bytes() property of the header map. I think it's reporting the compressed size, since the numbers don't seem to add up.

Copy link
Contributor

@PiotrSikora PiotrSikora Jan 27, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, I thought that bytes() is used to make sure that uncompressed headers don't exceed the configured limit, so that shouldn't be the case.

@asraa you're the authority here, any ideas?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bytes() is approximate uncompressed size.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FWIW existing code uses the same method to get the sizes: https://github.com/istio/proxy/blob/master/src/envoy/http/mixer/filter.cc#L61. So far noone complained that it's not precise.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks fine to me in general, so will defer to all of you if you want different doc text or you want to go with this.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be helpful to clarify that this is "approximate uncompressed size of headers and trailers" and not the wire size.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, updated the doc.

Signed-off-by: Kuat Yessenov <kuat@google.com>
@mattklein123 mattklein123 self-assigned this Jan 27, 2020
@mattklein123 mattklein123 merged commit 7fff628 into envoyproxy:master Jan 28, 2020
kyessenov added a commit to kyessenov/envoy that referenced this pull request Jan 28, 2020
Signed-off-by: Kuat Yessenov <kuat@google.com>
kyessenov added a commit to istio/envoy that referenced this pull request Jan 28, 2020
kyessenov added a commit to istio/envoy that referenced this pull request Feb 3, 2020
Signed-off-by: Kuat Yessenov <kuat@google.com>
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.

4 participants