Lab simples com base no https://www.youtube.com/watch?v=LGhrGg-CJ5Y os créditos são da Fullcycle.
MIT License
Este repositório demonstra uma configuração de uma stack de observabilidade para microsserviços usando Docker Compose. Inclui Jaeger, Zipkin, Prometheus e OpenTelemetry Collector para coleta de métricas e rastreamento. Além disso, três microsserviços de demonstração (goapp
, goapp2
e goapp3
) são incluídos para simular uma aplicação distribuída.
Clone este repositório:
git clone https://github.com/dellabeneta/tracing-microservices.git
cd tracing-microservices
Certifique-se de que os arquivos de configuração do Prometheus e do OpenTelemetry Collector estão no lugar:
./.docker/prometheus.yaml
./.docker/otel-collector-config.yaml
jaegertracing/all-in-one:latest
- Aqui talvez você possa travar em uma release específica; seria uma boa prática.16686:16686
(Jaeger UI)14268
(Jaeger collector HTTP)14250
(Jaeger collector gRPC)openzipkin/zipkin:latest
- Aqui talvez você possa travar em uma release específica; seria uma boa prática.9411:9411
(Zipkin UI e API)prom/prometheus:latest
- - Aqui talvez você possa travar em uma release específica; seria uma boa prática.9090:9090
(Prometheus UI)./.docker/prometheus.yaml
.otel/opentelemetry-collector:0.103.0
- Essa versão em especṕifico é requerida.1888:1888
(extensão pprof)8888:8888
(métricas Prometheus)8889:8889
(métricas do Prometheus exporter)13133:13133
(verificação de integridade)4317:4317
(OTLP gRPC receiver)55679:55679
(extensão zPages)Três microsserviços estão incluídos nesta configuração:
goapp
8080:8080
TITLE=Microservice Demo 1
BACKGROUND_COLOR=green
RESPONSE_TIME=500ms
goapp2
8181:8181
TITLE=Microservice Demo 2
BACKGROUND_COLOR=blue
RESPONSE_TIME=1000ms
goapp3
8282:8282
TITLE=Microservice Demo 3
BACKGROUND_COLOR=green
RESPONSE_TIME=1000ms
Esses microsserviços estão conectados à stack de observabilidade e se comunicam entre si para simular um sistema distribuído.
Para iniciar toda a stack, basta executar:
docker compose up -d
Este comando irá construir os microsserviços e iniciar todos os containers definidos no compose.yml
.
goapp
: http://localhost:8080
goapp2
: http://localhost:8181
goapp3
: http://localhost:8282
Este projeto é licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.
Lembre-se que você pode efetuar um fork do respositório e ter o projeto dentro do seu próprio Github, uma excelente prática.