eG Monitoring
 

Measures reported by JenkinsJobsTest

A job is a collection of steps that you can use to build your source code, test your code, run a shell script, or to run an Ansible role in a remote host. There are multiple job types available to support your workflow for continuous integration & continuous delivery. Jenkins supports different types ofbuild jobs. Some of them are :

Freestyle software project - Freestyle build jobs are general-purpose build jobs that provide maximum of flexibility and can be used for any type of project. This is the central feature of Jenkins. Jenkins will build your project, combining any SCM with any build system, and this can be even used for something other than software build.

Pipeline - This job runs the entire software development workflow as code. Instead of creating several jobs for each stage of software development, you can now run the entire workflow as one code.

Maven project - Build a maven project. Jenkins takes advantage of your POM files and drastically reduces the configuration.

Multiconfiguration job (also referred to as a “matrix project”) - This job allows you to run the same build job on different environments. It is used for testing an application in different environments, with different databases, or even on different build machines.

External Job - This type of job allows you to record the execution of a process run outside Jenkins, even on a remote machine. This is designed so that you can use Jenkins as a dashboard of your existing automation system.

If the Jenkins server is unable to process these jobs quickly or the jobs fail/are aborted frequently, it would result in an overload condition characterized by long-winding job queues and a slowdown. In the event of such abnormalities, administrators will have to instantly figure out which type of jobs are contributing to the overload and why - is it because jobs of this type are failing frequently? Or is it because the jobs are taking more time for execution? The JenkinsJobsTest helps administrators answer these questions!

This test auto-discovers different types of jobs that are currently running on the target Jenkins server, and for each job type, reports the count of jobs executed, the execution time of jobs, the count of job failures and abortions, and the percentage of job health. This way, the test sheds light on job types that fail/ are aborted often, those that are taking too long to execute, and the probable reasons for the same.

Outputs of the test : : One set of results for each job type running on the target Jenkins server.

The measures made by this test are as follows:

Measurement Description Measurement Unit Interpretation
Job_status Indicates the current status of this job.   The values reported by this measure and its numeric equivalents are mentioned in the table below:

Measure Value Numeric Value
Disabled 0
Not built 1
Enabled 2


Note:

By default, this measure reports the current status of each job. The graph of this measure however, is represented using the numeric equivalents only.
Total_builds Indicates the number of times that this job is executed on the target Jenkins server. Number Compare the value of this measure across jobs to know which job is executed for the maximum number of times.
Successful_builds Indicates the number of times that this job is executed successfully Number  
Failed_builds Indicates the number of times that this job failed during execution. Number Compare the value of this measure across jobs to know which job is failing frequently.
Aborted_builds Indicates the number of times that execution of this job is aborted. Number  
Build_stability Indicates the health of this job in percentage. Percent Ideally, the value of this measure should be high. Compare the value of this measure across jobs to know which job is in unhealthy state.
Last_build_status Indicates the status of this job during the last measurement period.   The values reported by this measure and its numeric equivalents are mentioned in the table below:

Measure Value Numeric Value
Failure 0
Success 1


Note:

By default, this measure reports the status of each job during the last measurement period. The graph of this measure however, is represented using the numeric equivalents only.

The detailed diagnosis of this measure reveals the type and status of each job, time taken by each job, estimated duration for job execution and the time at which the job execution was started.
Last_build_duration Indicates the time taken by this job during the last measurement period. Seconds  
Average_job_execution_time Indicates the average time taken for executing this job. Seconds The value of this measure will vary based on the type and size of the job that is being executed.

Ideally, the value of this measure should be low. A consistent increase in the value of this measure for any job type could indicate a bottleneck when processing jobs of this type. Administrators may then want to investigate further to figure out where the bottleneck lies.