Rastreamentos OpenTelemetry do navegador
Configure o SDK JavaScript do OpenTelemetry no React, crie spans para interações do usuário e exporte-os para um coletor de backend.
Rastreamentos OpenTelemetry do navegador é uma aula grátis de React Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de React Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de React Academy inclui 4 aulas no total.
O SDK JavaScript do OpenTelemetry
O SDK JavaScript do OpenTelemetry para navegadores consiste em vários pacotes: @opentelemetry/sdk-trace-web fornece a implementação central de rastreamento, @opentelemetry/instrumentation-fetch cria automaticamente intervalos para todas as chamadas da API fetch e @opentelemetry/exporter-trace-otlp-http envia intervalos a um coletor.
TracerProvider: a base do rastreamento do OpenTelemetry
O TracerProvider é o objeto central de configuração no OpenTelemetry. Ele contém a lista de SpanProcessors (que determinam o que acontece com os intervalos concluídos), o recurso que descreve sua aplicação (nome e versão do serviço) e qualquer configuração de amostragem.
BatchSpanProcessor: exportação eficiente
O BatchSpanProcessor coleta intervalos concluídos na memória e os exporta em lotes, em vez de enviar cada intervalo individualmente. Isso reduz drasticamente o número de solicitações HTTP ao coletor, melhorando o desempenho do navegador e reduzindo a carga no endpoint do coletor do OpenTelemetry.
OTLPTraceExporter: enviando para um coletor
OTLPTraceExporter envia intervalos agrupados a um coletor compatível com OpenTelemetry via HTTP no formato JSON ou protobuf. Você configura a URL do coletor (por exemplo, o endpoint de proxy do coletor do OpenTelemetry), e o exportador cuida automaticamente da serialização e da lógica de novas tentativas.
O que é um intervalo?
Um intervalo representa uma unidade de trabalho dentro de um rastreamento: a montagem de um componente, uma chamada de API ou uma interação do usuário. Os intervalos têm um nome, horário de início, horário de término, status (OK ou ERROR) e um conjunto de atributos de chave-valor. Intervalos relacionados são vinculados por um ID de rastreamento compartilhado e por relações pai-filho.
Iniciando e encerrando intervalos manualmente
Você cria um rastreador com provider.getTracer('react-app') e inicia intervalos com tracer.startSpan('component-mount'). Depois que o trabalho termina, chame span.end() para registrar o horário de término. Sempre encerre os intervalos — intervalos não encerrados desperdiçam memória e produzem dados incompletos no seu sistema de observabilidade.
Adicionando atributos aos intervalos
Os atributos enriquecem os intervalos com dados contextuais: span.setAttribute('user.id', userId) ou span.setAttribute('route', location.pathname). Os atributos podem ser pesquisados no seu sistema de observabilidade, permitindo consultas como "mostre todos os intervalos lentos do usuário 42" ou "mostre todos os erros na rota /checkout".
Instrumentação automática de fetch
@opentelemetry/instrumentation-fetch modifica dinamicamente a função fetch global para criar automaticamente intervalos para cada solicitação HTTP de saída. O intervalo captura a URL, o método, o código de status HTTP e a duração sem exigir alterações nas suas chamadas fetch existentes.
Propagação de contexto por meio do W3C TraceContext
Quando a instrumentação de solicitações cria um intervalo para uma solicitação de saída, ela injeta o cabeçalho traceparent do W3C TraceContext na solicitação. O back-end receptor lê esse cabeçalho e dá continuidade ao mesmo rastreamento, criando um rastreamento conectado que abrange o navegador e o servidor.
Inicializando o OpenTelemetry no seu aplicativo React
A inicialização do OpenTelemetry deve ocorrer antes da montagem de qualquer componente — normalmente no arquivo de entrada do aplicativo (main.tsx), antes da chamada ReactDOM.createRoot. Crie o provedor, registre os processadores e exportadores e chame provider.register() para torná-lo o TracerProvider global.
Amostragem: controlando o volume de rastreamentos
Registrar cada interação do usuário em aplicativos com alto tráfego gera enormes quantidades de dados de rastreamento. Configure um amostrador TraceIdRatioBased (por exemplo, amostrando 10% dos rastreamentos) no TracerProvider para reduzir o volume. Sempre amostre 100% dos rastreamentos de erro usando um amostrador ParentBased para garantir que nenhum erro seja perdido.
Objetivo do BatchSpanProcessor do OpenTelemetry
Por que o BatchSpanProcessor é usado em vez do SimpleSpanProcessor em aplicativos de navegador?
Resumo da lição
O SDK JavaScript do OpenTelemetry instrumenta navegadores com TracerProvider, BatchSpanProcessor e OTLPTraceExporter. Os intervalos representam unidades de trabalho enriquecidas com atributos. A instrumentação de solicitações cria automaticamente intervalos para chamadas de API e injeta cabeçalhos W3C TraceContext para o rastreamento distribuído de ponta a ponta. Inicialize cedo, faça a amostragem adequadamente e sempre finalize os intervalos para manter dados de rastreamento organizados.
Perguntas Frequentes
A aula “Rastreamentos OpenTelemetry do navegador” é grátis?
Sim — o texto completo de “Rastreamentos OpenTelemetry do navegador” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de React Academy, atualize para CoddyKit PRO. O curso de React Academy inclui 4 aulas no total.
O que vou aprender em “Rastreamentos OpenTelemetry do navegador”?
Configure o SDK JavaScript do OpenTelemetry no React, crie spans para interações do usuário e exporte-os para um coletor de backend. Você pratica React Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar React Academy?
Nenhuma experiência prévia é necessária. React Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Rastreamentos OpenTelemetry do navegador”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de React Academy?
Sim. Cada aula de React Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Observabilidade do frontend: o que é e por que importa
- Rastreamentos OpenTelemetry do navegador
- Monitoramento de usuários reais e Web Vitals
- Correlacionando rastreamentos do frontend e do backend