DevOps teams should continuously monitor Jenkins performance to ensure it runs effectively. With this, the team can:
You can monitor Jenkins performance, all jobs, specific jobs, Java VMs, and Jenkins web access to stay on top of its performance.
Node count
node_count
records the total number of nodes.
Health check count
health-check_count
fetches the number of health checks associated.
Health check duration
health-check_duration
shows the rate at which the health checks are running in seconds.
Nodes offline
nodes_offline
denotes the number of offline nodes.
Nodes online
nodes_online
denotes the number of online nodes.
Projects count
projects_count
collects the total number of projects.
Projects disabled
projects_disabled
collects the total number of projects that have been disabled.
Projects enabled
projects_enabled
collects the total number of projects that are enabled.
Queue size
queue_size
denotes the total number of jobs in queue.
Executor count
executor_count
shows the number of executors available for Jenkins.
Executors free count
executors_free_count
shows the number of executors available for Jenkins that are not currently in use.
Executors in use count
executors_inuse_count
shows the number of executors that are in use.
Queues pending
queues_pending
fetches the number of pending jobs in the queue.
Queues stuck
queues_stuck
fetches the number of jobs stuck in a queue.
Queues blocked
queues_blocked
fetches the number of jobs that are blocked in the queue
Jobs in queue
jobs_in_queue
shows the number of buildable items in a queue.
Plugins active
plugins_active
shows the number of active plugins.
Plugins failed
plugins_failed
shows the number of failed plugins.
Plugins inactive
plugins_inactive
shows the number of inactive plugins.
Plugins with update
plugins_withupdate
shows the number of plugins with a pending update.
Builds blocked duration
builds_blocked_duration
denotes the time taken by the jobs in blocked state in seconds.
Build creation time
build_creation_time
denotes the time taken for the build to complete.
Builds execution duration
builds_execution_duration
shows the build execution time in seconds.
Builds queuing duration
builds_queuing_duration
shows the build queuing time in seconds.
Builds waiting duration
builds_waiting_duration
denotes the time the build waits in a queue in seconds.
All Jenkins job monitoring metrics
Job count
job_count
fetches the number of jobs.
Jobs scheduled rate
jobs_scheduled_rate
denotes the rate at which the jobs are scheduled in events per minute.
Jobs blocked duration
jobs_blocked_duration
denotes the time taken by the jobs in the build queue in the blocked state in seconds.
Jobs buildable duration
jobs_execution_time
denotes the time taken for job execution in seconds.
Jobs execution time
jobs_execution_time
denotes the time taken for job execution in seconds.
Jobs queuing duration
jobs_queuing_duration
denotes the time taken by the job in the build queue in seconds.
Jobs total duration
jobs_total_duration
denotes the time taken by the job from entering the build queue to completing the build in seconds.
Jobs waiting duration
jobs_waiting_duration
denotes the time the jobs spend in their quiet period in seconds.
Specific Jenkins jobs monitoring metrics
Build count
build_count
fetches the number of builds in the job.
Job last build queue ID
job_lastbuild_queueid
fetches the queue ID of the last build.
Job last build duration
job_lastbuild_duration
denotes the time taken for the last build in milliseconds.
Job last build estimated duration
job_lastbuild_estimated_duration
denotes the estimated time for the last build in milliseconds.
Job last build ID
job_lastbuildid
fetches the ID of the last build.
Job last build number
job_lastbuild_number
fetches the last build's number in the job.
Build failed
build_failed
fetches the number of builds that failed.
Build success
build_success
fetches the number of successful builds.
Build aborted
build_aborted
fetches the number of aborted builds.
Jenkins Java VM monitoring metrics
Blocked count
blocked_count
denotes the number of threads that are currently blocked.
Total count
total_count
denotes the total thread count.
Deadlock count
deadlock_count
fetches the number of threads that have a currently detected deadlock.
File descriptor ratio
file_descriptor_ratio
denotes the ratio of used to total file descriptors.
Heap memory committed
heap_memory_committed
denotes the amount of heap memory, in bytes.
Heap memory initiated
heap_memory_initiated
denotes the amount of heap memory that has been newly initiated, in bytes.
Maximum heap memory
maximum_heap_memory
denotes the amount of heap memory that is currently in use, in bytes.
Heap memory used
heap_memory_used
denotes the amount of memory outside the heap, in bytes.
Non-heap memory committed
non-heap_memory_committed
denotes the amount of memory outside the heap, in bytes.
Non-heap memory initiated
non-heap_memory_initiated
denotes the amount of memory outside the heap that has been newly initiated, in bytes.
Maximum non-heap memory
maximum_non-heap_memory
denotes the maximum amount of memory outside the heap that is used, in bytes.
Non-heap memory used
non-heap_memory_used
denotes the amount of memory outside the heap that is currently in use, in bytes.
Total memory committed/p>
total_memory_committed
denotes the total amount of memory, in bytes.
Total memory initiated
total_memory_initiated
denotes the total amount of memory that has been newly initiated, in bytes.
Total maximum memory
total_maximum_memory
fetches the maximum amount of memory, in bytes.
Total memory used
total_memory_used
fetches the total amount of memory used, in bytes.
New threads
new_threads
denotes the number of threads that have not currently started execution.
Running threads
running_threads
denotes the total number of threads that are currently in execution.
Terminated threads
terminated_threads
denotes the total number of threads that have completed execution.
Suspended threads
suspended_threads
denotes the total number of threads that have suspended execution.
Waiting threads
waiting_threads
denotes the total number of threads that are waiting for execution.
Jenkins web access monitoring metrics
Total active requests
total_activerequests
fetches he total number of requests that are currently active.
Total bad request
total_badrequest
fetches the total number of requests with HTTP/400 status code.
Total response code created
total_responsecode_created
fetches the total number of requests with HTTP/201 status code.
Total forbidden response code
total_forbidden_responsecode
fetches the total number of requests with HTTP/403 status code.
No content response code
noContent_responsecode
fetches the total number of requests with HTTP/204 status code.
Not found response code
notFound_responsecode
fetches the total number of requests with HTTP/404 status code.
Unmodified response code
unmodified_responsecode
fetches the total number of requests with HTTP/304 status code.
Success response code
success_responsecode
fetches the total number of requests with HTTP/200 status code.
Non-informational response code
non_informational_responsecode
fetches the total number of requests with a non-information status code./p>
Server errors response code
servererror_responsecode
fetches the total number of requests with HTTP/500 status code.
Service unavailable
service_unavailable
fetches the total number of requests with HTTP/503 status code.
Request duration
request_duration
fetches the time taken to generate the corresponding code.
Follow the guidelines below:
Follow the steps below to install the Jenkins plugin on your Linux server:
wget https://raw.githubusercontent.com/site24x7/plugins/master/jenkins_performance/jenkins_performance.py
wget https://raw.githubusercontent.com/site24x7/plugins/master/jenkins_performance/jenkins_performance.cfg
The agent will automatically execute the plugin within five minutes and send performance data to the Site24x7 data center.
[jenkins_performance]
host = < host_name>
port = < port_number>
username = < username>
password = < password>
apikey = < apikey>
Verify the output for different Jenkins plugins following the steps below:
Execute the command below with appropriate arguments to check for the valid JSON output.
python jenkins_performance.py --host=< host_name> --port=< port_number> --username=< username> --password=< password> --apikey=< apikey>
Execute the command below with appropriate arguments to check for the valid JSON output.
python jenkins_job.py --host=< host_name> --port=< port_number> --username=< username> --password=< password> --apikey=< apikey>
Execute the command below with appropriate arguments to check for the valid JSON output.
python jenkins_specific_job.py --host=< host_name> --port=< port_number> --username=< username> --password=< password> --jobname=< job_name>
Execute the command below with appropriate arguments to check for the valid JSON output.
python jenkins_jvm.py --host=< host_name> --port=< port_number> --username=< username> --password=< password> --apikey=< apikey>
Execute the command below with appropriate arguments to check for the valid JSON output.
python jenkins_web.py --host=< host_name> --port=< port_number> --username=< username> --password=< password> --apikey=< apikey>
You can contribute to our existing plugins and come up with suggestions or feedback on our Community.