Pular para conteúdo

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:

  • Microsserviços


    Adicione as dependências do Actuator e do registry do Prometheus a cada serviço Spring Boot e exponha o endpoint de métricas.

    Microsserviços

  • Docker Compose


    Adicione os serviços do Prometheus e do Grafana ao arquivo docker compose.yaml, garantindo que estejam na mesma rede que os microsserviços.

    Docker Compose

  • Prometheus


    Implante o Prometheus via Docker Compose e configure-o para coletar (scrape) as métricas de cada microsserviço.

    Prometheus

  • Grafana


    Implante o Grafana via Docker Compose, conecte-o ao Prometheus e explore dashboards prontos.

    Grafana

  • Execução


    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.

    Execução