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

Add a "replay" mode #716

Open
steve-marmalade opened this issue Oct 22, 2024 · 0 comments
Open

Add a "replay" mode #716

steve-marmalade opened this issue Oct 22, 2024 · 0 comments

Comments

@steve-marmalade
Copy link

Proposal

Extend the (excellent) vegeta attack -format=json utility such that the rate of requests comes from the timestamps in the input json file (rather than a constant rate specified on the CLI). As a bonus, provide a --playback-speed-multiplier arg that would allow the user to speed up the rate of requests (similar in principle to a podcast or youtube video).

Background

I am currently using vegeta to test application changes by replaying a sample of production request traffic. The existing vegeta attack -format=json provides a straightforward interface for me to feed in requests that I have exported from our logging service. The missing piece is that vegeta submits the requests at a constant rate, which does not mirror the realistic rate of requests to our services.

Combined with the bonus --playback-speed-multiplier flag, this would allow for business use-cases like:

The latest efficiency improvements have lowered CPU utilization from 80% to 50% when simulating production traffic during our daily peak.

The database is able to support 2x the rate of production traffic without exceeding CPU > 90% (which would come from --playback-speed-multiplier 2)

Workarounds

Estimating a constant rate based on the average rate of requests in the request log. This is what I'm currently doing.

@github-staff github-staff deleted a comment Oct 29, 2024
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

No branches or pull requests

1 participant