Nesse artigo vamos abordar como efetuar o monitoramento dos seus deploys do Jenkins com o prometheus + Grafana. Assim garantindo um monitoramento unificado de seus projetos, além de um maior controle de deploy e, também, entender se sua ferramenta de CI/CD possui algum gargalo.
Mãos na massa!
Primeiro iremos instalar o plugin do prometheus no Jenkins.
- No seu jenkins clique em “Gerenciar Jenkins” -> “Gerenciar Plugins”
- Vá até a aba “Disponíveis” e busque por “Prometheus”, após isso irá aparecer o seguinte plugin “Prometheus metrics plugin” e clique em instalar plugin.
- Após instalado, vamos até “Gerenciar Jenkins” -> “Configurar Sistema” e busque por “Prometheus”
- Irá aparecer a imagem abaixo.
- As configurações deverão ficar da mesma forma como consta na imagem.
- Após a configuração no Jenkins, vamos fazer a integração do Jenkins com o Prometheus para que possamos extrair esses dados e trabalhar no Grafana.
- Acessar o servidor do jenkins por ssh.
- Ir até o diretório “/etc/prometheus” e alterar o arquivo “prometheus.yml” e adicione as configurações abaixo.
global:
scrape_interval: 10s
evaluation_interval: 30s
scrape_configs:
- job_name: 'jenkins'
basic_auth:
username: "<USUARIO>"
password: "<SENHA>"
metrics_path: '/prometheus'
scrape_interval: 5s
static_configs:
- targets: ['<URL_JENKINS>:<PORTA_JENKINS>']
metric_relabel_configs:
- action: replace
source_labels: [exported_job]
target_label: jenkins_job
- action: labeldrop
regex: exported_job
Lembrando que as informações abaixo devem ser suas configurações.
- <USUARIO> – Seu usuário configurado no Jenkins
- <SENHA> – Sua senha configurada no Jenkins
- <URL_JENKINS> – Sua url usada no Jenkins
- <PORTA_JENKINS> – Sua porta usada no Jenkins caso possua.
Feito isso, nossos dados já estão sendo coletados pelo Prometheus, para confirmarmos vamos acessar o prometheus e validar o status:
Acesse a URL de onde está instalado o prometheus com a seguinte url “<URL>:9090” e vá até o label ao lado direito do botão executar.
Clicando nele aparecerá as seguintes informações “jenkins_* e vm_*” ambos são as informações do Jenkins e as informações da máquina onde o Jenkins está instalado.
Para validar se o prometheus está conseguindo se conectar no jenkins, vamos até o menu “Status” -> “Targets”.
Agora está tudo pronto com o Jenkins e Prometheus, vamos transformar isso em um Dashboard visual no Grafana para conseguirmos monitorar todos os nossos Deploys.
Vá até o Grafana e adicione um novo “Data Sources”
- Na configuração iremos apenas definir a URL, após isso iremos salvar e testar.
Pronto, nosso Grafana já está conseguindo buscar as informações do prometheus, bastando apenas criar um Dashboard.
Vou criar um exemplo de métrica para visualizar como é fácil realizar esse monitoramento.
Vamos então criar nosso Dashboard, clique em Create -> Dashboard
- Vamos escolher a opção “Choose Visualization” e escolher “Singlestat”.
- Nele iremos escolher a opção do Data Source, ele fica no canto esquerdo.
Selecionando a primeira opção dessa imagem, vamos definir a métrica e qual Data Source iremos utilizar.
- Em “Queries to” iremos escolher o “Prometheus”
- No campo para fazermos a query, vamos buscar o total de jobs com sucesso feito no Jenkins.
- Para isso vamos utilizar a query abaixo:
jenkins_runs_success_total
Agora faremos os parâmetros da visualização:
- Stat = Current
- Fron Size = 150%
- Value = Ativo
- Tresholds = 0,0
- Colors = Clicar no botão “invert”
Vamos mudar o título do nosso gráfico, colocando ele como “Jobs finalizados com Sucesso”, para isso clicaremos no terceiro item do seu lado esquerdo.
- Title = Jobs finalizados com Sucesso
Basta clicar no botão voltar no seu canto superior esquerdo para vermos o gráfico como ficou.
Veja como ficou seu monitoramento.
É isso pessoal, agora mãos na massa e muita criatividade. Abaixo veja um exemplo de como ficou meu monitoramento inicial.