Todos os produtos
Search
Central de documentação

Managed Service for OpenTelemetry:Best practices for end-to-end tracing

Última atualização: Jul 05, 2026

Quando uma requisição atravessa vários serviços, mas os traces cobrem apenas parte deles, pontos cegos dificultam a identificação da causa raiz de falhas ou lentidão. O rastreamento de ponta a ponta elimina esses pontos cegos ao vincular terminais de usuário, gateways de nuvem, aplicações de backend e serviços dependentes em um único trace contínuo.

O Application Real-Time Monitoring Service (ARMS) e o Managed Service for OpenTelemetry oferecem suporte conjunto ao rastreamento de ponta a ponta nas seguintes camadas:

  • Terminais de usuário: Browser, Android e iOS

  • Gateways de nuvem: Application Load Balancer (ALB), Microservice Engine (MSE), NGINX Ingress Controller e Service Mesh

  • Aplicações de backend: Java, Go, Python, .NET, entre outras

  • Serviços dependentes: Bancos de dados, filas de mensagens e modelos grandes

End-to-end tracing workflow

Escolha a abordagem de instrumentação adequada

Há dois caminhos de instrumentação disponíveis. Em ambientes com múltiplas linguagens, utilize ambos simultaneamente, pois o ARMS e o Managed Service for OpenTelemetry são totalmente interoperáveis.

  • ARMS Application Monitoring (recomendado para Java, Go e Python): Agente desenvolvido internamente com SLA garantido. Oferece instrumentação automática, políticas flexíveis de amostragem, gerenciamento de agente, automonitoramento e degradação dinâmica de recursos.

  • Managed Service for OpenTelemetry (demais linguagens): Cliente open source compatível com OpenTelemetry, SkyWalking, Zipkin e Jaeger. Suporta instrumentação automática ou manual para mais de 10 linguagens.

Linguagem

ARMS Application Monitoring

Managed Service for OpenTelemetry

Recomendado

Java

Instrumentação automática

Instrumentação automática

ARMS

Go

Instrumentação automática

Instrumentação automática

ARMS

Python

Instrumentação automática

Instrumentação automática

ARMS

Node.js

Sem suporte

Instrumentação automática

OpenTelemetry

.NET

Sem suporte

Instrumentação automática

OpenTelemetry

PHP

Sem suporte

Instrumentação automática

OpenTelemetry

Erlang

Sem suporte

Instrumentação automática

OpenTelemetry

C++

Sem suporte

Instrumentação manual

OpenTelemetry

Swift

Sem suporte

Instrumentação manual

OpenTelemetry

Ruby

Sem suporte

Instrumentação manual

OpenTelemetry

Rust

Sem suporte

Instrumentação manual

SkyWalking

Agente ARMS para Java v4.0

Lançado em 2024, o agente ARMS para Java v4.0 foi construído inteiramente sobre o framework OpenTelemetry. Além do rastreamento padrão, captura dados de monitoramento de recursos, diagnósticos de desempenho e segurança da aplicação. O agente oferece suporte a:

  • Políticas flexíveis de amostragem de traces

  • Gerenciamento de agente com automonitoramento

  • Degradação dinâmica de recursos para garantir estabilidade em produção

Integre o rastreamento aos serviços Alibaba Cloud

Um desafio comum na nuvem é determinar se um problema de desempenho tem origem no seu código, em um gateway de nuvem ou em um serviço gerenciado. O rastreamento de ponta a ponta resolve essa questão ao incluir spans de serviços de nuvem no mesmo trace dos spans da sua aplicação.

O Managed Service for OpenTelemetry integra-se a quase 10 serviços Alibaba Cloud. Para começar a coletar dados de trace, ative a opção de rastreamento no console de cada serviço.

Métodos de coleta de traces

Os serviços de nuvem coletam dados de trace de duas formas:

Método de coleta

Funcionamento

Exemplo

Compromisso

Relatório direto de traces (recomendado)

O serviço instrumenta internamente e relata spans por meio de um Exporter.

User Experience Monitoring (RUM)

Mais detalhado e flexível

Conversão de log para trace

Sistemas de backend convertem logs de acesso em dados de trace.

ALB

Menos intrusivo, porém menos granular

O relatório direto segue a instrumentação padrão. Utilize a conversão de log para trace quando o sistema tiver restrições rigorosas de desempenho ou quando a instrumentação direta for impraticável, desde que os logs contenham contexto de trace (como TraceId).

Serviços de nuvem e protocolos de rastreamento suportados

Categoria

Serviço

Guia de configuração

Protocolo de rastreamento

Terminal de usuário

Aplicações web, aplicações HTML5 e mini programs

Ativar rastreamento de ponta a ponta para aplicação web ou mini program

W3C, B3, Jaeger, SkyWalking

Aplicações Android e iOS

Ativar rastreamento de ponta a ponta para aplicativo

W3C, SkyWalking

Gateway

MSE

Ativar análise de rastreamento para gateway nativo de nuvem

W3C, B3, SkyWalking

NGINX Ingress Controller

Ativar rastreamento para o NGINX Ingress controller

W3C, B3, Jaeger

ALB

Ativar Managed Service for OpenTelemetry para ALB

B3

Service Mesh

Ativar rastreamento distribuído no ASM

B3

API Gateway

Configurar análise de rastreamento

B3

Aplicação de backend

Java, Go, Python (agente ARMS)

Visão geral do Application Monitoring

W3C, B3, Jaeger, SkyWalking, EagleEye

.NET, Node.js e outras linguagens

Guia de integração

W3C, B3, Jaeger, SkyWalking

Serviço dependente

Mais de 100 componentes suportados. Abrange RPC, filas de mensagens, bancos de dados e agendamento de tarefas.

Propague o contexto de trace entre serviços

Instrumentar serviços individualmente é apenas o primeiro passo. Os serviços upstream e downstream devem concordar com um protocolo de propagação de contexto de trace para que os spans se conectem em um único trace contínuo.

O Managed Service for OpenTelemetry fornece conectividade de trace de ponta a ponta baseada no protocolo W3C Trace Context e expande progressivamente o suporte a protocolos e serviços adicionais.

End-to-end trace context propagation

Migre entre sistemas de rastreamento com coexistência de agentes duplos

Unificar protocolos em serviços que já executam diferentes sistemas de rastreamento é um desafio comum, especialmente durante transições tecnológicas, como a migração do SkyWalking para o OpenTelemetry.

O agente ARMS suporta coexistência de agentes duplos: os sistemas de rastreamento antigo e novo funcionam lado a lado. Isso permite validar a nova configuração sem interromper o monitoramento de produção. Remova o agente antigo após concluir a migração.

Dual-agent coexistence during migration

Utilize o agente ARMS como mediador de protocolos

Quando os serviços upstream e downstream usam protocolos de propagação diferentes e nenhum deles pode alternar facilmente, o agente ARMS atua como mediador de protocolos. Ele reconhece o contexto de trace recebido em um formato e o encaminha em outro.

Exemplo: A Aplicação A envia traces usando o protocolo Jaeger. O agente ARMS recebe o contexto Jaeger e o encaminha nos formatos Jaeger e Zipkin B3 para a Aplicação B downstream, que espera B3. A continuidade do trace é preservada através da fronteira de protocolos sem alterações de código em nenhuma das aplicações.

Planeje sua implementação

Para grandes sistemas distribuídos, ative o rastreamento de ponta a ponta de forma incremental, em vez de fazer tudo de uma vez:

  1. Comece pelos caminhos críticos de negócio. Identifique as requisições mais importantes para o seu negócio ou com maior probabilidade de exigir troubleshooting. Instrumente esses serviços primeiro.

  2. Expanda para serviços adjacentes. Após os serviços principais relatarem traces, verifique a topologia de traces em busca de chamadas externas para serviços não instrumentados. Ative o rastreamento para eles em seguida.

  3. Unifique os protocolos. Se os serviços utilizarem protocolos de rastreamento diferentes, implante o agente ARMS como mediador de protocolos ou planeje uma migração faseada com coexistência de agentes duplos.

  4. Ative o rastreamento de serviços de nuvem. Ligue o rastreamento para gateways de nuvem e serviços dependentes a fim de fechar as lacunas restantes na topologia de traces.

  5. Ajuste a amostragem. Depois de alcançar cobertura total, ajuste as políticas de amostragem (disponíveis no agente ARMS para Java v4.0) para equilibrar a profundidade da observabilidade com o custo de recursos.