ci: add continuous benchmark tracking dashboard#3404
ci: add continuous benchmark tracking dashboard#3404cijothomas merged 3 commits intoopen-telemetry:mainfrom
Conversation
Add a new continuousBenchmark job that runs on every push to main, stores Criterion results in gh-pages, and publishes a dashboard. Also mention the benchmark dashboard in CONTRIBUTING.md.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3404 +/- ##
=======================================
+ Coverage 82.7% 83.2% +0.4%
=======================================
Files 128 128
Lines 24811 24899 +88
=======================================
+ Hits 20526 20716 +190
+ Misses 4285 4183 -102 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Adding |
|
Thanks. (I setup the dashboards for OTel-Arrow repo, so I an figure out the process here.. Its relatively easy, just need to dig up the steps) Before we do that, I'd like to double confirm that we want to run all the benches on every commit to main. The perf runner is a scarce commodity (there is just 1 machine), and I don't see much value in running every benchmark on every main commit. We need to have a curated subset. Alternatively, we can just have a nightly or even weekly (or twice a week) run for all benchmarks. |
@cijothomas ack concern on resource consumption. I think we should err on the side of running everything (else why have the benchmarks) at a lower cadence. It takes about 30 minutes to run presently. I think nightly would be fine but we can tone it down to weekly if you prefer |
Okay. Let us run all of them, and modify the schedule to be nightly, not every commit. |
315aa2b to
804954b
Compare
chore: temporarily enable guard on workflow_dispatch
I reckon this should be good to go; we'll just need to enable github pages on this repo. |
Summary
continuousBenchmarkjob that runs on every push tomain, storing Criterion results viagithub-action-benchmarkand publishing a dashboard to GitHub Pages. This follows the pattern used in otel-collector-contrib and otel-arrowlibssl-dev(fix: add openssl-dev to benchmark container env #3401 is needed to fix benchmarks anyway)Dashboard will be at: https://open-telemetry.github.io/opentelemetry-rust/dev/bench/
Requires enabling GitHub Pages on the
gh-pagesbranch (the action creates the branch automatically on first run). We'll need to chat with someone in opentelemetry-community to validate this is well and good and do the repo modifications. I will chase this up once we are happy before we merge.Testing
performancelabel still triggers comparison job:test: verify PR benchmark workflow scottgerring/opentelemetry-rust#1