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 a coleta de métricas e o Grafana para a visualização, permitindo o monitoramento em tempo real de toda a plataforma.

A observabilidade é uma propriedade essencial dos sistemas distribuídos. Sem ela, entender o comportamento do sistema, diagnosticar falhas e medir o desempenho entre vários serviços se torna 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 nos concentrar no monitoramento, integrando o Spring Boot Actuator, o Prometheus e o Grafana.

Slides

Clique nos slides e use ← → para navegar; F abre em tela cheia e P abre a visão do apresentador, com as notas. Abrir os slides em uma nova aba

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 Prometheus e Grafana ao arquivo docker compose.yaml, garantindo que estejam na mesma rede dos microsserviços.

    Docker Compose

  • Prometheus


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

    Prometheus

  • Grafana


    Faça o deploy do Grafana via Docker Compose, conecte-o ao Prometheus e explore dashboards prontos.

    Grafana

  • Executar


    Reconstrua e suba a stack completa com o Docker Compose e, em seguida, verifique se todos os serviços estão rodando e se as métricas estão sendo coletadas.

    Executar