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