Skip to content

QUIC deferred logging: add retransmission rate#27699

Merged
alyssawilk merged 10 commits intoenvoyproxy:mainfrom
pksohn:retransmission-rate
Jun 5, 2023
Merged

QUIC deferred logging: add retransmission rate#27699
alyssawilk merged 10 commits intoenvoyproxy:mainfrom
pksohn:retransmission-rate

Conversation

@pksohn
Copy link
Copy Markdown
Contributor

@pksohn pksohn commented May 30, 2023

Commit Message: [QUIC only] Log retransmitted packets and bytes.
Additional Description: Adds to the deferred logging implementation from #23648 and implements the existing OnPacketRetransmitted function.

Risk Level: Low
Testing: Integration test
Docs Changes: N/A
Release Notes: added

Signed-off-by: Paul Sohn <paulsohn@google.com>
@repokitteh-read-only
Copy link
Copy Markdown

As a reminder, PRs marked as draft will not be automatically assigned reviewers,
or be handled by maintainer-oncall triage.

Please mark your PR as ready when you want it to be reviewed!

🐱

Caused by: #27699 was opened by pksohn.

see: more, trace.

pksohn added 4 commits May 30, 2023 16:04
Signed-off-by: Paul Sohn <paulsohn@google.com>
Signed-off-by: Paul Sohn <paulsohn@google.com>
Signed-off-by: Paul Sohn <paulsohn@google.com>
Signed-off-by: Paul Sohn <paulsohn@google.com>
@pksohn pksohn marked this pull request as ready for review May 30, 2023 16:23
@pksohn
Copy link
Copy Markdown
Contributor Author

pksohn commented May 30, 2023

/assign @alyssawilk

Signed-off-by: Paul Sohn <paulsohn@google.com>
@alyssawilk
Copy link
Copy Markdown
Contributor

/wait on CI

Signed-off-by: Paul Sohn <paulsohn@google.com>
pksohn added 2 commits May 31, 2023 17:58
Signed-off-by: Paul Sohn <paulsohn@google.com>
Signed-off-by: Paul Sohn <paulsohn@google.com>
Copy link
Copy Markdown
Contributor

@alyssawilk alyssawilk left a comment

Choose a reason for hiding this comment

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

This looks great overall! nits follow
/wait

added :ref:`CEL <envoy_v3_api_msg_extensions.formatter.cel.v3.Cel>` access log formatter to print CEL expression.
- area: access_log
change: |
(QUIC only) Added support for %BYTES_RETRANSMITTED% and %PACKETS_RETRANSMITTED%.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can you update logging docs to cover these as well?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done!

virtual void addBytesRetransmitted(uint64_t bytes_retransmitted) PURE;

/**
* @return the number of body bytes retransmitted by the stream.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

nothing else in here calls out it's body bytes. do we not track header bytes retransmitted? if not thoughts on naming?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Based on the relevant QUICHE code, I believe it indeed only tracks body bytes retransmitted. Do you mean we should rename the function to be specific about body bytes?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

If you're planning to implement this for HTTP/1 and 2 I assume they're going to track all bytes, in which case I'd be inclined to keep the naming the same and comment that for HTTP/3 it only tracks body bytes?
actually what's the plan for H2 given things are intermingled on the same TCP connection?
cc @RyanTheOptimist

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

If you're planning to implement this for HTTP/1 and 2 I assume they're going to track all bytes, in which case I'd be inclined to keep the naming the same and comment that for HTTP/3 it only tracks body bytes?

Agreed, sounds good.

actually what's the plan for H2 given things are intermingled on the same TCP connection?

This is still a totally open question.

Signed-off-by: Paul Sohn <paulsohn@google.com>
Copy link
Copy Markdown
Contributor

@alyssawilk alyssawilk left a comment

Choose a reason for hiding this comment

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

LGTM. Throwing over to @zuercher for logs review to get a thumbs up on handling of (currently) H3-only options.

@alyssawilk
Copy link
Copy Markdown
Contributor

@zuercher ping?
/retest

Copy link
Copy Markdown
Member

@zuercher zuercher left a comment

Choose a reason for hiding this comment

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

lgtm

@alyssawilk alyssawilk merged commit 068adb1 into envoyproxy:main Jun 5, 2023
@pksohn pksohn deleted the retransmission-rate branch June 5, 2023 19:30
asheryerm pushed a commit to asheryerm/envoy that referenced this pull request Jul 5, 2023
Commit Message: [QUIC only] Log retransmitted packets and bytes.
Additional Description: Adds to the deferred logging implementation from envoyproxy#23648 and implements the existing OnPacketRetransmitted function.

Risk Level: Low
Testing: Integration test
Docs Changes: N/A
Release Notes: added

Signed-off-by: Paul Sohn <paulsohn@google.com>
Signed-off-by: asheryer <asheryer@amazon.com>
reskin89 pushed a commit to reskin89/envoy that referenced this pull request Jul 11, 2023
Commit Message: [QUIC only] Log retransmitted packets and bytes.
Additional Description: Adds to the deferred logging implementation from envoyproxy#23648 and implements the existing OnPacketRetransmitted function.

Risk Level: Low
Testing: Integration test
Docs Changes: N/A
Release Notes: added

Signed-off-by: Paul Sohn <paulsohn@google.com>
Signed-off-by: Ryan Eskin <ryan.eskin89@protonmail.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.

3 participants