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 slave 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.
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 master, 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.
Nicholas de Loof, Senior Engineer