Todos os produtos
Search
Central de documentação

Application Real-Time Monitoring Service:Supported trace propagation protocols

Última atualização: Oct 20, 2026

A propagação de contexto de rastreamento transfere metadados — 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 cabeçalho

EagleEye

Proprietário da Alibaba Cloud

EagleEye-

W3C Trace Context

Padrão W3C

traceparent, tracestate

Zipkin (B3)

Código aberto

X-B3-

Jaeger

Código aberto

uber-trace-id

SkyWalking

Código aberto

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 cabeçalho

Cabeçalho

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 (número inteiro longo aleatório). Compatível com campos redundantes de código aberto.

--

EagleEye-pSpanID

Identificador do span pai (número inteiro longo aleatório). Compatível com campos redundantes de código aberto.

--

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 cabeçalho

Cabeçalho

Formato

Exemplo

traceparent

<version>-<trace-id>-<parent-id>-<trace-flags> (versão: 2 caracteres hexadecimais minúsculos; para a versão atual, use 00; trace-id: 32 caracteres hexadecimais minúsculos; parent-id: 16 caracteres hexadecimais minúsculos que identificam o Span ID do chamador; trace-flags: 2 caracteres hexadecimais minúsculos contendo o sinalizador de amostragem)

00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01

tracestate

O tracestate transporta o estado de rastreamento específico do fornecedor e é usado em conjunto com o traceparent. Os membros são separados por vírgulas (,), por exemplo: vendor1=value1,vendor2=value2.

vendor1=value1,vendor2=value2

Os conceitos de tracestate e Baggage têm finalidades distintas. O W3C Baggage utiliza um cabeçalho HTTP separado para propagar contexto definido pelo usuário entre services. As entradas são separadas por vírgulas, como no exemplo: baggage: tenant_id=t1,region=cn. Esta descrição refere-se ao formato W3C; o suporte e a ativação dependem da implementação e configuração do agente ARMS.

Protocolo Zipkin (B3)

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

Campos de cabeçalho

Cabeçalho

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 cabeçalho

Cabeçalho

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.

Cabeçalho sw8

O cabeçalho sw8 é composto por oito campos separados por hífens. Todos os valores do tipo string devem estar codificados em Base64. O comprimento total do cabeçalho 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 número 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

Cabeçalho sw8-x

O cabeçalho 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 ARMS seleciona automaticamente o protocolo de propagação de rastreamento com base nos cabeçalhos 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 ARMS segue esta lógica:

  1. Verifique os cabeçalhos da solicitação em busca de campos específicos do 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 cabeçalho 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 cabeçalho 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.