Herramienta de monitoreo de Jenkins

Jenkins es un servidor de automatización de código abierto que ayuda a automatizar las partes del desarrollo de software relacionadas con la creación, las pruebas y la implementación, lo que facilita la integración continua y la entrega continua (CI/CD). Dado que es una herramienta de automatización para CI/CD, los problemas de contención de recursos ralentizarán el rendimiento de Jenkins, lo que retardará las creaciones e implementaciones. Estos problemas afectan a la confianza de los clientes. Para evitar esto, es importante el monitoreo de Jenkins.

También puede administrar los registros de Jenkins apropiados para cada complemento y correlacionar las métricas y los problemas desde la misma consola.

Comience la prueba gratuita de 30 días Pruébelo ahora; regístrese en 30 segundos
Apache Monitoring

Monitoree el rendimiento de Jenkins

Los equipos de DevOps deben supervisar continuamente el rendimiento de Jenkins para garantizar que se ejecute de manera eficaz. Con esto, el equipo puede realizar lo siguiente:

  • Analizar periódicamente las tendencias de las creaciones exitosas y fallidas en la cola.
  • Realizar verificaciones de estado para evitar picos de latencia del servidor de Jenkins.
  • Monitorear el número de proyectos asociados.
  • Realizar un seguimiento de la lista de complementos utilizados.
  • Recibir alertas instantáneas cuando una entidad deje de funcionar.

Métricas de rendimiento

Puede supervisar el rendimiento de Jenkins, todos los trabajos, trabajos específicos, las Java VM y el acceso web de Jenkins para mantenerse al tanto de su rendimiento.

Métricas de rendimiento de Jenkins

  • Recuento de nodos

    node_count records the total number of nodes.

  • Recuento de verificaciones de estado

    health-check_count fetches the number of health checks associated.

  • Duración de la verificación de estado

    health-check_duration shows the rate at which the health checks are running in seconds.

  • Nodos fuera de línea

    nodes_offline denotes the number of offline nodes.

  • Nodos en conexión

    nodes_online denotes the number of online nodes.

  • Recuento de proyectos

    projects_count collects the total number of projects.

  • Proyectos deshabilitados

    projects_disabled collects the total number of projects that have been disabled.

  • Proyectos habilitados

    projects_enabled collects the total number of projects that are enabled.

  • Tamaño de cola

    queue_size denotes the total number of jobs in queue.

  • Recuento de ejecutores

    executor_count shows the number of executors available for Jenkins.

  • Recuento libre de ejecutores

    executors_free_count shows the number of executors available for Jenkins that are not currently in use.

  • Recuento de ejecutores en uso

    executors_inuse_count shows the number of executors that are in use.

  • Colas pendientes

    queues_pending fetches the number of pending jobs in the queue.

  • Colas atascadas

    queues_stuck fetches the number of jobs stuck in a queue.

  • Colas bloqueadas

    queues_blocked fetches the number of jobs that are blocked in the queue

  • Trabajos en cola

    jobs_in_queue shows the number of buildable items in a queue.

  • Complementos activos

    plugins_active shows the number of active plugins.

  • Error de complementos

    plugins_failed shows the number of failed plugins.

  • Complementos inactivos

    plugins_inactive shows the number of inactive plugins.

  • Complementos con actualización

    plugins_withupdate shows the number of plugins with a pending update.

  • Desarrolla la duración del bloqueo

    builds_blocked_duration denotes the time taken by the jobs in blocked state in seconds.

  • Tiempo de creación de desarrollo

    build_creation_time denotes the time taken for the build to complete.

  • Desarrolla la duración de la ejecución

    builds_execution_duration shows the build execution time in seconds.

  • Desarrolla la duración de la cola

    builds_queuing_duration shows the build queuing time in seconds.

  • Desarrolla la duración de la espera

    builds_waiting_duration denotes the time the build waits in a queue in seconds.

Todas las métricas de monitoreo de trabajo de Jenkins

  • Recuento de trabajos

    job_count fetches the number of jobs.

  • Tasa de trabajos programados

    jobs_scheduled_rate denotes the rate at which the jobs are scheduled in events per minute.

  • Duración de los trabajos bloqueados

    jobs_blocked_duration denotes the time taken by the jobs in the build queue in the blocked state in seconds.

  • Duración acumulable de los trabajos

    jobs_execution_time denotes the time taken for job execution in seconds.

  • Tiempo de ejecución de los trabajos

    jobs_execution_time denotes the time taken for job execution in seconds.

  • Duración de la cola de trabajos

    jobs_queuing_duration denotes the time taken by the job in the build queue in seconds.

  • Duración total de los trabajos

    jobs_total_duration denotes the time taken by the job from entering the build queue to completing the build in seconds.

  • Duración de espera de los trabajos

    jobs_waiting_duration denotes the time the jobs spend in their quiet period in seconds.

Trabajos de Jenkins específicos que monitorean las métricas

  • Recuento de creaciones

    build_count fetches the number of builds in the job.

  • ID de la última cola de creación de trabajo

    job_lastbuild_queueid fetches the queue ID of the last build.

  • Duración de la última creación de trabajo

    job_lastbuild_duration denotes the time taken for the last build in milliseconds.

  • Duración estimada de la última creación de trabajo

    job_lastbuild_estimated_duration denotes the estimated time for the last build in milliseconds.

  • ID de la última creación de trabajo

    job_lastbuildid fetches the ID of the last build.

  • Número de última creación de trabajo

    job_lastbuild_number fetches the last build's number in the job.

  • Error de creación

    build_failed fetches the number of builds that failed.

  • Cree el éxito

    build_success fetches the number of successful builds.

  • Creación anulada

    build_aborted fetches the number of aborted builds.

Métricas de monitoreo de Java VM de Jenkins

  • Recuento bloqueado

    blocked_count denotes the number of threads that are currently blocked.

  • Recuento total

    total_count denotes the total thread count.

  • Recuento de bloqueos

    deadlock_count fetches the number of threads that have a currently detected deadlock.

  • Tasa de descriptor de archivo

    file_descriptor_ratio denotes the ratio of used to total file descriptors.

  • Memoria dinámica confirmada

    heap_memory_committed denotes the amount of heap memory, in bytes.

  • Memoria dinámica iniciada

    heap_memory_initiated denotes the amount of heap memory that has been newly initiated, in bytes.

  • Memoria dinámica máxima

    maximum_heap_memory denotes the amount of heap memory that is currently in use, in bytes.

  • Memoria dinámica utilizada

    heap_memory_used denotes the amount of memory outside the heap, in bytes.

  • Memoria no dinámica confirmada

    non-heap_memory_committed denotes the amount of memory outside the heap, in bytes.

  • Memoria no dinámica iniciada

    non-heap_memory_initiated denotes the amount of memory outside the heap that has been newly initiated, in bytes.

  • Máximo de memoria no dinámica

    maximum_non-heap_memory denotes the maximum amount of memory outside the heap that is used, in bytes.

  • Memoria no dinámica utilizada

    non-heap_memory_used denotes the amount of memory outside the heap that is currently in use, in bytes.

  • Memoria total confirmada/p>

    total_memory_committed denotes the total amount of memory, in bytes.

  • Memoria total iniciada

    total_memory_initiated denotes the total amount of memory that has been newly initiated, in bytes.

  • Memoria máxima total

    total_maximum_memory fetches the maximum amount of memory, in bytes.

  • Memoria total utilizada

    total_memory_used fetches the total amount of memory used, in bytes.

  • Nuevos subprocesos

    new_threads denotes the number of threads that have not currently started execution.

  • Subprocesos en ejecución

    running_threads denotes the total number of threads that are currently in execution.

  • Subprocesos terminados

    terminated_threads denotes the total number of threads that have completed execution.

  • Subprocesos suspendidos

    suspended_threads denotes the total number of threads that have suspended execution.

  • Subprocesos de espera

    waiting_threads denotes the total number of threads that are waiting for execution.

Métricas de monitoreo de acceso web de Jenkins

  • Total de solicitudes activas

    total_activerequests fetches he total number of requests that are currently active.

  • Solicitud incorrecta total

    total_badrequest fetches the total number of requests with HTTP/400 status code.

  • Código de respuesta total creado

    total_responsecode_created fetches the total number of requests with HTTP/201 status code.

  • Código de respuesta total prohibido

    total_forbidden_responsecode fetches the total number of requests with HTTP/403 status code.

  • No hay código de respuesta de contenido

    noContent_responsecode fetches the total number of requests with HTTP/204 status code.

  • No se encontró el código de respuesta

    notFound_responsecode fetches the total number of requests with HTTP/404 status code.

  • Código de respuesta sin modificar

    unmodified_responsecode fetches the total number of requests with HTTP/304 status code.

  • Código de respuesta correcto

    success_responsecode fetches the total number of requests with HTTP/200 status code.

  • Código de respuesta no informativo

    non_informational_responsecode fetches the total number of requests with a non-information status code./p>

  • Código de respuesta de errores del servidor

    servererror_responsecode fetches the total number of requests with HTTP/500 status code.

  • Servicio no disponible

    service_unavailable fetches the total number of requests with HTTP/503 status code.

  • Duración de la solicitud

    request_duration fetches the time taken to generate the corresponding code.

Configuración

Siga las pautas que se indican a continuación:

Requisitos previos

Instalación de complemento

Siga los pasos que se indican a continuación para instalar el complemento de Jenkins en su servidor Linux:

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

El agente ejecutará automáticamente el complemento en un plazo de cinco minutos y enviará datos de rendimiento al centro de datos de Site24x7.

Configuraciones

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

Verifique la salida del complemento

Verifique la salida de los diferentes complementos de Jenkins con los pasos a continuación:

Jenkin_performance

Ejecute el siguiente comando con los argumentos apropiados para comprobar la salida JSON válida.

python jenkins_performance.py --host=< host_name> --port=< port_number> --username=< username> --password=< password> --apikey=< apikey>

Jenkin_job

Ejecute el siguiente comando con los argumentos apropiados para comprobar la salida JSON válida.

python jenkins_job.py --host=< host_name> --port=< port_number> --username=< username> --password=< password> --apikey=< apikey>

Jenkin_specific_job

Ejecute el siguiente comando con los argumentos apropiados para comprobar la salida JSON válida.

python jenkins_specific_job.py --host=< host_name> --port=< port_number> --username=< username> --password=< password> --jobname=< job_name>

Jenkin_jvm

Ejecute el siguiente comando con los argumentos apropiados para comprobar la salida JSON válida.

python jenkins_jvm.py --host=< host_name> --port=< port_number> --username=< username> --password=< password> --apikey=< apikey>

Jenkin_web

Ejecute el siguiente comando con los argumentos apropiados para comprobar la salida JSON válida.

python jenkins_web.py --host=< host_name> --port=< port_number> --username=< username> --password=< password> --apikey=< apikey>

Contribución de complementos

Puede contribuir a nuestros complementos existentes y compartir sugerencias o comentarios en nuestra comunidad.

  • Supported Platforms:
  • Python Version: 2.7 y superior
  • Linux Agent Version:15.0.0 y superior