Jenkins Nodes Test

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. The diagram shows a Jenkins Master-Slave architecture.

Figure 1 : Jenkins Master-Slave architecture

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 Jenkins Nodes test.

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.

Target of the test : A Jenkins server

Agent deploying the test : An internal agent

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

Configurable parameters for the test
Parameter Description

Test period

How often should the test be executed

Host

The host for which the test is to be configured.

Port

The port at which the specified host listens.

Username and Password

Specify the valid credentials of a user who has Read-only access to the Jenkins REST API to gather performance metrics from the target Jenkins server against the Username and Password parameters.

Confirm Password

Confirm the Password by retyping it here.

SSL

By default, the SSL flag is set to No, indicating that the target Microsoft SQL server is not SSL-enabled by default. To enable the test to connect to an SSL-enabled Microsoft SQL server, set the SSL flag to Yes.

DD Frequency

Refers to the frequency with which detailed diagnosis measures are to be generated for this test. The default is 1:1. This indicates that, by default, detailed measures will be generated every time this test runs, and also every time the test detects a problem. You can modify this frequency, if you so desire. Also, if you intend to disable the detailed diagnosis capability for this test, you can do so by specifying none against DD frequency.

Detailed Diagnosis

To make diagnosis more efficient and accurate, the eG Enterprise suite embeds an optional detailed diagnostic capability. With this capability, the eG agents can be configured to run detailed, more elaborate tests as and when specific problems are detected. To enable the detailed diagnosis capability of this test for a particular server, choose the On option. To disable the capability, click on the Off option.

The option to selectively enable/disable the detailed diagnosis capability will be available only if the following conditions are fulfilled:

  • The eG manager license should allow the detailed diagnosis capability
  • Both the normal and abnormal frequencies configured for the detailed diagnosis measures should not be 0.
Measurements made by the test
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.

Total 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 average

Indicates the average CPU load on this node.

Percent

 

Clock difference

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