O que é um trace distribuído
Trace distribuído é um registro que relaciona partes instrumentadas de uma operação entre componentes. Ele permite acompanhar, por exemplo, uma chamada recebida por uma API e o trabalho realizado por serviços que participam de sua resposta.
Cada parte é registrada como um span, com início, término e informações sobre o trabalho observado. Você consulta essas relações para entender o percurso e localizar intervalos que precisam de investigação.
Spans representam unidades de trabalho
Um span pode representar o atendimento de uma requisição, uma consulta ou uma chamada externa. Ele pode ter spans filhos que detalham atividades realizadas durante seu intervalo, além de atributos e eventos úteis à leitura.
Essa estrutura não implica uma sequência única de execução. Duas chamadas podem ocorrer em paralelo, e uma atividade assíncrona pode precisar de uma relação própria para representar seu vínculo com o trabalho que a originou.
A referência precisa atravessar os componentes
O rastreamento distribuído depende da propagação das informações que associam os spans. Em HTTP, essa associação pode viajar em headers próprios, que o próximo serviço interpreta ao iniciar seu trecho de trabalho.
Se um componente perde essa informação, os spans seguintes podem aparecer como outro percurso. O mesmo cuidado se aplica a filas e tarefas assíncronas, cuja instrumentação precisa preservar a relação adequada entre envio e processamento.
O tempo observado orienta a investigação
Um span longo mostra que aquela unidade consumiu mais tempo na observação. Isso não informa sozinho se a demora veio de CPU, espera por conexão, rede ou trabalho realizado em outro serviço.
Compare o trecho com seus detalhes e com logs e métricas do mesmo caso. Um erro no span também precisa ser interpretado conforme a convenção de instrumentação, pois falhas de negócio e falhas técnicas podem ser registradas de maneiras diferentes.
O percurso disponível pode estar incompleto
Uma parte sem instrumentação não ganha detalhes apenas porque os componentes vizinhos possuem spans. A coleta também pode usar amostragem e preservar somente uma seleção de operações, conforme sua política.
Por isso, não encontrar um trace específico não comprova que a chamada não aconteceu. Confira a seleção, a retenção e o encaminhamento antes de concluir que houve uma falha no processamento da aplicação.
Como conferir a instrumentação
Na API do exemplo, faça uma consulta de teste e localize seu trace na ferramenta de observabilidade. Confira se as chamadas ao catálogo e à disponibilidade aparecem vinculadas ao atendimento da API e se seus intervalos se sobrepõem. Se uma delas aparecer isolada, examine a propagação entre esses serviços antes de atribuir a demora à consulta.
Quando uma lentidão exige analisar esse percurso com orientação ao vivo, o Desenvolvimento Colaborativo da Dev Side Studio pode apoiar uma investigação delimitada. A tarefa deve partir de um caso identificável e dos sinais que estão disponíveis para examiná-lo.
Dúvidas frequentes
Perguntas frequentes sobre Trace distribuído
- O que é um span?
- É o registro de uma unidade de trabalho instrumentada, com início, término e informações sobre sua relação com outras unidades. Pode representar uma chamada HTTP ou uma consulta ao banco.
- Somar a duração dos spans dá o tempo total?
- Não necessariamente. Spans podem estar aninhados ou ocorrer simultaneamente. A soma pode incluir o mesmo intervalo mais de uma vez.
- O trace mostra todas as chamadas do sistema?
- Somente as partes instrumentadas e preservadas pela coleta. Amostragem, perda de propagação e retenção podem deixar operações ou trechos ausentes.
- O trecho mais demorado identifica a causa?
- Ele indica onde o tempo foi observado. A causa pode envolver espera, rede ou dependências internas daquele trecho, exigindo outros registros e verificações.
Para continuar
Recursos relacionados
Documentação
OpenTelemetry: traces e spans
Unidades de trabalho e relações dentro de um trace.
Abrir recursoDocumentação
OpenTelemetry: propagação de contexto
Associação entre trechos produzidos em serviços diferentes.
Abrir recursoDocumentação
OpenTelemetry: amostragem
Seleção dos traces que serão preservados.
Abrir recursoAplicação na formação
Formação DevOps
O trace distribuído relaciona etapas de uma chamada para investigar seu percurso entre componentes.
Conhecer a formação
Fontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.