Todos os produtos
Search
Central de documentação

Application Real-Time Monitoring Service:Protocolos de propagação de rastreamento suportados

Última atualização: Aug 27, 2026

A propagação de contexto de rastreamento transfere metadados de rastreamento — IDs de rastreamento, IDs de span e decisões de amostragem — entre services em uma aplicação distribuída. Isso permite correlacionar todos os spans de uma solicitação em um único rastreamento de ponta a ponta.

O Application Real-Time Monitoring Service (ARMS) oferece suporte a cinco protocolos de propagação de rastreamento.

Protocolo

Tipo

Prefixo do header

EagleEye

Proprietário da Alibaba Cloud

EagleEye-

W3C Trace Context

Padrão W3C

traceparent, tracestate

Zipkin (B3)

Open source

X-B3-

Jaeger

Open source

uber-trace-id

SkyWalking

Open source

sw8

Protocolo EagleEye

O EagleEye é um protocolo proprietário da Alibaba Cloud, desenvolvido pelo ARMS e amplamente utilizado nos services da Alibaba Cloud.

Campos de header

Header

Descrição

Exemplo

EagleEye-TraceID

Identificador de rastreamento (string aleatória de 32 bits).

--

EagleEye-RpcID

Relação hierárquica entre spans. 0 representa o span pai; 0.1 e 0.2 são spans filhos de 0; 0.1.1 é filho de 0.1.

0, 0.1, 0.2, 0.1.1

EagleEye-SpanID

Identificador de span (inteiro longo aleatório). Compatível com campos redundantes de open source.

--

EagleEye-pSpanID

Identificador do span pai (inteiro longo aleatório). Compatível com campos redundantes de open source.

--

EagleEye-Sampled

Sinalizador de amostragem.

--

EagleEye-pAppName

Nome da aplicação upstream.

--

EagleEye-pRpc

Interface da aplicação upstream.

--

EagleEye-UserData

Dados de baggage propagados com o rastreamento.

k1=v1&k2=v2

Protocolo W3C Trace Context

A especificação W3C Trace Context é um padrão neutro em relação a fornecedores, definido pelo World Wide Web Consortium (W3C).

Campos de header

Header

Formato

Exemplo

traceparent

<version>-<trace-id>-<parent-span-id>-<Sampling identifier> (versão de 2 bits, ID de rastreamento de 32 bits, ID do span pai de 16 bits, identificador de amostragem)

00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01

tracestate

Dados de baggage propagados com o rastreamento.

k1=v1&k2=v2

Protocolo Zipkin (B3)

O formato de propagação B3 é utilizado pelo Zipkin.

Campos de header

Header

Descrição

Exemplo

X-B3-TraceId

Identificador de rastreamento de 32 bits.

0af7651916cd43dd8448eb211c80319c

X-B3-SpanId

Identificador de span de 16 bits.

b7ad6b7169203331

X-B3-ParentSpanId

Identificador do span pai de 16 bits.

b7ad6b7169203331

X-B3-Sampled

Sinalizador de amostragem. 1 = amostrado, 0 = não amostrado.

1

baggage-

Prefixo para dados de baggage. Adicione o nome da chave após o prefixo.

baggage-k1=v1, baggage-k2=v2

Protocolo Jaeger

O formato de propagação Jaeger é utilizado pelo Jaeger.

Campos de header

Header

Formato

Exemplo

uber-trace-id

<trace-id>:<span-id>:<parent-span-id>:<flags>

0af7651916cd43dd8448eb211c80319c:b7ad6b7169203331:b7ad6b7169203331:1

uberctx-

Prefixo para dados de baggage. Adicione o nome da chave após o prefixo.

uberctx-k1=v1, uberctx-k2=v2

Protocolo SkyWalking

O formato de propagação SkyWalking é utilizado pelo Apache SkyWalking.

Header sw8

O header sw8 contém oito campos separados por hífens. Todos os valores do tipo string devem estar codificados em Base64. O comprimento total do header deve ser inferior a 2.000 caracteres.

Campo

Posição

Descrição

Sample

1

0 = o contexto existe, mas pode ser ignorado. 1 = amostrar e enviar ao backend.

Trace ID

2

Identificador único de rastreamento. String codificada em Base64 composta por três valores longos separados por pontos (.).

Parent trace segment ID

3

Identificador de segmento globalmente único. String codificada em Base64.

Parent span ID

4

0 ou um inteiro positivo.

Parent service

5

String codificada em Base64. Deve exceder 50 caracteres UTF-8.

Parent service instance ID

6

String codificada em Base64. Deve exceder 50 caracteres UTF-8.

Parent service endpoint

7

Endpoint do primeiro span de entrada no segmento de rastreamento pai. String codificada em Base64. Deve exceder 50 caracteres UTF-8.

Destination URL

8

URL do service de destino. O formato pode diferir de <IP address><Port number>. String codificada em Base64.

Exemplo:

1-TRACEID-SEGMENTID-3-PARENT_SERVICE-PARENT_INSTANCE-PARENT_ENDPOINT-IPPORT

Header sw8-x

O header sw8-x transporta campos de extensão, também separados por hífens. Os campos podem ser estendidos conforme necessário.

O modo de rastreamento aceita null, 0 ou 1:

  • null ou 0 (padrão): Nenhum span gerado no contexto atual será analisado. O contexto é propagado para upstream por padrão, a menos que haja alteração durante o rastreamento.

  • 1: Os spans são analisados.

Funcionamento

O agente do ARMS seleciona automaticamente o protocolo de propagação de rastreamento com base nos headers presentes em cada solicitação recebida.

Fluxo de seleção

Considere um rastreamento que passa pelos services A, B e C. Ao receber uma solicitação, o agente do ARMS segue esta lógica:

  1. Verifique os headers da solicitação em busca de campos específicos de protocolo. A verificação segue uma ordem de prioridade fixa:

    Versão do agente ARMS

    Ordem de prioridade (da maior para a menor)

    v4.5.x e posteriores

    W3C > EagleEye > SkyWalking > Jaeger > Zipkin

    v4.x até v4.4.x

    EagleEye > W3C > SkyWalking > Jaeger > Zipkin

    Anteriores à v4.x

    EagleEye > Jaeger > Zipkin > SkyWalking > W3C

  2. Caso encontre um header correspondente, o agente restaura o contexto de rastreamento da solicitação e utiliza o mesmo protocolo para propagar o contexto aos services downstream.

  3. Se nenhum header correspondente for encontrado, o agente cria um novo contexto de rastreamento e o propaga usando o protocolo de maior prioridade. Por padrão, trata-se do protocolo EagleEye.

Personalizar a prioridade do protocolo

Para alterar a prioridade padrão do protocolo, acesse Configuration > Custom Configurations e atualize a seção Trace context propagation protocol settings. Para mais detalhes, consulte Trace context propagation protocol settings.