Frontend Instrumentation – JavaScript

Guia completo para instrumentar aplicações front-end com Faro SDK, enviando dados para o collector-fe da Elven.

Visão Geral

Este guia tem como objetivo instruir a instrumentação de aplicações front-end com o Faro SDK da Grafana, utilizando o collector-fe, um componente exclusivo da Elven Observability.

Você poderá rastrear:

  • Sessões e navegação dos usuários.

  • Eventos personalizados.

  • Logs estruturados.

  • Medidas de performance (como tempo de carregamento).

Instalação

Usando NPM:

npm install @grafana/faro-web-sdk
npm install @grafana/faro-web-tracing

Usando Yarn:

yarn add @grafana/faro-web-sdk
yarn add @grafana/faro-web-tracing

Se estiver usando React com React Router:

Uso básico

Boa prática: crie um arquivo separado como faro.ts para configurar o SDK e importe no entry point (index.tsx ou App.tsx).

Configuração com React Router (opcional)

Sincronização de usuário logado

Exemplo com Next.js

Ao usar o Faro SDK em aplicações Next.js, é necessário garantir que a instrumentação aconteça somente no lado do cliente, pois o window não está disponível durante a renderização no servidor.

A forma ideal de configurar é dentro do arquivo especial do Next, o _app.tsx.

Exemplo de uso em pages/_app.tsx

Dica: Utilize variáveis como NEXT_PUBLIC_FARO_URL no .env.local para manter o token e tenant fora do código-fonte.

Eventos, Logs e Medidas personalizadas

Eventos personalizados:

Logs personalizados:

Medidas personalizadas:

Boas práticas

  • Armazene FARO_URL no .env (REACT_APP_FARO_URL).

  • Nunca envie dados sensíveis nos eventos ou logs.

  • Prefira importar o faro.ts no início da aplicação.

  • Utilize samplingRate de acordo com o volume do seu app (ex: 0.1 em produção).

Troubleshooting

Problema
Causa Provável
Solução

Eventos não chegam

Token inválido ou expirado

Verifique o JWT

Nada aparece no dashboard

URL incorreta ou CORS bloqueado

Verifique a URL e CORS do collector-fe

Sessão não persiste

Cookies bloqueados ou persistent: false

Ative persistent: true

Logs duplicados

initializeFaro sendo chamado múltiplas vezes

Mova para arquivo único e importe uma vez

Autenticação e URL do coletor

A URL de envio segue o formato:

Exemplo real:

Consulte: collector-fe – Guia de Instalação

Testando sua instrumentação

  1. Acesse o app com o navegador.

  2. Verifique no DevTools se a chamada para collector-fe retorna 2xx.

  3. Acesse o dashboard Grafana e filtre pelos eventos do seu tenant.

Feito com amor pela Elven Observability

Se tiver dúvidas ou sugestões, fale com a gente: elven.works.

Last updated

Was this helpful?