ANÚNCIO

~/questoes/devops

Qual é a diferença entre instrumentação automática e manual no OpenTelemetry?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Aula de referência Primeiros passos com OpenTelemetry: O que você precisa saber?
Para fixar

Instrumentação Automática versus Manual no OpenTelemetry

Conceito central

OpenTelemetry oferece duas formas de coletar dados de observabilidade: automática, que funciona sem alterar o código-fonte via agentes, e manual, que permite controle customizável sobre eventos específicos. A maioria dos projetos usa ambas as estratégias juntas para capturar tanto a infraestrutura quanto a lógica de negócio.

Por que essa resposta faz sentido

A instrumentação automática injeta coletores através de agentes ou variáveis de ambiente sem modificar o código, enquanto a manual oferece controle fino e customizável sobre quais eventos rastrear. Essa combinação permite flexibilidade: começar rápido com automática e adicionar rastreamentos específicos de negócio com manual.

Armadilhas comuns

  • Pensar que automática é obsoleta ou inferior — na verdade, é essencial para capturar dados de infraestrutura sem refatoração
  • Acreditar que precisa escolher entre uma ou outra — o ideal é combinar automática para baseline e manual para lógica de negócio customizada
  • Confundir automática apenas com Java — existem agentes e mecanismos de automação para múltiplas linguagens

Entenda as alternativas

A

Automática não é obsoleta. Pelo contrário, é amplamente utilizada em produção para capturar dados de infraestrutura e é especialmente útil em projetos legados e prototipagem. Ambas as abordagens coexistem e são recomendadas.

B

Esta é a resposta correta. Automática injeta coletores sem tocar no código-fonte, enquanto manual oferece granularidade e customização. Juntas, permitem capturar tanto dados automáticos de sistema quanto contexto de negócio específico.

C

Essa afirmação é falsa. Manual não é mais lenta nem menos recomendada em produção. Na verdade, manual é essencial para rastreamentos de negócio em produção. Ambas são seguras quando bem configuradas.

D

Isso não é verdade. Manual funciona em todas as linguagens suportadas por OpenTelemetry (Python, Go, Java, Node.js, etc.), e automática também não está limitada apenas a Java, embora seja muito usada lá via agentes JVM.

Dica prática: Na prática, comece instrumentando sua aplicação de forma automática (via agentes ou variáveis de ambiente) para capturar latências de rede e chamadas de banco de dados. Depois, adicione rastreamentos manuais para operações críticas de negócio, como processamento de pagamentos ou autenticação. Assim você garante visibilidade total com mínimo esforço inicial.

Revise pensando: Se você quisesse rastrear o tempo que uma operação de negócio específica leva dentro de um microsserviço, você usaria instrumentação automática ou manual? Por quê?