Se você está desenvolvendo aplicações Spring Boot e quer garantir que elas estejam performando bem em produção, monitorar métricas é essencial. Neste guia, vamos configurar o Prometheus (um sistema de monitoramento e alerta) e o Grafana (uma ferramenta de visualização de dados) para coletar e exibir métricas de uma aplicação Spring Boot em menos de 30 minutos.
Requisitos
- Uma aplicação Spring Boot (pode ser um projeto novo ou existente)
- Docker instalado (para rodar Prometheus e Grafana)
- Conhecimento básico de Spring Boot e YAML
1. Adicionando Dependências ao Spring Boot
Para expor métricas no formato que o Prometheus entende, adicione as seguintes dependências no seu pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
Isso habilita endpoints do Actuator (como /actuator/prometheus
) que o Prometheus vai consumir.
2. Configurando o Actuator
No application.yml
(ou application.properties
), adicione:
management:
endpoints:
web:
exposure:
include: health, prometheus, metrics
metrics:
tags:
application: minha-aplicacao-spring
Isso expõe os endpoints necessários e adiciona tags para melhor organização das métricas.
3. Rodando Prometheus e Grafana com Docker
Crie um arquivo docker-compose.yml
com:
version: '3'
services:
prometheus:
image: prom/prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
command:
- '--config.file=/etc/prometheus/prometheus.yml'
grafana:
image: grafana/grafana
ports:
- "3000:3000"
depends_on:
- prometheus
E um prometheus.yml
para configurar o scrape (coleta) de métricas:
global:
scrape_interval: 5s
scrape_configs:
- job_name: 'spring-boot-app'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['host.docker.internal:8080'] # Se sua app roda na porta 8080 localmente
Nota: Se sua aplicação Spring Boot estiver rodando fora do Docker, use
host.docker.internal
para acessá-la.
4. Iniciando Tudo
Execute:
docker-compose up -d
Agora, você pode acessar:
- Prometheus: http://localhost:9090
- Grafana: http://localhost:3000 (login:
admin/admin
)
5. Configurando Grafana para Visualizar Métricas
- No Grafana, vá em “Data Sources” e adicione o Prometheus (URL:
http://prometheus:9090
). - Importe um dashboard pronto para Spring Boot (ID 4701 ou 6756).
- Pronto! Agora você tem gráficos de:
- Requisições por segundo
- Tempo de resposta
- Uso de CPU/Memória
- Métricas de banco de dados (se aplicável)
Conclusão
Em menos de 30 minutos, você configurou um sistema de monitoramento completo para sua aplicação Spring Boot! Agora, você pode:
- Identificar gargalos de performance
- Monitorar a saúde da aplicação em tempo real
- Criar alertas no Grafana/Prometheus
Quer se aprofundar? Explore métricas customizadas com Micrometer
ou configure alertas no Prometheus!
Links Úteis: