-
Notifications
You must be signed in to change notification settings - Fork 33
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
ci(l2): automate flamegraph tests #1366
base: main
Are you sure you want to change the base?
Conversation
4b9b05a
to
45b74ad
Compare
45b74ad
to
441fc6a
Compare
8df6f77
to
56dccda
Compare
d6742e6
to
2d9e8fd
Compare
91c98a6
to
6d25f4a
Compare
fd78a07
to
0bfbfbd
Compare
0bfbfbd
to
1950130
Compare
6586462
to
35c6b54
Compare
35c6b54
to
82782f9
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good work 🚀. I think we have to use the script you've created for the Makefile located at the root of the project, apart from that, it's ready to merge in my opinion.
while [ ! -x "./target/profiling/reth" ]; do | ||
echo "Waiting for reth binary to be ready..." | ||
sleep 10 | ||
done |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I assume this is the fix for the absurd time measurements, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right.
cargo flamegraph
both compiles and runs the binary, since we run it with &
(in the background) we would immediately start the load test and measuring time, which means we would measure compile time as well!
So now I wait until the binary is generated to start the load test and the time measurement.
c8ed97e
to
8262e6b
Compare
8262e6b
to
f7ecf83
Compare
f7ecf83
to
dbdd8ac
Compare
Motivation
We want to generate flamegraphs both for
ethrex
and forreth
on each push to main, and then be able to view them in github pages or similar.You can see the flamegraphs at https://lambdaclass.github.io/ethrex/
Description
ethrex_l2
CLI was modified to be able to create a default config non-interactively withethrex_l2 config create default --default
since the interactive CLI was not working in Github CI.ethrex_l2 test load
was modified so that it now retries when it can't connect to the server instead of failing directly, this was needed to run the test in Github CI.test_data/genesis-load-test.json
was modified to add balance to a test account, since the tests were failing sometimes otherwise.make flamegraph
locally to run the same scripts locally to generate the Ethrex flamegraphs (not the Reth ones).Notes
inferno-collapse-perf
plusinferno-flamegraph
separately because of a bug inperf
with Github CI where it would output garbage to the stdout instead of the actual perf data to aperf.data
file.Things that can be improved or we can check
perf script
with the--no-inline
option, since it takes a very long time without it, maybe we're not getting the proper data because of that..png
files as preview since the.svg
look cropped there.scripts/flamegraph.sh
and.github/scripts/flamegraph_watcher.sh
and very similar and they could be merged into one, however I hardcoded some CI-paths in the latter one.