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

Introduce option for high volume request tracking #1196

Merged
merged 3 commits into from
Sep 24, 2024
Merged

Conversation

rafaelroquetto
Copy link
Contributor

@rafaelroquetto rafaelroquetto commented Sep 23, 2024

Beyla tracks the full request completion time, this typically means we look to see if the application is responding with more data after the first HTTP response. One example would be a large file download, where the majority of the time is actually serializing the data on the wire. When the client uses keep-alive, we don't necessarily see the connection close event, but we tell by new pushed requests that we should terminate an earlier request.

This approach doesn't work well in when there's high volume of requests, e.g. beyond our current map sizing. The delayed requests will likely be booted out of the map before we have a chance to complete them. The ideal fix is to provide an option to resize the maps to match the volume of requests, but we need to finish the work of the tracer code restructuring for this to happen.

I'm adding an option to force Beyla to complete the request as soon as the response is finished. It will produce less accurate accounting for large file downlaods, but it will avoid no data for high volume of requests. We can also use this option to unblock clients if there are bugs in the delayed request accounting.

This PR is partial, since I accidentally pushed to main. Please review the following commits too:
7be9c33
and
bd3e5f4

(Original PR: #1192)

@rafaelroquetto rafaelroquetto changed the title High volume requests2 Introduce option for high volume request tracking Sep 23, 2024
@codecov-commenter
Copy link

codecov-commenter commented Sep 23, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 81.10%. Comparing base (c3901b2) to head (dc5fba1).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1196      +/-   ##
==========================================
+ Coverage   81.03%   81.10%   +0.06%     
==========================================
  Files         136      136              
  Lines       11501    11501              
==========================================
+ Hits         9320     9328       +8     
+ Misses       1647     1641       -6     
+ Partials      534      532       -2     
Flag Coverage Δ
integration-test 56.99% <ø> (+0.01%) ⬆️
k8s-integration-test 58.86% <ø> (+0.18%) ⬆️
oats-test 35.81% <ø> (ø)
unittests 53.30% <ø> (-0.04%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@grcevski grcevski marked this pull request as ready for review September 24, 2024 00:49
Copy link
Contributor

@grcevski grcevski left a comment

Choose a reason for hiding this comment

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

LGTM!

@grcevski grcevski merged commit 926af81 into main Sep 24, 2024
11 checks passed
@grcevski grcevski deleted the high_volume_requests2 branch September 24, 2024 00:50
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