Jenkins Monitoring Tool

Jenkins is an open-source automation server that helps automate the parts of software development related to building, testing, and deploying, that facilitate continuous integration and continuous delivery (CI/CD). Since it's an automation tool for CI/CD, resource contention issues will slow the Jenkins performance, delaying builds, and deployments. These issues affect customer trust, to avoid which monitoring Jenkins is important.

You can also manage appropriate Jenkins logs for each plugin and correlate the metrics and issues from the same console.

Start 30-day free trial Try now, sign up in 30 seconds
Apache Monitoring

Monitor Jenkins performance

DevOps teams should continuously monitor Jenkins performance to ensure it runs effectively. With this, the team can:

  • Analyze the trends of the successful builds and failed builds in the queue on a regular basis.
  • Carry out health checks to avoid Jenkins server latency spikes.
  • Monitor the number of projects associated.
  • Track the list of plugins used.
  • Receive instant alerts when an entity is broken.

Performance Metrics

You can monitor Jenkins performance, all jobs, specific jobs, Java VMs, and Jenkins web access to stay on top of its performance.

Jenkins performance metrics

  • 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.

Setup

Follow the guidelines below:

Prerequisites

Plugin Installation

Follow the steps below to install the Jenkins plugin on your Linux server:

Create a directory jenkins_performance under Site24x7 Linux Server Monitoring agent plugin directory :
  • /opt/site24x7/monagent/plugins/jenkins_performance
  • Download all the files in jenkins_performance folder and place it under the jenkins_performance directory
  • 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.

Configurations

  • [jenkins_performance]
  • host = < host_name>
  • port = < port_number>
  • username = < username>
  • password = < password>
  • apikey = < apikey>

Verify plugin output

Verify the output for different Jenkins plugins following the steps below:

Jenkin_performance

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>

Jenkin_job

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>

Jenkin_specific_job

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>

Jenkin_jvm

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>

Jenkin_web

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>

Plugin Contribution

You can contribute to our existing plugins and come up with suggestions or feedback on our Community.

  • Supported Platforms:
  • Python Version: 2.7 & above
  • Linux Agent Version:15.0.0 & above