Skip to main content
TL;DRClone o HackerNews Analyzer, preencha o .env com seu endpoint OTLP e token e cole o prompt do agente. O backend não precisa importar o OpenTelemetry; o agente integra @hyperdx/node-opentelemetry na inicialização do processo.Tempo necessário: cerca de 10 minutos
O HackerNews Analyzer é um app Node.js que consulta o dataset HackerNews hospedado na demo pública do ClickHouse. Cada gráfico, tabela e caixa de busca corresponde a uma consulta real do ClickHouse. Portanto, cada interação produz um trace cujo span principal é a chamada HTTPS do backend ao ClickHouse. Esta é uma tarefa diferente da demo de replay de sessão, que instrumenta um app executado apenas no navegador usando um ClickStack local em Docker. Aqui, você conta com instrumentação automática do backend, spans de consultas do ClickHouse e replay de sessão no mesmo app.

Pré-requisitos

  • Node 18+ e npm
  • Um endpoint OTLP/HTTP do ClickStack e um token de ingestão:
    • ClickHouse Cloud: abra o serviço e acesse ClickStack → Configure seu exporter do OpenTelemetry → Variáveis de ambiente. O protocolo é http/protobuf. O header é authorization=<ingestion token>, sem o prefixo Bearer.
    • Collector local: use http://localhost:4318. Se o collector não estiver protegido, deixe authorization= em branco.

Clone o repositório

Clone o HackerNews Analyzer, instale as dependências e copie o modelo de arquivo de ambiente:
Você preencherá o .env nas próximas etapas e, em seguida, instrumentará a aplicação a partir deste diretório.

Instrumente a aplicação

1

Execute a aplicação

No diretório hn-news-analyzer clonado, inicie o aplicativo. A fonte de dados do ClickHouse usa, por padrão, o cluster de demonstração público e somente leitura, portanto é executado sem nenhuma configuração adicional:
Abra http://localhost:5001. Você verá um seletor de ano, estatísticas resumidas, um gráfico de atividade, tabelas com os principais usuários e domínios e uma caixa de busca. Explore: alterne entre os anos e aprofunde-se nas histórias.
O aplicativo HackerNews Analyzer em execução localmente
Neste ponto, o aplicativo está em execução, mas ainda não está instrumentado. O ClickStack não exibe dados: está aguardando telemetria.
2

Configure o ambiente

Os SDKs leem as variáveis padrão do exporter do OpenTelemetry. Elas não estão codificadas diretamente no código-fonte. Abra o arquivo .env e defina:
OTEL_EXPORTER_OTLP_ENDPOINT é o endpoint OTLP/HTTP (porta 4318). OTEL_EXPORTER_OTLP_HEADERS é o cabeçalho de autorização, no formato authorization=<token>, sem o prefixo Bearer.Se o collector não exigir autenticação, deixe o token vazio (OTEL_EXPORTER_OTLP_HEADERS=authorization=). A variável ainda deve estar presente; o SDK ignora a inicialização se ela não estiver definida ou estiver totalmente vazia.O SDK do navegador reutiliza esses mesmos valores. O vite.config.ts incorpora o endpoint e o token ao pacote público durante a compilação; portanto, use um token de ingestão descartável, não um token de produção.
3

Instrumente a aplicação

Escolha um caminho. Todos os três levam ao mesmo aplicativo instrumentado.
Com o repositório clonado e o .env preenchido, cole este prompt em um agente de programação nesse diretório para instrumentar o aplicativo.
4

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-gerado entrem em vigor:
Confirme que o banner de inicialização exibe três linhas “Verificação de integridade aprovada” para /v1/traces, /v1/metrics e /v1/logs. Recarregue a aba do navegador para que o Vite sirva o pacote atualizado, depois alterne entre os anos e clique nas histórias para gerar tráfego.Abra a UI do ClickStack:
  1. Vá para Busca e filtre os últimos 5 minutos. Os logs de hn-analyzer-api começam a ser exibidos.
Busca do ClickStack mostrando logs de hn-analyzer-api dos últimos cinco minutos
  1. Clique em uma solicitação e percorra o trace até a origem. Você verá o span do handler do Express, um span HTTP filho apontando para sql-clickhouse.clickhouse.com com duração real de rede e registros console.log correlacionados no mesmo trace.
Trace do ClickStack com um span de handler do Express e um span HTTP filho para o ClickHouse
  1. Abra Reprodução de sessão para reproduzir um vídeo de uma sessão do navegador que permite avançar e retroceder, sincronizado com a linha do tempo do trace.
Reprodução de sessão do ClickStack sincronizada com a linha do tempo do trace
Logs, métricas, traces e reproduções de sessão são exibidos na mesma UI, compartilham a mesma linguagem de consulta e são correlacionados automaticamente.

Saiba mais

Última modificação em 26 de setembro de 2026