-
Notifications
You must be signed in to change notification settings - Fork 27
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
feat: add sync-v2 benchmark to CI #1083
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
glevco
force-pushed
the
feat/benchmarking
branch
from
July 12, 2024 17:02
134ef8a
to
ff8030d
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #1083 +/- ##
=======================================
Coverage 85.01% 85.02%
=======================================
Files 314 314
Lines 23957 23957
Branches 3621 3621
=======================================
+ Hits 20367 20369 +2
+ Misses 2879 2878 -1
+ Partials 711 710 -1 ☔ View full report in Codecov by Sentry. |
glevco
force-pushed
the
feat/benchmarking
branch
2 times, most recently
from
July 12, 2024 18:28
68650b7
to
4278024
Compare
glevco
force-pushed
the
feat/benchmarking
branch
from
July 12, 2024 19:10
4278024
to
555df74
Compare
Bencher
Click to view all benchmark results
Bencher - Continuous Benchmarking View Public Perf Page Docs | Repo | Chat | Help |
glevco
commented
Jul 12, 2024
glevco
commented
Jul 12, 2024
jansegre
previously approved these changes
Jul 17, 2024
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.
Looks good to me.
msbrogli
previously approved these changes
Jul 30, 2024
glevco
force-pushed
the
feat/benchmarking
branch
from
August 5, 2024 15:40
555df74
to
7cee0f6
Compare
jansegre
approved these changes
Aug 5, 2024
msbrogli
approved these changes
Aug 5, 2024
2 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
This PR implements the basic infrastructure for running benchmarks in our CI through GitHub Actions and the Bencher tool, which automatically tracks changes in performance across PRs (though it is more flexible than that). Bencher is open source and provides their cloud to run the Bencher service, which we're using through a free tier plan. We can consider upgrading our plan or running our own self-hosted service if necessary, but I don't see any reasons for now. This means our benchmarking results are public on the Bencher Console.
We setup a benchmark for tracking sync-v2 performance. It works by:
By doing this we isolate the network and test only the node performance itself. Of course there may be unpredictable variations in GitHub machines, but we'll only understand this impact by observing the metrics over time.
The job described above runs in two workflows, one for every push on
master
, which sets the baseline for our metrics, and one for each PR tomaster
, which compares the metric value to the baseline and triggers a CI error if it's above a certain threshold. This is configured though the Bencher console directly. I configured both upper and lower thresholds of 10% (it's useful to set a lower threshold to track performance improvements, as an unpredicted drop in time may indicate new bugs).There are improvements to be made in the future:
Acceptance Criteria
setup-hathor-env
, used by our main CI and the new benchmarking workflows.Continuous Benchmarking base branch
andContinuous Benchmarking PRs
jobs.Checklist
master
, confirm this code is production-ready and can be included in future releases as soon as it gets merged