Primeiros passos
Instale o pacote de instrumentação OpenTelemetry da HyperDX
Use o comando a seguir para instalar o pacote OpenTelemetry do ClickStack.- NPM
- Yarn
Inicializando o SDK
Para inicializar o SDK, você precisará chamar a funçãoinit no início do ponto de entrada da sua aplicação.
- require
- import
Configurar a coleta de logs
Por padrão, os logs deconsole.* são coletados. Se você estiver usando um logger
como winston ou pino, precisará adicionar um transport ao logger para
enviar logs ao ClickStack. Se estiver usando outro tipo de logger,
entre em contato ou explore uma de nossas
integrações de plataforma, se aplicável (como Kubernetes).
- Winston
- Pino
- console.log
Se você estiver usando
winston como logger, precisará adicionar o transport abaixo ao logger.Configurar a coleta de erros
O SDK do ClickStack pode capturar automaticamente exceções não tratadas e erros na sua aplicação com stack trace completo e contexto do código. Para habilitar esse recurso, você precisará adicionar o código abaixo ao final do middleware de tratamento de erros da sua aplicação ou capturar exceções manualmente usando a funçãorecordException.
- Express
- Koa
- Manual
Solução de problemas
Se você estiver tendo problemas com o SDK, pode ativar o logging detalhado definindo a variável de ambienteOTEL_LOG_LEVEL como debug.
Configuração avançada de instrumentação
Capturar logs do console
Por padrão, o SDK do ClickStack captura logs do console. Você pode desativar isso definindo a variável de ambienteHDX_NODE_CONSOLE_CAPTURE como 0.
copy
Adicionar informações do usuário ou metadados
Para marcar facilmente todos os eventos relacionados a um determinado atributo ou identificador (ex.: ID do usuário ou e-mail), você pode chamar a funçãosetTraceAttributes, que marcará cada
log/span associado ao trace atual após a chamada com os atributos
declarados. Recomenda-se chamar essa função o mais cedo possível dentro de uma
determinada requisição/trace (ex.: o quanto antes na pilha de middlewares do Express).
Essa é uma forma prática de garantir que todos os logs/spans sejam marcados automaticamente com
os identificadores corretos para facilitar pesquisas posteriores, em vez de precisar
marcar e propagar os identificadores manualmente.
userId, userEmail, userName e teamName preencherão a UI de sessões
com os valores correspondentes, mas podem ser omitidos. Quaisquer outros valores adicionais
podem ser especificados e usados para pesquisar eventos.
HDX_NODE_BETA_MODE
como 1 ou passando betaMode: true para a função init, para
habilitar os atributos de trace.
Google Cloud Run
Se você executa sua aplicação no Google Cloud Run, o Cloud Trace injeta automaticamente cabeçalhos de amostragem nas solicitações de entrada, o que atualmente limita a amostragem de traces a 0,1 solicitação por segundo por instância. Por padrão, o pacote@hyperdx/node-opentelemetry substitui a taxa de amostragem para 1,0.
Para alterar esse comportamento ou configurar outras instalações do OpenTelemetry,
você pode definir manualmente as variáveis de ambiente
OTEL_TRACES_SAMPLER=parentbased_always_on e OTEL_TRACES_SAMPLER_ARG=1 para
obter o mesmo resultado.
Para saber mais e forçar o tracing de solicitações específicas, consulte a
documentação do Google Cloud Run.
Bibliotecas com instrumentação automática
As bibliotecas a seguir serão instrumentadas automaticamente para rastreamento pelo SDK:dnsexpressgraphqlhapihttpioredisknexkoamongodbmongoosemysqlmysql2netpgpinorediswinston
Instalação alternativa
Execute a aplicação com a CLI OpenTelemetry do ClickStack
Como alternativa, você pode instrumentar automaticamente sua aplicação sem precisar alterar o código usando a CLIopentelemetry-instrument ou a flag --require do Node.js. A instalação da CLI oferece uma variedade maior de bibliotecas e frameworks com instrumentação automática.
- Usando NPX
- Ponto de entrada personalizado (ex.: Nodemon, ts-node etc.)
- Importação de código
Managed ClickStackA
HYPERDX_API_KEY pode ser omitida no Managed ClickStack.OTEL_SERVICE_NAME é usada para identificar seu serviço no HyperDX e pode ter qualquer nome que você quiser.
Habilitando a captura de exceções
Para habilitar a captura de exceções não tratadas, defina a variável de ambienteHDX_NODE_EXPERIMENTAL_EXCEPTION_CAPTURE como 1.