- Docker
- Docker Compose
- Java 23
- Maven
git clone https://github.com/MatheusGrego/solar-delay-sim.git
cd solar-delay-simulator./mvnw clean package -DskipTestsdocker-compose up -dEste comando iniciará:
- Aplicação Spring Boot
- Redis (Cache)
- Prometheus
- Grafana
- Aplicação:
http://localhost:8080 - Prometheus:
http://localhost:9090 - Grafana:
http://localhost:3000 - Redis:
localhost:6379
- Acesse:
http://localhost:9090 - Métricas disponíveis:
http_server_requests_seconds(latência)cache_hits_totalcache_misses_totalsystem_cpu_usage
- Acesse:
http://localhost:3000 - Credenciais padrão:
- Usuário:
admin - Senha:
admin
- Usuário:
- Adicione Prometheus como fonte de dados:
- URL:
http://prometheus:9090 - Access:
Browser
- URL:
- JVM (Micrometer)
- Spring Boot Statistics
- Redis Dashboard
- Acesse:
http://localhost:8080/swagger-ui.html
- JSON:
http://localhost:8080/api-docs - YAML:
http://localhost:8080/api-docs.yaml
O sistema utiliza cache em três níveis:
-
Caffeine (L1 - Memória)
- Tempo de expiração: 10 minutos
- Tamanho máximo: 100 entradas
-
Redis (L2 - Distribuído)
- TTL: 1 hora
- Principal:
http://localhost:8080/actuator - Métricas:
http://localhost:8080/actuator/metrics - Saúde:
http://localhost:8080/actuator/health - Prometheus:
http://localhost:8080/actuator/prometheus
# Verificar logs
docker-compose logs -f
# Reiniciar serviços
docker-compose restart
# Parar todos os serviços
docker-compose down# Limpar Redis
docker-compose exec redis redis-cli FLUSHALL
# Verificar status do Redis
docker-compose exec redis redis-cli info stats- Conexão Redis falhou
docker-compose restart redis- Métricas não aparecem no Prometheus
- Verifique se o endpoint
/actuator/prometheusestá acessível - Confirme as configurações no
prometheus.yml
- Grafana não conecta ao Prometheus
- Verifique se ambos estão na mesma rede Docker
- Confirme as configurações da fonte de dados
Por padrão, todos os endpoints do Actuator estão expostos. Em produção, considere:
- Restringir endpoints sensíveis
- Adicionar autenticação
- Configurar CORS apropriadamente
- Mantenha as versões do Docker e Docker Compose atualizadas
- Monitore o uso de memória do Redis
- Ajuste os tempos de cache conforme necessidade
- Faça backup regular das configurações do Grafana