Outil de surveillance Jenkins

Jenkins est un serveur d'automatisation open-source qui aide à automatiser les parties du développement logiciel liées à la construction, aux tests et au déploiement, ce qui facilite l'intégration continue et la livraison continue (CI/CD). Étant donné qu'il s'agit d'un outil d'automatisation CI/CD, les problèmes de contention des ressources ralentiront les performances de Jenkins, retardant les builds et les déploiements. Ces problèmes affectent la confiance des clients, pour laquelle la surveillance de Jenkins est importante.

Vous pouvez également gérer les journaux Jenkins appropriés pour chaque plug-in et corréler les indicateurs et les problèmes à partir de la même console.

Commencez l'essai gratuit de 30 jours Essayez maintenant, inscrivez-vous en 30 secondes
Apache Monitoring

Surveillez les performances de Jenkins

Les équipes DevOps doivent surveiller en permanence les performances de Jenkins pour s'assurer de son bon fonctionnement. Grâce à cela, l'équipe peut :

  • Analyser régulièrement les tendances des constructions réussies et des constructions échouées dans la file d'attente.
  • Effectuez des vérifications d'intégrité pour éviter les pics de latence des serveurs Jenkins.
  • Surveillez le nombre de projets associés.
  • Suivez la liste des plug-ins utilisés.
  • Recevez des alertes instantanées lorsqu'une entité est rompue.

Indicateurs de performance

Vous pouvez surveiller les performances de Jenkins, tous les travaux, des travaux spécifiques, les VM Java et l'accès Web de Jenkins pour rester à l'affût de ses performances.

Indicateurs de performance Jenkins

  • Nombre de nœuds

    node_count records the total number of nodes.

  • Nombre de vérifications d'intégrité

    health-check_count fetches the number of health checks associated.

  • Durée de la vérification d'intégrité

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

  • Nœuds hors ligne

    nodes_offline denotes the number of offline nodes.

  • Nœuds en ligne

    nodes_online denotes the number of online nodes.

  • Nombre de projets

    projects_count collects the total number of projects.

  • Projets désactivés

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

  • Projets activés

    projects_enabled collects the total number of projects that are enabled.

  • Taille de la file d'attente

    queue_size denotes the total number of jobs in queue.

  • Nombre d'exécuteurs

    executor_count shows the number of executors available for Jenkins.

  • Nombre d'exécuteurs libres

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

  • Nombre d'exécuteurs en cours d'utilisation

    executors_inuse_count shows the number of executors that are in use.

  • Files d'attente en attente

    queues_pending fetches the number of pending jobs in the queue.

  • Files d'attente bloquées

    queues_stuck fetches the number of jobs stuck in a queue.

  • Files d'attente bloquées

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

  • Travaux dans la file d'attente

    jobs_in_queue shows the number of buildable items in a queue.

  • Plug-ins actifs

    plugins_active shows the number of active plugins.

  • Échec des plug-ins

    plugins_failed shows the number of failed plugins.

  • Plug-ins inactifs

    plugins_inactive shows the number of inactive plugins.

  • Plug-ins avec mise à jour

    plugins_withupdate shows the number of plugins with a pending update.

  • Durée bloquée du build

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

  • Heure de création du build

    build_creation_time denotes the time taken for the build to complete.

  • Durée d'exécution du build

    builds_execution_duration shows the build execution time in seconds.

  • Durée de la file d'attente du build

    builds_queuing_duration shows the build queuing time in seconds.

  • Durée d'attente du build

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

Tous les indicateurs de surveillance des tâches Jenkins

  • Nombre de travaux

    job_count fetches the number of jobs.

  • Taux de tâches planifiées

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

  • Durée des travaux bloqués

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

  • Durée de génération des travaux

    jobs_execution_time denotes the time taken for job execution in seconds.

  • Temps d'exécution des travaux

    jobs_execution_time denotes the time taken for job execution in seconds.

  • Durée de la file d'attente des travaux

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

  • Durée totale des travaux

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

  • Durée des travaux en attente

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

Indicateurs spécifiques de surveillance des travaux Jenkins

  • Nombre de builds

    build_count fetches the number of builds in the job.

  • ID de la dernière file d'attente du build du travail

    job_lastbuild_queueid fetches the queue ID of the last build.

  • Durée du dernier build du travail

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

  • Durée estimée du dernier build du travail

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

  • ID du dernier build du travail

    job_lastbuildid fetches the ID of the last build.

  • Numéro du dernier build de travail

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

  • Échec du build

    build_failed fetches the number of builds that failed.

  • Réussite du build

    build_success fetches the number of successful builds.

  • Build abandonné

    build_aborted fetches the number of aborted builds.

Indicateurs de surveillance de la VM Java de Jenkins

  • Nombre bloqué

    blocked_count denotes the number of threads that are currently blocked.

  • Nombre total

    total_count denotes the total thread count.

  • Nombre de blocages

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

  • Ratio de descripteurs de fichiers

    file_descriptor_ratio denotes the ratio of used to total file descriptors.

  • Mémoire tas validée

    heap_memory_committed denotes the amount of heap memory, in bytes.

  • Mémoire tas initiée

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

  • Mémoire tas maximale

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

  • Mémoire tas utilisée

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

  • Mémoire sans tas validée

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

  • Mémoire sans tas lancée

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

  • Mémoire sans tas maximale

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

  • Mémoire sans tas utilisée

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

  • Mémoire totale validée/p>

    total_memory_committed denotes the total amount of memory, in bytes.

  • Mémoire totale initiée

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

  • Mémoire maximale totale

    total_maximum_memory fetches the maximum amount of memory, in bytes.

  • Mémoire totale utilisée

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

  • Nouveaux threads

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

  • Exécution de threads

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

  • Threads terminés

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

  • Threads suspendus

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

  • Threads en attente

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

Indicateurs de surveillance de l'accès Web de Jenkins

  • Nombre total de demandes actives

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

  • Total des mauvaises demandes

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

  • Code de réponse total créé

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

  • Total des codes de réponse interdits

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

  • Aucun code de réponse de contenu

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

  • Code de réponse introuvable

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

  • Code de réponse non modifié

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

  • Code de réponse de réussite

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

  • Code de réponse non informatif

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

  • Code de réponse des erreurs du serveur

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

  • Service indisponible

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

  • Durée de la demande

    request_duration fetches the time taken to generate the corresponding code.

Configurer

Suivez les instructions ci-dessous :

Conditions préalables

Installation du plug-in

Pour installer le plug-in Jenkins sur votre serveur Linux, procédez comme suit :

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

L'agent exécute automatiquement le plug-in dans un délai de cinq minutes et envoie les données de performances au centre de données Site24x7.

Configurations

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

Vérifier la sortie du plug-in

Vérifiez la sortie des différents plug-ins Jenkins en suivant les étapes ci-dessous :

Jenkin_performance

Exécutez la commande ci-dessous avec les arguments appropriés pour vérifier la validité de la sortie JSON.

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

Jenkin_job

Exécutez la commande ci-dessous avec les arguments appropriés pour vérifier la validité de la sortie JSON.

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

Jenkin_specific_job

Exécutez la commande ci-dessous avec les arguments appropriés pour vérifier la validité de la sortie JSON.

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

Jenkin_jvm

Exécutez la commande ci-dessous avec les arguments appropriés pour vérifier la validité de la sortie JSON.

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

Jenkin_web

Exécutez la commande ci-dessous avec les arguments appropriés pour vérifier la validité de la sortie JSON.

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

Contribution du plug-in

Vous pouvez contribuer à nos plug-ins existants et faire des suggestions ou des commentaires sur notre Communauté.

  • Supported Platforms:
  • Python Version: 2.7 et ultérieur
  • Linux Agent Version:15.0.0 et versions ultérieures