Skip to content
Latchkey

O Que É Rastreamento Distribuído?

O rastreamento distribuído acompanha uma única requisição enquanto ela percorre vários serviços, montando um panorama completo de sua jornada, dos tempos envolvidos e de onde ela ficou lenta ou falhou.

Em uma arquitetura de microsserviços, uma única ação do usuário pode passar por uma dúzia de serviços. Quando ela fica lenta ou falha, os logs de nenhum serviço isolado contam a história completa. O rastreamento distribuído resolve isso conectando os pontos em uma visão fim a fim da requisição.

O problema que ele resolve

Quando uma requisição se ramifica por vários serviços, os logs e as métricas tradicionais mostram cada serviço isoladamente. O rastreamento distribuído remonta o caminho completo de uma requisição, para que você veja exatamente qual salto foi lento ou qual serviço retornou o erro, em vez de adivinhar entre logs desconexos.

Traces e spans

Um trace representa toda a jornada de uma requisição e é composto por spans, cada um sendo uma única unidade de trabalho (como uma chamada ao banco de dados ou um RPC para outro serviço). Os spans se aninham e se encadeiam, e seus tempos revelam exatamente onde a requisição gastou seu tempo.

Propagação do contexto de trace

Para que os spans se liguem em um trace coerente, um identificador de trace precisa ser repassado junto com a requisição à medida que ela cruza as fronteiras dos serviços - geralmente via cabeçalhos HTTP. Essa propagação é o mecanismo essencial: sem ela, cada serviço geraria fragmentos desconexos em vez de um único trace conectado.

Lendo um trace

Traces geralmente são visualizados como uma cascata, com cada span exibido como uma barra cujo comprimento é sua duração. Isso torna os gargalos óbvios num relance: uma barra longa no meio de uma cadeia que é rápida no resto aponta o serviço lento. Isso transforma a depuração de latência em uma tarefa visual.

O terceiro pilar

Os traces completam o clássico trio de dados de observabilidade ao lado dos logs e das métricas. As métricas dizem que algo está lento, os logs dizem o que um serviço individual fez, e os traces amarram tudo mostrando como uma única requisição fluiu por todo o sistema.

Principais conclusões

  • O rastreamento distribuído acompanha uma requisição por todos os serviços que ela toca.
  • Traces são compostos por spans, ligados pelo contexto de trace propagado.
  • É essencial para depurar latência e falhas em microsserviços.

Guias relacionados