Tracing Distribuído

Jaeger: fluxo ponta a ponta

Investigando latencia e erros do fluxo completo no Jaeger.

Avançado 35 min 30 pontos Leitura 0%

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/jaeger
  • docs/runbooks/troubleshooting-traces.md
  • services/*/telemetry
  • scripts/demo/generate_full_checkout.sh

Passo a passo com codigo

  1. Gere um fluxo completo com script:
./scripts/demo/generate_full_checkout.sh --orders 20
  1. Abra o Jaeger e filtre por servico de entrada:
Service: order-service
Operation: POST /orders
Lookback: Last 15 minutes
  1. Identifique span mais lento e anote atributos:
span: payment.consume.order_created
duration: 420ms
tags: retry_count=2, kafka.partition=1
  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

  1. Rode o fluxo em condicao normal e salve trace de referencia.
  2. Injete atraso artificial no payment-service.
  3. Execute novo fluxo e compare traces.
  4. 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.