a. Visão geral
Objetivo principal
O objetivo principal deste hands-on é adicionar observabilidade à stack de microsserviços usando o Prometheus para coleta de métricas e o Grafana para visualização, permitindo o monitoramento em tempo real de toda a plataforma.
A observabilidade é uma propriedade crítica de sistemas distribuídos. Sem ela, entender o comportamento do sistema, diagnosticar falhas e medir o desempenho entre vários serviços torna-se praticamente impossível. Os três pilares da observabilidade são:
- Logging: registros estruturados dos eventos que ocorrem em cada serviço.
- Monitoramento: coleta e visualização contínuas de métricas do sistema e da aplicação ao longo do tempo.
- Rastreamento: acompanhamento do ciclo de vida completo de uma única requisição enquanto ela passa por vários serviços.
Neste hands-on, vamos focar no monitoramento, integrando o Spring Boot Actuator, o Prometheus e o Grafana.
A arquitetura resultante adiciona uma camada dedicada de observabilidade ao lado dos microsserviços existentes:
flowchart LR
subgraph obs [Camada de Observabilidade]
prometheus@{ shape: cyl, label: "Prometheus\n:9090" }
grafana[Grafana\n:3000]
prometheus --> grafana
end
subgraph api [Camada Confiável]
loadbalancer --> gateway
gateway --> auth
gateway --> account
end
prometheus e1@-.->|scrape /actuator/prometheus| gateway
prometheus e2@-.->|scrape /actuator/prometheus| auth
prometheus e3@-.->|scrape /actuator/prometheus| account
internet e0@==>|:80| loadbalancer
e0@{ animate: true }
e1@{ animate: true }
e2@{ animate: true }
e3@{ animate: true } A configuração exige mudanças em três frentes:
-
Adicione as dependências do Actuator e do registry do Prometheus a cada serviço Spring Boot e exponha o endpoint de métricas.
-
Adicione os serviços do Prometheus e do Grafana ao arquivo
docker compose.yaml, garantindo que estejam na mesma rede que os microsserviços. -
Implante o Prometheus via Docker Compose e configure-o para coletar (scrape) as métricas de cada microsserviço.
-
Implante o Grafana via Docker Compose, conecte-o ao Prometheus e explore dashboards prontos.
-
Reconstrua e suba a stack completa com o Docker Compose; depois, verifique se todos os serviços estão em execução e se as métricas estão sendo coletadas.