0Pricing
React Academy · Aula

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

  1. Observabilidade do frontend: o que é e por que importa
  2. Rastreamentos OpenTelemetry do navegador
  3. Monitoramento de usuários reais e Web Vitals
  4. Correlacionando rastreamentos do frontend e do backend
← Voltar para React Academy