Skip to content

devfullcycle/microsservicos-comunicacao

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Implementação de Observabilidade com OpenTelemetry

Este projeto demonstra um ambiente de microsserviços com foco em observabilidade, utilizando ferramentas como Jaeger, Zipkin, Prometheus, e OpenTelemetry Collector, todos configurados via Docker Compose.

Importante: A instrumentação do OpenTelemetry utilizada neste projeto é a manual. Saiba mais em Instrumentação do OpenTelemetry

Clique para acessar a Live gravada sobre este projeto - A forma certa de implementar observabilidade com OpenTelemetry

Arquitetura

O setup contém três microsserviços Go, instrumentados para expor traces e métricas. O OpenTelemetry Collector centraliza a coleta desses dados e os exporta para as seguintes ferramentas de visualização e monitoramento:

  • Jaeger: Exibição de traces e spans de transações distribuídas.
  • Zipkin: Exibição e análise de traces de requisições.
  • Prometheus: Coleta e exibição de métricas dos microsserviços e do OpenTelemetry Collector.

Componentes

  • goapp: Serviço Go responsável por simular uma aplicação de microsserviço.
  • goapp2: Outro microsserviço Go, que faz chamadas externas para o goapp3.
  • goapp3: Terceiro microsserviço Go no pipeline de requisições.
  • Jaeger All-In-One: Serviço de tracing que coleta e armazena spans.
  • Zipkin All-In-One: Ferramenta para coletar, armazenar e exibir traces.
  • Prometheus: Ferramenta de monitoramento de métricas.
  • OpenTelemetry Collector: Centraliza a coleta de traces e métricas e os distribui para as ferramentas configuradas.

Fluxo de Observabilidade

Os microsserviços enviam suas métricas e traces ao OpenTelemetry Collector, que redistribui esses dados conforme segue:

  • Traces para Jaeger e Zipkin.
  • Métricas para Prometheus.

Visualização da Topologia

Diagrama de Observabilidade

Pré-requisitos

  • Docker e Docker Compose instalados na sua máquina.

Como rodar o projeto

  1. Clone o repositório:

    git clone https://github.com/devfullcycle/microsservicos-comunicacao.git
    cd microsservicos-comunicacao
  2. Suba os containers com o Docker Compose:

    docker-compose up --build
  3. Acesse as ferramentas de observabilidade:

Configuração dos Microsserviços

Os microsserviços estão configurados para expor métricas e traces usando o OpenTelemetry:

Cada um dos microsserviços realiza chamadas externas simuladas e envia traces para o OpenTelemetry Collector.

Configuração do OpenTelemetry Collector

O OpenTelemetry Collector recebe os dados dos microsserviços via OTLP (gRPC) e os exporta para:

  • Jaeger na porta 14250
  • Zipkin na porta 9411
  • Prometheus na porta 8889

Licença

Este projeto é licenciado sob os termos da licença ...

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •