Tracing Distribuído
Jaeger: fluxo ponta a ponta
Investigando latencia e erros do fluxo completo no Jaeger.
Nesta aula você vai
- Visualizar jornada completa da transacao no Jaeger
- Identificar gargalo de latencia por servico e operacao
- Usar trace como evidencia em troubleshooting
Jaeger: fluxo ponta a ponta
Objetivos
- Visualizar jornada completa de uma transação no Jaeger
- Identificar gargalo de latência por serviço e operação
- Usar trace como evidência em troubleshooting
Pré-requisitos
- Aulas 1 e 2 de tracing concluídas.
- Jaeger acessivel em
http://localhost:16686. - Fluxo de pedidos gerando spans nos cinco servicos.
Conceito
Jaeger permite inspecionar a arvore de spans e entender onde a latencia foi gasta ao longo da requisicao.
Com isso, voce descobre gargalos reais em vez de otimizar no escuro.
Estrutura de arquivos
infra/tracing/jaegerdocs/runbooks/troubleshooting-traces.mdservices/*/telemetryscripts/demo/generate_full_checkout.sh
Passo a passo com codigo
- Gere um fluxo completo com script:
./scripts/demo/generate_full_checkout.sh --orders 20
- Abra o Jaeger e filtre por servico de entrada:
Service: order-service
Operation: POST /orders
Lookback: Last 15 minutes
- Identifique span mais lento e anote atributos:
span: payment.consume.order_created
duration: 420ms
tags: retry_count=2, kafka.partition=1
- Registre acao de melhoria no runbook:
- Sintoma: latencia alta no payment.consume.order_created
- Evidencia: trace f18d... duracao 420ms
- Acao: reduzir timeout de dependencia externa e ajustar pool
Como testar
- Rode o fluxo em condicao normal e salve trace de referencia.
- Injete atraso artificial no payment-service.
- Execute novo fluxo e compare traces.
- Confirme que Jaeger destaca claramente o span degradado.
Dicas
- Compare trace bom x trace ruim sempre.
- Use tags de negocio para localizar transacoes.
- Correlacione trace com metricas e logs.
- Salve traces de referencia para regressao.
Erros comuns
- Analisar apenas tempo total sem olhar spans
- Ignorar traces incompletos por falha de propagação
- Não correlacionar trace com logs de erro
- Focar em otimização sem evidência temporal
Resumo
Jaeger fecha o ciclo de tracing: voce sai da instrumentacao e passa para investigacao objetiva de gargalos e falhas no fluxo ponta a ponta.