Rishabh has created two JMH benchmarks for specific git operations inside the Jenkins git plugin. He's running those micro benchmarks without a JenkinsRule because the git plugin does not require a JenkinsRule to operate at that level.
I assume you need a JenkinsRule because you're running a pipeline. However, it seems like you could make the pre-steps be part of the initial creation of state, then run the micro benchmark solely on the subset of the pipeline that interests you. On Sun, Jun 7, 2020 at 7:52 AM Ullrich Hafner <[email protected]> wrote: > Is there a way to use the JMH within the individual steps of a plugin? The > examples I have seen so far start with a given Jenkins instance and then > call methods on Jenkins object model. > > So what is supported is something like > > jenkins.doSomething(); > > to measure the performance of one of Jenkins API methods. > > or > > job.scheduleBuild2() > > to measure the performance of a whole build pipeline. > > What I’m interested in my warnings plugin is the performance of individual > steps in the pipeline. > E.g., if I have the following steps: > > checkout scm > withMaven(maven: 'mvn-default', mavenLocalRepo: > '/var/data/m2repository', mavenOpts: '-Xmx768m -Xms512m') { > sh 'mvn -ntp -V -e clean verify -f plugin/pom.xml > -Dmaven.test.failure.ignore -DskipITs' > } > recordIssues tools: [java(), javaDoc()], aggregatingResults: 'true', > id: 'java', name: 'Java' > > I am interested only in the results of the last step. > > It would be even better if I can obtain the performance results of the > individual activities in my plugin. I.e. the recordWarnings step actually > is composed of several steps: > - parse warnings > - compute fingerprints > - collect blames from Git > etc. > > Is this supported somehow yet? > > > Am 22.06.2019 um 07:32 schrieb Abhyudaya Sharma <[email protected] > >: > > Hi everyone, > > The Micro-benchmarking framework is now ready and is available through > Plugin POM 3.46 or through Jenkins Test Harness 2.51. There is now a blog > post <https://jenkins.io/blog/2019/06/21/performance-testing-jenkins/> > summarizing > it on jenkins.io. You can find examples for the benchmarks in the Role > Strategy Plugin here > <https://github.com/jenkinsci/role-strategy-plugin/tree/master/src/test/java/jmh/benchmarks>. > Looking forward to your feedback and comments. > > Thanks > Abhyudaya Sharma > > On Tuesday, 28 May 2019 11:50:14 UTC+5:30, Abhyudaya Sharma wrote: >> >> Hi everyone, >> >> As a part of this year's Google Summer of Code, I have been working on a >> framework for allowing Java Microbenchmark Harness (JMH) benchmarks to be >> >> run with Jenkins. The basic framework was implemented in the Role Strategy >> >> Plugin through this pull request: >> https://github.com/jenkinsci/role-strategy-plugin/pull/63 . For each >> benchmark, a temporary Jenkins instance is created, similar to how >> JenkinsRule from Jenkins Test Harness does it. The benchmarks are run >> through a unit test which allows them to be integrated with the normal >> pull >> request builds (if required). Apart from configuring the Jenkins instance >> >> for test using Java code, I've also added support for easily configuring >> the >> instance by YAML files using Jenkins Configuration as Code. The benchmark >> >> reports are generated as JSON files which are compatible with the >> jmh-report >> plugin. I have implemented a couple of benchmarks for the Role Strategy >> Plugin which can be seen in the Role Strategy Plugin GitHub repository. I >> >> have attached screenshots of these results as visualized by the jmh-report >> >> plugin. To make the framework easier to use, I'm also working on running >> the >> benchmarks through a Maven profile. >> >> To make it available to the rest of the community, I would like to propose >> >> to make it either a part of Jenkins Test Harness or a part of new library >> so >> it can be used by other plugins and perhaps by Jenkins core itself. I >> would >> to love to hear your feedback, comments and suggestions. It would be even >> >> better if you could join the project's weekly meetings (Tuesdays and >> Fridays >> at 7:00 AM UTC) and help us improve this framework. >> >> Thanks >> Abhyudaya >> GitHub: AbhyudayaSharma >> >> >> > -- > You received this message because you are subscribed to the Google Groups > "Jenkins Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-dev/7d49f6f8-79ed-49ab-a9ab-f94b376caf4a%40googlegroups.com > <https://groups.google.com/d/msgid/jenkinsci-dev/7d49f6f8-79ed-49ab-a9ab-f94b376caf4a%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > > > -- > You received this message because you are subscribed to the Google Groups > "Jenkins Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-dev/F0FEB18C-9B6F-495A-A4F8-31BAE16271C0%40gmail.com > <https://groups.google.com/d/msgid/jenkinsci-dev/F0FEB18C-9B6F-495A-A4F8-31BAE16271C0%40gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CAO49JtGneTpq4OpuTjKaFu1%3D-7QCbO2ZqFQmxpaERWgp1AS1ew%40mail.gmail.com.
