Primeros pasos
Instalar el paquete de instrumentación de OpenTelemetry de HyperDX
Utiliza el siguiente comando para instalar el paquete de OpenTelemetry de ClickStack.- NPM
- Yarn
Inicialización del SDK
Para inicializar el SDK, debes llamar a la funcióninit al inicio del punto de entrada de tu aplicación.
- require
- import
Configurar la recopilación de logs
De forma predeterminada, se recopilan los logs deconsole.*. Si usas un logger
como winston o pino, tendrás que añadir un transporte a tu logger para
enviar logs a ClickStack. Si usas otro tipo de logger,
contacta con nosotros o explora una de nuestras
integraciones de plataforma, si corresponde (como Kubernetes).
- Winston
- Pino
- console.log
Si usas
winston como logger, tendrás que añadir el siguiente transporte a tu logger.Configurar la recopilación de errores
El SDK de ClickStack puede capturar automáticamente excepciones no capturadas y errores en su aplicación, con la traza de pila completa y el contexto del código. Para habilitarlo, deberá añadir el siguiente código al final del middleware de gestión de errores de su aplicación o capturar manualmente las excepciones mediante la funciónrecordException.
- Express
- Koa
- Manual
Solución de problemas
Si tienes problemas con el SDK, puedes habilitar el registro detallado configurando la variable de entornoOTEL_LOG_LEVEL en debug.
Configuración avanzada de la instrumentación
Capturar logs de la consola
De forma predeterminada, el SDK de ClickStack capturará los logs de la consola. Puede desactivarlo estableciendo la variable de entornoHDX_NODE_CONSOLE_CAPTURE en 0.
copy
Añadir información de usuario o metadatos
Para etiquetar fácilmente todos los eventos relacionados con un atributo o identificador determinado (p. ej., id. de usuario o correo electrónico), puede llamar a la funciónsetTraceAttributes, que etiquetará cada
log/span asociado a la traza actual tras la llamada con los
atributos indicados. Se recomienda llamar a esta función lo antes posible dentro de una
solicitud o traza determinadas (p. ej., lo antes posible en la pila de middleware de Express).
Esta es una forma práctica de garantizar que todos los logs/spans queden etiquetados automáticamente con
los identificadores correctos para poder buscarlos más adelante, en lugar de tener que
etiquetar y propagar los identificadores manualmente.
userId, userEmail, userName y teamName rellenarán la UI de sesiones
con los valores correspondientes, pero pueden omitirse. Cualquier otro valor adicional
puede especificarse y usarse para buscar eventos.
HDX_NODE_BETA_MODE
en 1 o pasando betaMode: true a la función init para
habilitar los atributos de trazas.
Google Cloud Run
Si ejecutas tu aplicación en Google Cloud Run, Cloud Trace inyecta automáticamente encabezados de muestreo en las solicitudes entrantes, lo que actualmente limita el muestreo de trazas a 0,1 solicitudes por segundo por instancia. El paquete@hyperdx/node-opentelemetry establece la frecuencia de muestreo en 1.0 de
forma predeterminada.
Para cambiar este comportamiento o configurar otras instalaciones de OpenTelemetry, puedes
configurar manualmente las variables de entorno
OTEL_TRACES_SAMPLER=parentbased_always_on y OTEL_TRACES_SAMPLER_ARG=1 para
lograr el mismo resultado.
Para obtener más información y forzar el trazado de solicitudes específicas, consulta la
documentación de Google Cloud Run.
Bibliotecas instrumentadas automáticamente
El SDK instrumentará automáticamente (generará trazas de) las siguientes bibliotecas:dnsexpressgraphqlhapihttpioredisknexkoamongodbmongoosemysqlmysql2netpgpinorediswinston
Instalación alternativa
Ejecutar la aplicación con la CLI de OpenTelemetry de ClickStack
Como alternativa, puedes instrumentar automáticamente tu aplicación sin necesidad de hacer cambios en el código usando la CLIopentelemetry-instrument o la opción --require de Node.js. La instalación de la CLI ofrece una gama más amplia de bibliotecas y frameworks con instrumentación automática.
- Con NPX
- Punto de entrada personalizado (p. ej., Nodemon, ts-node, etc.)
- Importación de código
Managed ClickStackPuedes omitir
HYPERDX_API_KEY en Managed ClickStack.OTEL_SERVICE_NAME se usa para identificar tu servicio en la aplicación de HyperDX; puede ser cualquier nombre que quieras.
Activar la captura de excepciones
Para activar la captura de excepciones no controladas, deberás establecer la variable de entornoHDX_NODE_EXPERIMENTAL_EXCEPTION_CAPTURE en 1.