Cómo configurar la instrumentación
La instrumentación es el proceso de usar código para integrar herramientas de monitoreo y registro en su aplicación. Esto le permite rastrear el rendimiento y comportamiento de su aplicación, así como depurar problemas en producción.
Convención
Para configurar la instrumentación, cree un archivo instrumentation.ts|js
en el directorio raíz de su proyecto (o dentro de la carpeta src
si está utilizando una).
Luego, exporte una función register
en el archivo. Esta función será llamada una vez cuando se inicie una nueva instancia del servidor Next.js.
Por ejemplo, para usar Next.js con OpenTelemetry y @vercel/otel:
Consulte el ejemplo de Next.js con OpenTelemetry para una implementación completa.
Es bueno saberlo:
- El archivo
instrumentation
debe estar en la raíz de su proyecto y no dentro de los directoriosapp
opages
. Si está utilizando la carpetasrc
, coloque el archivo dentro desrc
junto conpages
yapp
.- Si utiliza la opción de configuración
pageExtensions
para agregar un sufijo, también deberá actualizar el nombre del archivoinstrumentation
para que coincida.
Ejemplos
Importar archivos con efectos secundarios
A veces puede ser útil importar un archivo en su código debido a los efectos secundarios que causará. Por ejemplo, podría importar un archivo que define un conjunto de variables globales, pero nunca usar explícitamente el archivo importado en su código. Aún así tendría acceso a las variables globales que el paquete ha declarado.
Recomendamos importar archivos usando la sintaxis de import
de JavaScript dentro de su función register
. El siguiente ejemplo demuestra un uso básico de import
en una función register
:
Es bueno saberlo:
Recomendamos importar el archivo desde dentro de la función
register
, en lugar de hacerlo en la parte superior del archivo. Al hacer esto, puede agrupar todos sus efectos secundarios en un solo lugar en su código y evitar consecuencias no deseadas al importar globalmente en la parte superior del archivo.
Importar código específico del entorno de ejecución
Next.js llama a register
en todos los entornos, por lo que es importante importar condicionalmente cualquier código que no admita entornos de ejecución específicos (por ejemplo, Edge o Node.js). Puede usar la variable de entorno NEXT_RUNTIME
para obtener el entorno actual: