Pré-requisitos
- Um OTel collector disponível e acessível, com ingestão no seu serviço Managed ClickStack. Você precisará do endpoint OTLP dele e de um token de ingestão.
- Node 18+ e npm.
Faça o clone e execute a aplicação
Clone o repositório, instale as dependências e crie seu arquivo.env:Obtenha os detalhes da conexão
A aplicação precisa de dois valores para se comunicar com o coletor:OTEL_EXPORTER_OTLP_ENDPOINT: o endpoint OTLP que seu coletor expõe (geralmente na porta4318para OTLP via HTTP).OTEL_EXPORTER_OTLP_HEADERS: o cabeçalho de autorização que contém seu token de ingestão, no formatoauthorization=<token>.
.env e defina esses valores:OTEL_EXPORTER_OTLP_HEADERS para definir o header de autorização para os três sinais: traces, métricas e logs. Se o seu collector estiver em execução localmente e não exigir autenticação, você pode deixar o valor vazio (OTEL_EXPORTER_OTLP_HEADERS=authorization=), mas a variável precisa estar presente; o SDK ignora completamente a inicialização se ela não estiver definida ou se estiver totalmente vazia.Instrumente a aplicação
A instrumentação tem três partes: instalar os SDKs, alterar o comando de inicialização e habilitar o SDK do navegador. Nada disso altera as regras de negócio da aplicação.Instale os SDKs
Instale os SDKs do OpenTelemetry para o backend e para o navegador:Use a CLI opentelemetry-instrument
A aplicação é iniciada por run.sh, que tem duas linhas exec na parte inferior: uma ativa e outra comentada. Troque qual delas está ativa para que o Node seja iniciado com opentelemetry-instrument:opentelemetry-instrument na inicialização do processo.Ative o SDK do navegador
Para capturar traces distribuídos (do navegador para o backend) e replay de sessão, ative o SDK do navegador emsrc/web/telemetry.ts. Descomente a importação e o bloco HyperDX.init({...}):.env é necessária. __OTLP_ENDPOINT__ e __OTLP_AUTH_TOKEN__ são constantes de tempo de compilação injetadas por vite.config.ts: o endpoint é OTEL_EXPORTER_OTLP_ENDPOINT, e o token é extraído de OTEL_EXPORTER_OTLP_HEADERS, os mesmos valores usados pelo backend.Gere tráfego e visualize a telemetria
Reinicie a aplicação para que o novo comando de inicialização e o bundle do navegador recém-compilado entrem em vigor:- Vá para Busca e filtre pelos últimos 5 minutos. Os logs de
hn-analyzer-apicomeçarão a aparecer.
- Clique em uma requisição e suba pelo trace. Você verá o span do handler do Express, um span HTTP filho apontando para o cluster do ClickHouse com a duração real da rede, além de registros
console.logcorrelacionados no mesmo trace.
- Abra Session Replay para reproduzir um vídeo com linha do tempo navegável de uma sessão do navegador, sincronizado com a linha do tempo do trace.
Saiba mais
- Session Replay: visão geral da funcionalidade, opções de SDK e controles de privacidade.
- Session Replay Demo: uma demonstração completa com uma instância local do ClickStack.
- ClickStack Primeiros passos: implante o ClickStack e faça a ingestão dos seus primeiros dados.
- Todos os datasets de exemplo: outros datasets de exemplo e guias.