Ferramenta de monitoramento do Jenkins

O Jenkins é um servidor de automação de código-fonte aberto que ajuda a automatizar as partes do desenvolvimento de software relacionadas à criação, teste e implantação, o que facilita a integração contínua e a entrega contínua (CI/CD). Como é uma ferramenta de automação para CI/CD, os problemas de contenção de recursos retardarão o desempenho do Jenkins, atrasando compilações e implantações. Esses problemas afetam a confiança do cliente, para evitar que o monitoramento do Jenkins é importante.

Você também pode gerenciar os registros apropriados do Jenkins para cada plug-in e correlacionar as métricas e os problemas do mesmo console.

Iniciar teste gratuito de 30 dias Experimente agora. Inscreva-se em 30 segundos
Apache Monitoring

Monitora o desempenho do Jenkins

As equipes de DevOps devem monitorar continuamente o desempenho do Jenkins para garantir que ele seja executado com eficiência. Com isso, a equipe pode:

  • Analise as tendências das compilações bem-sucedidas e as compilações com falha na fila regularmente.
  • Realize verificações de integridade para evitar picos de latência do servidor Jenkins.
  • Monitore o número de projetos associados.
  • Rastreia a lista de plug-ins usados.
  • Receber alertas instantâneos quando uma entidade for quebrada.

Métricas de desempenho

Você pode monitorar o desempenho do Jenkins, todos os trabalhos, tarefas específicas, VMs Java e acesso à Web do Jenkins para manter o controle de seu desempenho.

Métricas de desempenho do Jenkins

  • Contagem de nós

    node_count records the total number of nodes.

  • Contagem de verificação de integridade

    health-check_count fetches the number of health checks associated.

  • Duração da verificação de integridade

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

  • Nós off-line

    nodes_offline denotes the number of offline nodes.

  • Nós on-line

    nodes_online denotes the number of online nodes.

  • Contagem de projetos

    projects_count collects the total number of projects.

  • Projetos desativados

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

  • Projetos ativados

    projects_enabled collects the total number of projects that are enabled.

  • Tamanho da fila

    queue_size denotes the total number of jobs in queue.

  • Contagem do executor

    executor_count shows the number of executors available for Jenkins.

  • Contagem gratuita de executores

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

  • Executores em contagem de uso

    executors_inuse_count shows the number of executors that are in use.

  • Filas pendentes

    queues_pending fetches the number of pending jobs in the queue.

  • Filas travadas

    queues_stuck fetches the number of jobs stuck in a queue.

  • Filas bloqueadas

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

  • Trabalhos na fila

    jobs_in_queue shows the number of buildable items in a queue.

  • Plug-ins ativos

    plugins_active shows the number of active plugins.

  • Falha nos plug-ins

    plugins_failed shows the number of failed plugins.

  • Plug-ins inativos

    plugins_inactive shows the number of inactive plugins.

  • Plug-ins com atualização

    plugins_withupdate shows the number of plugins with a pending update.

  • Cria a duração bloqueada

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

  • Tempo de criação da compilação

    build_creation_time denotes the time taken for the build to complete.

  • Cria a duração da execução

    builds_execution_duration shows the build execution time in seconds.

  • Cria a duração da fila

    builds_queuing_duration shows the build queuing time in seconds.

  • Gera a duração da espera

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

Todas as métricas de monitoramento de trabalho do Jenkins

  • Contagem de trabalhos

    job_count fetches the number of jobs.

  • Taxa de trabalhos programados

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

  • Duração dos trabalhos bloqueados

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

  • Duração das tarefas criáveis

    jobs_execution_time denotes the time taken for job execution in seconds.

  • Tempo de execução das tarefas

    jobs_execution_time denotes the time taken for job execution in seconds.

  • Duração da fila de trabalhos

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

  • Duração total dos trabalhos

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

  • Duração dos trabalhos em espera

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

Métricas específicas de monitoramento de trabalhos do Jenkins

  • Contagem de criações

    build_count fetches the number of builds in the job.

  • ID da última fila de criação do trabalho

    job_lastbuild_queueid fetches the queue ID of the last build.

  • Duração da última criação do trabalho

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

  • Duração estimada da última criação do trabalho

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

  • ID da última criação do trabalho

    job_lastbuildid fetches the ID of the last build.

  • Número da última compilação da tarefa

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

  • Falha na criação

    build_failed fetches the number of builds that failed.

  • Criação feita com êxito

    build_success fetches the number of successful builds.

  • Criação cancelada

    build_aborted fetches the number of aborted builds.

Métricas de monitoramento de VM Java do Jenkins

  • Contagem bloqueada

    blocked_count denotes the number of threads that are currently blocked.

  • Contagem total

    total_count denotes the total thread count.

  • Contagem de impasse

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

  • Proporção do descritor do arquivo

    file_descriptor_ratio denotes the ratio of used to total file descriptors.

  • Memória heap confirmada

    heap_memory_committed denotes the amount of heap memory, in bytes.

  • Memória heap iniciada

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

  • Memória heap máxima

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

  • Memória heap usada

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

  • Memória não heap confirmada

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

  • Memória não heap iniciada

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

  • Memória não heap máxima

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

  • Memória não heap usada

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

  • Memória total confirmada/p>

    total_memory_committed denotes the total amount of memory, in bytes.

  • Memória total iniciada

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

  • Total máximo de memória

    total_memória_máxima fetches the maximum amount of memory, in bytes.

  • Memória total usada

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

  • Novos threads

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

  • Threads em execução

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

  • Threads encerrados

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

  • Threads suspensos

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

  • Threads em espera

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

Métricas de monitoramento de acesso à Web do Jenkins

  • Total de solicitações ativas

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

  • Solicitação total incorreta

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

  • Código de resposta total criado

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

  • Código de resposta total proibido

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

  • Nenhum código de resposta de conteúdo

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

  • Código de resposta não encontrado

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

  • Código de resposta não modificado

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

  • Código de resposta de sucesso

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

  • Código de resposta não informativo

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

  • Código de resposta de erros do servidor

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

  • Serviço indisponível

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

  • Duração da solicitação

    request_duration fetches the time taken to generate the corresponding code.

Configuração

Siga as diretrizes abaixo:

Pré-requisitos

Instalação do plug-in

Siga as etapas abaixo para instalar o plug-in do Jenkins em seu 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

O agente executará automaticamente o plug-in em cinco minutos e enviará dados de desempenho ao data center do Site24x7.

Configurações

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

Verifique a saída do plug-in

Verifique a saída para diferentes plug-ins do Jenkins seguindo as etapas abaixo:

Jenkin_performance

Execute o comando abaixo com argumentos apropriados para verificar a saída JSON válida.

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

Jenkin_Job

Execute o comando abaixo com argumentos apropriados para verificar a saída JSON válida.

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

Jenkin_specific_job

Execute o comando abaixo com argumentos apropriados para verificar a saída JSON válida.

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

Jenkin_jvm

Execute o comando abaixo com argumentos apropriados para verificar a saída JSON válida.

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

Jenkin_web

Execute o comando abaixo com argumentos apropriados para verificar a saída JSON válida.

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

Contribuição do plug-in

Sinta-se à vontade para contribuir com nosso plug-in e apresentar sugestões ou feedbacks na nossa comunidade.

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