Configuración de la biblioteca de rastreo de Node.js
Después de configurar la biblioteca de rastreo con tu código y de configurar el Agent para recopilar datos de APM, también puedes configurar la biblioteca de rastreo como prefieras e incluir la configuración del Etiquetado unificado de servicios.
Los parámetros del rastreador pueden configurarse con las siguientes variables de entorno:
Etiquetado de servicios unificado
DD_ENV
- Configuración:
env
Por defecto: El entorno configurado en el Datadog Agent
Configura el entorno de una aplicación (por ejemplo, prod
, pre-prod
y stage
). DD_SERVICE
- Configuración:
service
Por defecto: El campo name
en package.json
El nombre de servicio utilizado para esta aplicación. DD_VERSION
- Configuración:
version
Por defecto: El campo version
en package.json
El número de versión de la aplicación.
Se recomienda utilizar DD_ENV
, DD_SERVICE
y DD_VERSION
para configurar env
, service
y version
para tus servicios. Para obtener recomendaciones sobre la configuración de estas variables de entorno, consulta la documentación del Etiquetado unificado de servicios.
Trazas
DD_TRACE_ENABLED
- Configuración: N/A
Predeterminado: true
Si se habilita dd-trace. Configurar esto a false
desactiva todas las funciones de la biblioteca.
Consulta también DD_APM_TRACING_ENABLED. DD_TRACE_DEBUG
- Configuración: N/A
Por defecto: false
Habilita el registro de depuración en el rastreador. DD_TRACING_ENABLED
- Configuración: N/A
**Por defecto true
Si se habilita el rastreo. DD_TRACE_RATE_LIMIT
- Configuración:
rateLimit
Por defecto: 100
, cuando la DD_TRACE_SAMPLE_RATE
está configurada. De lo contrario, delega la limitación de frecuencias al Datadog Agent .
El número máximo de trazas por segundo, por instancia de servicio.
DD_TRACE_HEADER_TAGS
- Configuración:
headerTags
Por defecto: N/A
Acepta una lista separada por comas de cabeceras HTTP que no distinguen mayúsculas de minúsculas, asignadas opcionalmente a nombres de etiquetas. Aplica automáticamente los valores de cabeceras coincidentes como etiquetas en las trazas. Cuando no se especifica un nombre de etiqueta, se utilizan por defecto etiquetas con el formatohttp.request.headers.<header-name>
, para las solicitudes, y con el formatohttp.response.headers.<header-name>
, para las respuestas. Nota: Esta opción sólo es compatible con HTTP/1.
Ejemplo: User-ID:userId,Request-ID
- Si la Solicitud/Respuesta tiene una cabecera
User-ID
, su valor se aplica como etiqueta userId
a los tramos generados por el servicio.
- Si la Solicitud/Respuesta tiene una cabecera
Request-ID
, su valor se aplica como etiqueta http.request.headers.Request-ID
, para las solicitudes, y comohttp.response.headers.Request-ID
, para las respuestas.
DD_SERVICE_MAPPING
- Configuración:
serviceMapping
Por defecto: N/A
Ejemplo: mysql:my-mysql-service-name-db,pg:my-pg-service-name-db
Proporciona nombres de servicio para cada complemento. Acepta pares separados por comas plugin:service-name
, con o sin espacios. - Intervalo de descarga
- Configuración:
flushInterval
Por defecto: 2000
Intervalo en milisegundos en que el rastreador envía trazas al Agent. DD_TRACE_PARTIAL_FLUSH_MIN_SPANS
- Configuración:
flushMinSpans
Por defecto: 1000
Número de tramos antes de la exportación parcial de una traza. Esta opción evita conservar todos los tramos en la memoria, en el caso de trazas muy grandes. DD_TRACE_OBFUSCATION_QUERY_STRING_REGEXP
- Configuración: N/A
Por defecto: N/A
Una expresión regular (regex) para ocultar los datos confidenciales de la cadena de consulta de solicitudes entrantes que se informan en la etiqueta http.url
(las coincidencias se sustituyen por <redacted>
). Puede ser una cadena vacía, para deshabilitar el ocultamiento, o .*
, para ocultar toda la cadena de consulta. **ADVERTENCIA: Esta expresión regular se ejecuta para cada solicitud que ingresa por una entrada insegura (URL), por lo que debes asegurarte de utilizar una expresión regular segura. DD_TRACE_CLIENT_IP_HEADER
- Configuración: N/A
Por defecto: N/A
Nombre de cabecera personalizado del que procede la etiqueta http.client_ip
. - Función de búsqueda DNS
- Configuración:
lookup
Por defecto: require('dns').lookup
Función personalizada para búsquedas DNS, cuando se envían solicitudes al Agent. Algunas configuraciones tienen cientos de servicios en ejecución, cada uno ejecutando búsquedas DNS en cada intervalo de descarga, lo que genera problemas de escalado. Anula este proceso para proporcionar tu propio mecanismo de caché o de resolución. DD_TRACE_AGENT_PROTOCOL_VERSION
- Configuración:
protocolVersion
Por defecto: 0.4
Versión del protocolo para utilizar en las solicitudes al Agent. La versión configurada debe ser compatible con la versión del Agent instalada, de lo contrario se descartan todas las trazas. DD_TRACE_REPORT_HOSTNAME
- Configuración:
reportHostname
Por defecto: false
Si se informa el nombre de host del sistema para cada traza. Si se deshabilita, se utiliza el nombre de host del Agent. DD_TRACE_STARTUP_LOGS
- Configuración:
startupLogs
Por defecto: false
Habilita la configuración del inicio del rastreador y el log de diagnóstico. DD_SPAN_SAMPLING_RULES
- Configuración:
spanSamplingRules
Por defecto: []
Las reglas de muestreo de tramos para conservar tramos individuales cuando, de otro modo, el resto de la traza se descartaría. Una matriz de objetos JSON. Las reglas se aplican en el orden configurado para determinar la frecuencia de muestreo de tramos. El valor de sample_rate
debe estar comprendido entre 0,0 y 1,0 (inclusive).
Para obtener más información, consulta Mecanismos de consumo.
**Ejemplo
- Define la frecuencia de muestreo de tramos en 50% para el servicio
my-service
y el nombre de operación http.request
, hasta 50 trazas por segundo: '[{"service": "my-service", "name": "http.request", "sample_rate":0.5, "max_per_second": 50}]'
DD_SPAN_SAMPLING_RULES_FILE
- Configuración: N/A
Por defecto: N/A
Indica un archivo JSON que contiene las reglas de muestreo de tramos. DD_SPAN_SAMPLING_RULES
tiene prioridad sobre esta variable. Para conocer el formato de las reglas, consulta DD_SPAN_SAMPLING_RULES
. DD_TRACE_DISABLED_PLUGINS
- Configuración: N/A
Por defecto: N/A
Ejemplo: DD_TRACE_DISABLED_PLUGINS=express,dns
Una cadena separada por comas de nombres de integraciones deshabilitadas automáticamente cuando se inicializa el rastreador. - Características experimentales
- Configuración:
experimental
Por defecto: {}
Las funciones experimentales pueden habilitarse añadiendo claves predefinidas con un valor de true
. Para obtener más información sobre las funciones experimentales disponibles, ponte en contacto con el servicio de asistencia. - Instrumentación automática de bibliotecas externas
- Configuración:
plugins
Por defecto: true
Si se habilita la instrumentación automática de bibliotecas externas utilizando los complementos incorporados. DD_TRACE_CLOUD_REQUEST_PAYLOAD_TAGGING
- Configuración:
cloudPayloadTagging.request
Predeterminado: N/A (desactivado)
Ejemplo: DD_TRACE_CLOUD_REQUEST_PAYLOAD_TAGGING=$.Metadata.UserId
Una cadena separada por comas de entradas JSONPath para redactar a partir de las solicitudes del SDK AWS. Configurar esto activa el etiquetado de carga útil de AWS para las solicitudes. DD_TRACE_CLOUD_RESPONSE_PAYLOAD_TAGGING
- Configuración:
cloudPayloadTagging.response
Predeterminado: N/A (desactivado)
Ejemplo: DD_TRACE_CLOUD_RESPONSE_PAYLOAD_TAGGING=$.Metadata.UserId
Una cadena separada por comas de entradas JSONPath para redactar a partir de respuestas de SDK de AWS. Configurar esto activa el etiquetado de carga útil de AWS para las respuestas. DD_TRACE_CLOUD_PAYLOAD_TAGGING_MAX_DEPTH
- Configuración:
cloudPayloadTagging.maxDepth
Predeterminado: 10
Ejemplo: DD_TRACE_CLOUD_PAYLOAD_TAGGING_MAX_DEPTH=10
Un número entero que representa la profundidad máxima de una carga útil de solicitud/respuesta del SDK de AWS a utilizar para el etiquetado de carga útil de AWS.
Agent
DD_TAGS
- Configuración:
tags
Por defecto: {}
Configura etiquetas (tags) globales que se apliquen a todos los tramos (spans) y métricas de tiempo de ejecución. Cuando se pasa como una variable de entorno, el formato es key:value,key:value
. Cuando se define mediante programación, el formato es tracer.init({ tags: { foo: 'bar' } })
. DD_TRACE_AGENT_URL
- Configuración:
url
Por defecto: http://localhost:8126
La URL del Trace Agent a la que envía trazas el rastreador. Tiene prioridad sobre el nombre del host y el puerto, si están definidos. Si la configuración del Agent define receiver_port
o DD_APM_RECEIVER_PORT
con un valor distinto del valor predeterminado 8126
, DD_TRACE_AGENT_PORT
o DD_TRACE_AGENT_URL
deben coincidir con él. Compatible con sockets de dominio Unix, en combinación con el apm_config.receiver_socket
de tu archivo datadog.yaml
o con la variable de entorno DD_APM_RECEIVER_SOCKET
. DD_TRACE_AGENT_HOSTNAME
- Configuración:
hostname
Por defecto: localhost
La dirección del Agent a la que envía trazas el rastreador. DD_TRACE_AGENT_PORT
- Configuración:
port
Por defecto: 8126
El puerto del Trace Agent al que envía trazas el rastreador. Si la configuración del Agent define receiver_port
o DD_APM_RECEIVER_PORT
con un valor distinto del valor predeterminado 8126
, DD_TRACE_AGENT_PORT
o DD_TRACE_AGENT_URL
deben coincidir con él. DD_DOGSTATSD_PORT
- Configuración:
dogstatsd.port
Por defecto: 8125
El puerto del Agent DogStatsD al que se envían métricas. Si la configuración del Agent define dogstatsd_port
o DD_DOGSTATSD_PORT
con un valor distinto del valor predeterminado 8125
, este DD_DOGSTATSD_PORT
de la biblioteca de rastreo debe coincidir con él. DD_REMOTE_CONFIG_POLL_INTERVAL_SECONDS
- Configuración:
remoteConfig.pollInterval
Por defecto: 5
Intervalo de sondeo de configuración remota en segundos.
AAP
DD_APPSEC_ENABLED
- Configuración:
appsec.enabled
Predeterminado: false
Activa las funciones de protección de aplicaciones y API. DD_APPSEC_RULES
- Configuración:
appsec.rules
Por defecto: N/A
Una ruta a un archivo de reglas AppSec personalizado. DD_APPSEC_WAF_TIMEOUT
- Configuración:
appsec.wafTimeout
Por defecto: 5000
Limita el tiempo de ejecución síncrona de WAF (en microsegundos). DD_APPSEC_OBFUSCATION_PARAMETER_KEY_REGEXP
- Configuración:
appsec.obfuscatorKeyRegex
Por defecto: N/A
Una cadena de expresiones regulares (regex) para ocultar datos sensibles por su clave en informes de ataques. DD_APPSEC_OBFUSCATION_PARAMETER_VALUE_REGEXP
- Configuración:
appsec.obfuscatorValueRegex
Por defecto: N/A
Una cadena de expresiones regulares (regex) para ocultar datos sensibles por su valor en informes de ataques.
Monitorización de bases de datos
DD_DBM_PROPAGATION_MODE
- Configuración:
dbmPropagationMode
Por defecto: 'disabled'
Para habilitar el enlace entre DBM y APM mediante la inyección de etiquetas. Puedes configurarlo como 'service'
o 'full'
. La opción 'service'
habilita la conexión entre servicios DBM y APM. La opción 'full'
habilita la conexión entre tramos de bases de datos y eventos de consulta de bases de datos. Disponible para Postgres.
Logs
DD_LOGS_INJECTION
- Configuración:
logInjection
Por defecto: false
Habilita la inyección automática de los ID de rastreo en logs para bibliotecas de registro compatibles. DD_TRACE_LOG_LEVEL
- Configuración:
logLevel
Por defecto: debug
Una cadena para el nivel mínimo de logs, para que el rastreador utilice cuando el registro de depuración está habilitado. Por ejemplo, error
, debug
.
OpenTelemetry
DD_TRACE_OTEL_ENABLED
- Configuración: N/A
Predeterminado: undefined
Cuando true
, el rastreo basado en OpenTelemetry para la instrumentación personalizada está activado.
Generación de perfiles
DD_PROFILING_ENABLED
- Configuración:
profiling
Por defecto: false
Si se habilita la generación de perfiles.
Métricas de tiempos de ejecución
DD_RUNTIME_METRICS_ENABLED
- Configuración:
runtimeMetrics
Por defecto: false
Si se habilita la captura de métricas de tiempo de ejecución. El puerto 8125
(o configurado con DD_DOGSTATSD_PORT
) debe estar abierto en el Agent para UDP.
Propagación del contexto de rastreo
Para obtener información sobre los valores válidos y el uso de las siguientes opciones de configuración, consulta Propagación del contexto de rastreo Node.js.
DD_TRACE_PROPAGATION_STYLE_INJECT
- Configuración:
tracePropagationStyle.inject
Predeterminado: Datadog,tracecontext,baggage
Una lista separada por comas de formatos de encabezados a incluir para propagar traces (trazas) distribuidas entre servicios. DD_TRACE_PROPAGATION_STYLE_EXTRACT
- Configuración:
tracePropagationStyle.extract
Predeterminado: Datadog,tracecontext,baggage
Una lista separada por comas de formatos de encabezados de los que intentar extraer datos de propagación de rastreo distribuido. El primer formato encontrado con encabezados completos y válidos se utiliza para definir la trace (traza) para continuar. DD_TRACE_PROPAGATION_STYLE
- Configuración:
tracePropagationStyle
Predeterminado: Datadog,tracecontext,baggage
Un lista separada por comas de formatos de encabezados de los que intentar insertar y extraer datos de propagación de rastreo distribuido. El primer formato encontrado con encabezados completos y válidos se utiliza para definir la trace (traza) para continuar. Las configuraciones más específicas DD_TRACE_PROPAGATION_STYLE_INJECT
y DD_TRACE_PROPAGATION_STYLE_EXTRACT
tienen prioridad cuando están presentes.
Para ver más ejemplos de cómo trabajar con la biblioteca, consulta la documentación de la API.
Referencias adicionales
Más enlaces, artículos y documentación útiles: