eG Monitoring
 

Measures reported by JenkinsNodeTest

Jenkins uses a Master-Slave architecture to manage distributed builds. In this architecture, Master and Slave nodes communicate through TCP/IP protocol. The main Jenkins server acts as the Master node that manages slaves. A slave is a Java executable that runs on a remote machine.

Following are the jobs handled by the Jenkins Master's:

  • Scheduling build jobs.

  • Dispatching builds to the slaves for the actual execution.

  • Monitor the slaves (possibly taking them online and offline as required).

  • Recording and presenting the build results.

  • A Master node can also execute build jobs directly.

  • Following are the characteristics of Jenkins Slaves:

  • Slaves receive requests from the Jenkins Master node.

  • Slaves can run on a variety of operating systems.

  • The job of a Slave is to do tasks as per the requests passed from the Master node, which involves executing build jobs dispatched by the Master.

With Master-Slave architecture, Jenkins enables administrators to distribute load across the Slave nodes through the Master node based on the resources needed for running the jobs. If the Master node goes offline due to any abnormality, the workload will not be distributed to the Slave nodes, and executors will not be assigned to run jobs on the Slave nodes. Besides, the Slave nodes will not be able to execute the jobs without executors and resources. This will adversely impact the development cycle, reduce productivity and degrade the integrity of Jenkins and user experience . To avoid such inconveniences, administrators should continuously track the availability and resource utilization of nodes. This can be easily achieved using the JenkinsNodeTest.

This test auto-discovers the nodes in the target Jenkins server, and reports the status of each node. This test also reveals the disk space and memory utilization of each node, the count of executors that are running jobs on each node, etc.

Outputs of the test : : One set of results for each node on the target Jenkins server

The measures made by this test are as follows:

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

Measure Value Numeric Value
Online 10
Offline 9


Note:

By default, this measure reports the current status of each application. The graph of this measure however, is represented using the numeric equivalents only.
No_of_executors Indicates the total number of executors running on this node. Number A Jenkins executor is one of the basic building blocks which allow a build to run on a node/agent (e.g. build server).
Free_disk_space Indicates the amount of space available for use on this node. GB Ideally, the value of this measure should be high.
Free_swap_space Indicates the amount of swap space available for use on this node GB  
Free_temp_space Indicates the amount of temporary space available for use on this node. GB  
Response_time Indicates how quickly this node responds to the requests. Milliseconds Ideally, a low value is desired for this measure.

Compare the value of this measure across the nodes to identify which node is slow in responding to the requests.
Total_memory Indicates the total memory on this node. GB  
Used_memory Indicates the amount of memory utilized on this node. GB If the value of this measure is equal/close to the value of Total_memory measure, it indicates that the node is running out of memory, which requires immediate attention of administrators.
Free_memory Indicates the amount of memory available for use on this node. GB Ideally, a high value is desired for this measure.
Memory_utilization Indicates the percentage of memory utilized on this node. Percent  
System_load_avg Indicates the average CPU load on this node. Percent  
Clock_diff Indicates the clock difference between the slave node and the master node.   The values reported by this measure and its numeric equivalents are mentioned in the table below:

Measure Value Numeric Value
In-sync 0
Behind 1
Ahead 2


Note:

By default, this measure reports the Measure Values listed in the table above to clock difference on each node. The graph of this measure however, represents the measure values using the numeric equivalents only.
Busy_executors Indicates the number of executors that are currently executing jobs on this node. Number A high value represents that more number of jobs are being executed on this node.
Idle_executors Indicates the number of executors that are currently in the idle state on this node. Number  
Tied_jobs Indicates the number of jobs tied or assigned to this node. Number