-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Performance testing infrastructure. #10117
Conversation
bedb635
to
64691f1
Compare
74406f3
to
3345511
Compare
f618487
to
3152de7
Compare
0753f12
to
bbaaacd
Compare
telegraf/statsd does seem a bit excessive as you suggest, have you considered something like https://github.com/airspeed-velocity/asv/ ? I tested it out with gxadmin (not a normal use case) and it was pretty nice for per-commit/per-infra setup performance numbers. |
That does look interesting, but the docs are a bit basic. Did you manage to do timings around log statements ? The benchmarks all seem to revolve around total runtime when asv runs the actual code, which doesn't seem like it would be applicable / detailed enough ? |
Hey @mvdbeek. I didn't try and do timings around log statements, only around select function calls. I think it grew out of benchmarking individual numpy function calls which felt like a good fit for galaxy, but I didn't look closely at the PR and if you're doing it based off of the diff between two log statements, maybe it isn't such an easy solution. That said, if you want to use their viz infrastructure, since you're already writing out JSON, you could just write something like their JSON format (ugly I know) and get the nice auto-generated website for free? |
8d40a69
to
709b1c6
Compare
I spent some time looking at allure for another context, it wasn't exactly what I'd want for this but it might be able to get there with the right plugin and some bootstrap. The numpy benchmarking tool looks awesome though. What this PR currently produces is comparisons of the PR branch versus the target that look like: You can download these artifacts from the Github action right now. There is another version that is just the timings without the comparison that I wanted to include on all the tests - but it really slowed down the tests immensely and to the point where they didn't get close to finishing it looks like so I reverted that change in the latest commit and just did the PR vs target comparison for the performance tests instead of for all the API tests. |
7d51824
to
7a87575
Compare
Older version of this PR backed up (https://github.com/jmchilton/galaxy/pull/new/performance_tests_backup). Did a very stripped down rebase into a single commit just now. |
7a87575
to
e86f343
Compare
Can I run |
It works for me to just run it directly with pytest (https://gist.github.com/jmchilton/e6007becb21db94db4c392b861094f6d). Is there any more context around that error? |
Thank you for the gist - that's exactly the output I got. I was referring to this error (which, I assume, is not relevant) - https://gist.github.com/jmchilton/e6007becb21db94db4c392b861094f6d#file-gistfile1-txt-L36 |
e86f343
to
6ae49af
Compare
| **Sum** *(ms)* | ``{{ has_metrics.values() | map(attribute="sum") | join("`` | ``") }}`` | | ||
| **Median** *(ms)* | ``{{ has_metrics.values() | map(attribute="median") | join("`` | ``") }}`` | | ||
| **Mean** *(ms)* | ``{{ has_metrics.values() | map(attribute="mean") | join("`` | ``") }}`` | | ||
| **Standard Deviation** | ``{{ has_metrics.values() | map(attribute="stdev") | join("`` | ``") }}`` | |
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.
same formatting suggestion as in tests_markdown.tpl
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.
This is so very cool! (that is, once I figured out how to run the tests and generate the reports!) I'm very sorry it took me so long to review this - now it has to be rebased. All my comments are minor suggestions only.
26b47b7
to
adcfc86
Compare
adcfc86
to
e3dedd8
Compare
Exploiting that approve to merge without a final check because I need to show some progress at PI meeting Monday, but I just rebased with the above comments. Thanks for the detailed review @ic4f! |
Thank you for putting all that work into addressing those minor comments! Again, sorry for the delayed review @jmchilton ! |
No description provided.