Este projeto demonstra a integração entre Spring Boot, Apache Kafka e Dynatrace para monitoramento de aplicações.
- Docker
- Docker Compose
- Java 17
- Maven
- Clone o repositório:
git clone https://github.com/nandoligeiro/demo-dyna.git
cd demo-dyna- Configure as variáveis de ambiente:
cp .env.example .env- Edite o arquivo
.enve adicione suas credenciais do Dynatrace:
DYNATRACE_API_URL=sua-url-do-dynatrace
DYNATRACE_TOKEN=seu-token-do-dynatrace
- Build do projeto:
./mvnw clean package -DskipTests- Iniciando os containers:
docker-compose up -d- Verificando os serviços:
- Spring Boot API: http://localhost:8080
- Kafdrop (Visualizador Kafka): http://localhost:9000
- Enviando uma mensagem para o Kafka:
curl -X POST http://localhost:8080/invoices- Visualizando as mensagens:
- Acesse http://localhost:9000
- Clique no tópico "invoice-events"
- Visualize as mensagens enviadas
O projeto consiste em:
- Spring Boot API: Aplicação Java que produz mensagens para o Kafka
- Apache Kafka: Message broker para processamento de eventos
- Kafdrop: Interface web para visualização dos tópicos e mensagens do Kafka
- Dynatrace OneAgent: Monitoramento e observabilidade da aplicação
- invoice-service: API Spring Boot (porta 8080)
- kafka: Apache Kafka broker (porta 9092)
- zookeeper: Necessário para o Kafka
- kafdrop: UI para Kafka (porta 9000)
- oneagent: Dynatrace OneAgent para monitoramento
O Dynatrace OneAgent está configurado para monitorar:
- Performance da aplicação Spring Boot
- Métricas do Kafka
- Rastreamento de transações
- Métricas de infraestrutura
-
Se o Dynatrace não iniciar:
- Verifique as credenciais no arquivo
.env - A aplicação continuará funcionando sem o monitoramento
- Verifique as credenciais no arquivo
-
Se o Kafka não conectar:
- Verifique se o Zookeeper está rodando
- Verifique os logs com
docker-compose logs kafka
# Ver logs dos containers
docker-compose logs -f
# Reiniciar todos os serviços
docker-compose restart
# Parar todos os serviços
docker-compose down
# Build e restart do invoice-service
docker-compose up -d --build invoice-service- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature) - Commit suas mudanças (
git commit -m 'feat: adicionando nova feature') - Push para a branch (
git push origin feature/nova-feature) - Abra um Pull Request
Este projeto está sob a licença MIT.