Propagação de contexto

Entenda os conceitos que tornam possível o Rastreamento Distribuído.

Com a propagação de contexto, os sinais podem ser correlacionados entre si, independentemente de onde são gerados. Embora não se limite ao rastreamento, a propagação de contexto permite que os rastros criem informações causais sobre um sistema que é distribuído arbitrariamente entre processos e limites de rede.

Para compreender a propagação de contexto, você precisa entender dois conceitos distintos: contexto e propagação.

Contexto

O contexto é um objeto que contém as informações necessárias para que o serviço emissor e receptor, ou unidade de execução, correlacionem um sinal com outro.

Quando o serviço A chama o serviço B, um ID de rastro (trace ID) e um ID de trecho (span ID) são incluídos como parte do contexto. O serviço B utiliza estes valores para criar um novo trecho que pertence ao mesmo rastro, definindo o trecho do serviço A como seu pai. Isso torna possível acompanhar todo o fluxo de uma requisição através dos limites dos serviços.

Propagação

Propagação é o mecanismo que move o contexto entre serviços e processos. Ele serializa ou desserializa o objeto de contexto e fornece as informações relevantes a serem propagadas de um serviço para outro.

A propagação geralmente é gerenciada por bibliotecas de instrumentação e é transparente para o usuário. Caso precise propagar o contexto manualmente, você pode usar a API de Propagadores.

O OpenTelemetry mantém vários propagadores oficiais. O propagador padrão utiliza os cabeçalhos definidos na especificação W3C TraceContext.

Especificação

Para saber mais sobre a Propagação de Contexto, consulte a Especificação de Contexto.