Global Build Stats Plugin

Written by: Nicolas De Loof

Overview

For every job, Jenkins maintains a set of past builds that it uses to compute the "weather" of a project as well as trends for unit tests, build time or performance metrics. This is an awesome feature, as it goes beyond the base concept of continuous integration (CI) and brings the project to life, as a mirror of the team development practices.

The drawback is that job history consumes a large amount of disk space and slows Jenkins initialization, so you have to configure a retention strategy to reduce the footprint of your jobs' history. This also only gives you a per-job view, not the whole Jenkins instance.

Jenkins Global Build Stat plugin has been designed to get usage statistics at an upper level. As Jenkins does for jobs, it gathers data for every build but doesn't keep detailled bits for each run. Storing build history as synthetic information, it can keep a far longer history of Jenkins builds and compute a synthetic view of your CI activity.

Stable Release Version

Global Build Stats plugin was created by

As it doesn't use Jenkins jobs build history (but for data initialization), Global Build Stats will store build history in custom files; that may increase the data storage needed by gigabytes. For this reason, it's important to configure a dedicated retention strategy. The simplest and most useful is to set up the number of days to keep builds history. You can then compute and compare CI usage for, say, the last six months, without requiring a huge hard disk, and generate a large set of charts based on usage.

Tips & Tricks, How to Use it on DEV/RUN

Global Build Stats can be used to compute the total cumulative build time for selected jobs. This can be very useful if you consider migrating your CI to CloudBees DEV@cloud service, but you need an estimate of hosting cost.

Running a few test builds on CloudBees infrastructure to determine the ratio between our build agent velocity and your own infrastructure, you can then estimate the build minutes required, per month, for your usage of Jenkins. Thanks to job filtering, you can do this calculation on a subset of your jobs that can be run on a DEV@cloud FREE subscription with the limited set of essential plugins.

Known Issues

Global Build Stats plugin uses a dedicated set of files to store build statistics. Even if access is performed in an asynchronous way, on large Jenkins instances this may result in a long initialization period. For huge Jenkins build farms with a single controller, a wait period of a few minutes for Jenkins to initialize on startup may be required. Improvement is planned in 1.3 via a more flexible storage engine.

Relevant Documentation

Global Build Stats plugin is well documented on https://wiki.jenkins-ci.org/display/JENKINS/Global+Build+Stats+Plugin . You may also get in touch with the plugin author by joining the Jenkins user mailing list.

Enjoy!

Nicholas de Loof, Senior Engineer

Stay up to date

We'll never share your email address and you can opt out at any time, we promise.