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 de servicios unificado.

El rastreador PHP puede configurarse mediante variables de entorno y parámetros INI.

Los parámetros INI pueden configurarse globalmente, por ejemplo, en el archivo php.ini, o para un servidor web o host virtual específicos.

Nota: Si utilizas la instrumentación automática del código (estrategia recomendada), ten en cuenta que el código de instrumentación se ejecuta antes que cualquier código de usuario. Como resultado, las variables de entorno y los parámetros INI que se indican a continuación deben configurarse a nivel del servidor y estar disponibles para el tiempo de ejecución PHP, antes de que se ejecute cualquier código de usuario. Por ejemplo, los archivos putenv() y .env no funcionan.

Apache

Para Apache con php-fpm, utiliza la directiva env de tu archivo de configuraciónwww.conf, para configurar el rastreador PHP, por ejemplo:

; Ejemplo de transferencia de la variable de entorno de host SOME_ENV
; al proceso PHP como DD_Agent_host
env[DD_Agent_host] = $SOME_ENV
; Ejemplo de transferencia del valor 'my-app' al proceso PHP
; como DD_SERVICE
env[DD_SERVICE] = my-app
; O utilizando la configuración INI equivalente
php_value datadog.service my-app

También puedes utilizar SetEnv en la configuración del servidor, el host virtual host, el directorio o el archivo .htaccess.

``text

En la configuración de un host virtual como variable de entorno

SetEnv DD_TRACE_DEBUG 1

En la configuración de un host virtual como parámetro INI

php_value Datadog.servicio my-app


## NGINX y PHP-FPM

<div class="alert alert-warning">
<strong>Nota:</strong> PHP-FPM no admite el valor <code>falso</code> en las directivas <code>env[...]</code>. Utiliza <code>1</code> en lugar de <code>verdadero</code> y <code>0</code> en lugar de <code>false</code>.
</div>

Para NGINX, utiliza la directiva `env` del archivo `www.conf` de php-fpm, por ejemplo:

; Ejemplo de transferencia de la variable de entorno de host SOME_ENV ; al proceso PHP como DD_AGENT_HOST env[DD_Agent_host] = $SOME_ENV ; Ejemplo de transferencia del valor ‘my-app’ al proceso PHP ; como DD_SERVICE env[DD_SERVICE] = my-app ; O utilizando la configuración INI equivalente php_value [datadog.service] = my-app


**Nota**: Si has habilitado APM para tu servidor NGINX, asegúrate de haber configurado correctamente el parámetro `opentracing_fastcgi_propagate_context` para que el rastreo distribuido funcione correctamente. Para obtener más detalles, consulta la [configuración de APM NGINX][3].

## Servidor CLI PHP

Define la línea de comandos para iniciar el servidor.

```text
DD_TRACE_DEBUG=1 php -d datadog.service=my-app -S localhost:8888

Configuración de la variable de entorno

La siguiente tabla presenta las variables de entorno para configurar el rastreo, los parámetros INI correspondientes (si están disponibles) y los valores predeterminados.

Etiquetado de servicios unificado

DD_ENV
INI: datadog.env
Por defecto: null
Define el entorno de una aplicación, por ejemplo: prod, pre-prod, stage. A partir de la versión 0.90.0, los cambios en datadog.version en tiempo de ejecución a través de ini_set también se aplican al tramo (span) raíz actual.
DD_VERSION
INI: datadog.version
Por defecto: null
Define la versión de una aplicación en trazas y logs, por ejemplo: 1.2.3, 6c44da20, 2020.02.13. A partir de la versión 0.90.0, los cambios en datadog.version en tiempo de ejecución, a través de ini_set, también se aplican al tramo raíz actual.
DD_SERVICE
INI: datadog.service
Por defecto: null
El nombre por defecto de la aplicación.

Trazas

DD_TRACE_ENABLED
INI: datadog.trace.enabled
Por defecto: 1
Habilita el rastreador globalmente.
DD_PRIORITY_SAMPLING
INI: datadog.priority_sampling
Por defecto: 1
Si se habilita el muestreo prioritario.
DD_SERVICE_MAPPING
INI: datadog.service_mapping
Por defecto: null
Cambia el nombre por defecto de una integración APM. Cambia el nombre de una o más integraciones a la vez, por ejemplo: DD_SERVICE_MAPPING=pdo:payments-db,mysqli:orders-db (consulta Nombres de integraciones).
DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED
INI: datadog.trace.128_bit_traceid_generation_enabled
Por defecto: true
Cuando es verdadero, el rastreador genera los ID de rastreo de 128 bits y codifica los ID de rastreo como 32 caracteres hexadecimales en minúsculas con cero relleno.
DD_TRACE_128_BIT_TRACEID_LOGGING_ENABLED
INI: datadog.trace.128_bit_traceid_logging_enabled
Por defecto: 0
Habilita la impresión del ID completo de rastreo de 128 bits formateando los ID de rastreo para la correlación con logs. Cuando es falso (por defecto), sólo se imprimen los 64 bits inferiores del ID de rastreo, formateados como un número entero. Esto significa que si el ID de rastreo es de sólo 64 bits, se imprime el ID completo. Cuando es verdadero, el ID de rastreo se imprime como ID de rastreo de 128 bits completo en formato hexadecimal. Este es el caso, incluso si el ID sólo tiene 64 bits.
DD_TRACE_HEALTH_METRICS_ENABLED
INI: datadog.trace_health_metrics_enabled
Por defecto: false
Cuando está habilitado, el rastreador envía estadísticas a DogStatsD. Además, cuando sigaction está disponible en el momento de la compilación, el rastreador envía métricas de excepción no capturadas, en caso de fallos de segmentación.
DD_TRACE_AGENT_CONNECT_TIMEOUT
INI: datadog.trace.agent_connect_timeout
Por defecto: 100
El tiempo de espera de conexión del Agent (en milisegundos).
DD_TRACE_AGENT_PORT
INI: datadog.trace.agent_port
Por defecto: 8126
El número de puerto del Agent. 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_TRACE_AGENT_TIMEOUT
INI: datadog.trace.agent_timeout
Por defecto: 500
El tiempo de espera de transferencia de solicitudes del Agent (en milisegundos).
DD_TRACE_AGENT_URL
INI: datadog.trace.agent_url
Por defecto: null
La URL del Agent tiene prioridad sobre DD_AGENT_HOST y DD_TRACE_AGENT_PORT. Por ejemplo: https://localhost:8126. 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_TRACE_AUTO_FLUSH_ENABLED
INI: datadog.trace.auto_flush_enabled
Por defecto: 0
Descarga automáticamente el rastreador cuando todos los tramos están cerrados. Se configura en 1 junto con DD_TRACE_GENERATE_ROOT_SPAN=0 para rastrear procesos de ejecución prolongada.
DD_TRACE_CLI_ENABLED
INI: datadog.trace.cli_enabled
Por defecto: 0
Habilita el rastreo de scripts PHP desde la CLI. Consulta Rastreo de scripts CLI.
DD_TRACE_DEBUG
INI: datadog.trace.debug
Por defecto: 0
Habilita el modo de depuración. Cuando es 1, los mensajes de logs se envían al dispositivo o archivo configurado en el parámetro INI error_log. El valor real de error_log puede ser diferente del resultado de php -i, ya que puede sobrescribirse en los archivos de configuración de PHP-FPM/Apache. Si está activo, tiene prioridad sobre DD_TRACE_LOG_LEVEL.
DD_TRACE_LOG_LEVEL
INI: datadog.trace.log_level
Por defecto: Error
Define un nivel de log preciso. El nivel de log sigue las convenciones de RUST_LOG. Los niveles de log aceptados son error, warn, info, debug, trace y off.
DD_TRACE_LOG_FILE
INI: datadog.trace.log_file
Por defecto: ``
Especifica un archivo de log. Si no se especifica ninguno, los logs van a la localización de errores PHP por defecto. Para depurar problemas datadog-ipc-helper (por ejemplo, el envío de telemetría), debes especificar el archivo de log.
DD_TRACE_FORKED_PROCESS
INI: datadog.trace.forked_process
Por defecto: 1
Indica si se rastrea un proceso bifurcado. Configúralo como 1, para rastrear procesos bifurcados, o como 0, para deshabilitar el rastreo en procesos bifurcados. Si se configura como 0, puedes volver a habilitar manualmente el rastreo de un proceso en código con ini_set("datadog.trace.enabled", "1");, pero este será presentado como una traza nueva. Las trazas de procesos bifurcados se muestran como trazas enteras distribuidas sólo si DD_TRACE_FORKED_PROCESS y DD_DISTRIBUTED_TRACING están configurados como 1 (activos).
DD_TRACE_GENERATE_ROOT_SPAN
INI: datadog.trace.generate_root_span
Por defecto: 1
Genera automáticamente un tramo de nivel superior. Configúralo como 0, junto con DD_TRACE_AUTO_FLUSH_ENABLED=1, para rastrear procesos de ejecución prolongada.
DD_TRACE_HEADER_TAGS
INI: datadog.trace.header_tags
Por defecto: null
CSV de nombres de cabeceras que se informan en el tramo raíz como etiquetas (tags).
DD_TRACE_HTTP_CLIENT_SPLIT_BY_DOMAIN
INI: datadog.trace.http_client_split_by_domain
Por defecto: 0
Define el nombre de servicio de las solicitudes HTTP como host-<hostname>. Por ejemplo, una llamada curl_exec() a https://datadoghq.com tiene el nombre de servicio host-datadoghq.com, en lugar del nombre de servicio por defecto curl.
DD_TRACE_MEASURE_COMPILE_TIME
INI: datadog.trace.measure_compile_time
Por defecto: 1
Registra el tiempo de compilación de la solicitud (en milisegundos) en el tramo de nivel superior.
DD_TRACE_REMOVE_AUTOINSTRUMENTATION_ORPHANS
INI: datadog.trace.remove_autoinstrumentation_orphans
Por defecto: false
Elimina automáticamente tramos huérfanos generados mediante instrumentación automática. Actualmente, esto sólo se aplica a algunas llamadas de Redis y Laravel utilizadas en el contexto de Laravel Horizon. Añadido en la versión 0.88.0.

Nota: Estos tramos huérfanos se descargan, pero no se registran en la traza. Además, las trazas de tramo único específicas que se eliminan con esta opción de configuración son:
  • laravel.event.handle
  • laravel.provider.load
  • Predis.Client.__construct
  • Predis.Client.executeCommand
  • Predis.Pipeline.executePipeline
DD_TRACE_REMOVE_ROOT_SPAN_LARAVEL_QUEUE
INI: datadog.trace.remove_root_span_laravel_queue
Por defecto: true
Deshabilita automáticamente la generación de tramos raíz (consulta DD_TRACE_GENERATE_ROOT_SPAN) y habilita la descarga automática (consulta DD_TRACE_AUTO_FLUSH_ENABLED) para los comandos Laravel Queue/Horizon. Añadido en la versión 0.88.0.
DD_TRACE_REMOVE_ROOT_SPAN_SYMFONY_MESSENGER
INI: datadog.trace.remove_root_span_symfony_messenger
Por defecto: true
Deshabilita automáticamente la generación de tramos raíz (consulta DD_TRACE_GENERATE_ROOT_SPAN) y habilita el vaciado automático (consulta DD_TRACE_AUTO_FLUSH_ENABLED) para los comandos de Symfony Messenger. Añadido en la versión 1.3.0.
DD_TRACE_LARAVEL_QUEUE_DISTRIBUTED_TRACING
INI: datadog.trace.laravel_queue_distributed_tracing
Por defecto: true
Deshabilita la creación de un tramo laravel.queue.process adicional y se basa únicamente en enlaces de tramos. Añadido en la versión 0.93.0.
DD_TRACE_SYMFONY_MESSENGER_DISTRIBUTED_TRACING
INI: datadog.trace.symfony_messenger_distributed_tracing
Por defecto: true
Si se deshabilita, las relaciones causales de producción/consumo se asociarán mediante enlaces de tramos. Añadido en la versión 1.3.0.
DD_TRACE_SYMFONY_MESSENGER_MIDDLEWARES
INI: datadog.trace.symfony_messenger_middlewares
Por defecto: false
Habilita el rastreo de los middlewares de Symfony Messenger. Añadido en la versión 1.3.0.
DD_TRACE_RESOURCE_URI_FRAGMENT_REGEX
INI: datadog.trace.resource_uri_fragment_regex
Por defecto: null
CSV de expresiones regulares (regex) que identifica fragmentos de ruta correspondientes a los ID. (Consulta Asignar nombres de recursos a URI normalizados).
DD_TRACE_RESOURCE_URI_MAPPING_INCOMING
INI: datadog.trace.resource_uri_mapping_incoming
Por defecto: null
CSV de asignaciones a URI para normalizar la nomenclatura de los recursos para las solicitudes entrantes. (Consulta Asignar nombres de recursos a URI normalizados).
DD_TRACE_RESOURCE_URI_MAPPING_OUTGOING
INI: datadog.trace.resource_uri_mapping_outgoing
Por defecto: null
CSV de asignaciones a URI para normalizar la nomenclatura de los recursos para las solicitudes salientes. (Consulta Asignar nombres de recursos a URI normalizados).
DD_TRACE_RETAIN_THREAD_CAPABILITIES
INI: datadog.trace.retain_thread_capabilities
Por defecto: 0
Funciona para Linux. Configúralo como true para conservar las capacidades en los threads en segundo plano de Datadog cuando cambies el ID de usuario efectivo. Esta opción no afecta a la mayoría de las configuraciones, pero algunos módulos (hasta la fecha, Datadog sólo tiene conocimiento de que el mod-ruid2 de Apache) pueden invocar setuid() o llamadas al sistema similares, provocando caídas o deficiencias de funcionalidad al perder capacidades.

Nota: Habilitar esta opción puede comprometer la seguridad. Esta opción, por sí sola, no supone un riesgo para la seguridad. Sin embargo, un atacante capaz de explotar una vulnerabilidad en PHP o en el servidor web podría ser capaz de escalar privilegios con relativa facilidad, si el servidor web o PHP se iniciaran con capacidades completas, ya que los threads en segundo plano conservarían sus capacidades originales. Datadog recomienda restringir las capacidades del servidor web a través de la utilidad setcap.
DD_HTTP_SERVER_ROUTE_BASED_NAMING
INI: datadog.http_server_route_based_naming
Por defecto: true
Habilita la asignación de nombres basada en rutas para las solicitudes del servidor HTTP. Configúralo como true para utilizar el formato de nombres de recurso del tramo raíz específico de la integración. Cuando es false, se utilizan el método y la ruta HTTP. Añadido en la versión 0.89.0.
DD_TRACE_SAMPLE_RATE
INI: datadog.trace.sample_rate
Por defecto: -1
La frecuencia de muestreo para las trazas, un número entre 0.0 y 1.0. El valor por defecto de -1 cede el control del muestreo al Datadog Agent .
Nota: DD_TRACE_SAMPLE_RATE queda obsoleto en favor de DD_TRACE_SAMPLING_RULES.
DD_TRACE_RATE_LIMIT
INI: datadog.trace.rate_limit
Por defecto: 0
Número máximo de tramos para muestrear por segundo. Todos los procesos en un grupo Apache o FPM comparten el mismo limitador. Si no se define (0), la limitación de la frecuencia se delega al Datadog Agent.
DD_TRACE_URL_AS_RESOURCE_NAMES_ENABLED
INI: datadog.trace.url_as_resource_names_enabled
Por defecto: 1
Habilita las URL como nombres de recursos. (Consulta Asignar nombres de recursos a URI normalizados).
DD_TRACE_HTTP_URL_QUERY_PARAM_ALLOWED
INI: datadog.trace.http_url_query_param_allowed
Por defecto: *
Una lista separada por comas de los parámetros de consulta que se recopilarán como parte de la URL. Configúrala como vacía, para evitar la recopilación de parámetros, o como *, para recopilar todos los parámetros. Añadido en la versión 0.74.0.
DD_TRACE_HTTP_POST_DATA_PARAM_ALLOWED
INI: datadog.trace.http_post_data_param_allowed
Por defecto: “"
Una lista separada por comas de los campos de datos HTTP POST que se recopilarán. Déjala vacía si no quieres recopilar ningún valor publicado. Cuando se configura este valor con el comodín *, se recopilan todos los datos publicados, pero se oculatan los valores de los campos que coinciden con la regla de ofuscación DD_TRACE_OBFUSCATION_QUERY_STRING_REGEXP. Si se indican campos específicos, sólo se mostrarán los valores de estos campos, mientras que los valores de todos los demás campos se ocultarán. Añadido en la versión 0.86.0.
Ejemplo:
  • Los datos publicados son qux=quux&foo[bar][password]=Password12!&foo[bar][username]=admin&foo[baz][bar]=qux&foo[baz][key]=value
  • DD_TRACE_HTTP_POST_DATA_PARAM_ALLOWED se configura como foo.baz,foo.bar.password
  • En este escenario, los metadatos recopilados son:
    • http.request.foo.bar.password=Password12!
    • http.request.foo.bar.username=<redacted>
    • http.request.foo.baz.bar=qux
    • http.request.foo.baz.key=value
    • http.request.qux=<redacted>
DD_TRACE_RESOURCE_URI_QUERY_PARAM_ALLOWED
INI: datadog.trace.resource_uri_query_param_allowed
Por defecto: *
Una lista separada por comas de los parámetros de consulta que se recopilarán como parte del URI del recurso. Configúrala como vacía, para evitar la recopilación de parámetros, o como *, para recopilar todos los parámetros. Añadido en la versión 0.74.0.
DD_TRACE_CLIENT_IP_ENABLED
INI: datadog.trace.client_ip_enabled
Por defecto: false
Habilita la recopilación de IP del lado del cliente. Añadido en la versión 0.84.0.
DD_TRACE_CLIENT_IP_HEADER
INI: datadog.trace.client_ip_header
Por defecto: null
La cabecera de IP para utilizar en la recopilación de IP del cliente, por ejemplo: x-forwarded-for. Añadido en la versión 0.84.0 (0.76.0, cuando se utiliza ASM).
DD_TRACE_OBFUSCATION_QUERY_STRING_REGEXP
INI: datadog.trace.obfuscation_query_string_regexp
Por defecto:
(?i)(?:p(?:ass)?w(?:or)?d|pass(?:_?phrase)?|secret|(?:api_?|private_?|public_?|access_?|secret_?)key(?:_?id)?|token|consumer_?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?)(?:(?:\s|%20)*(?:=|%3D)[^&]+|(?:"|%22)(?:\s|%20)*(?::|%3A)(?:\s|%20)*(?:"|%22)(?:%2[^2]|%[^2]|[^"%])+(?:"|%22))|bearer(?:\s|%20)+[a-z0-9\._\-]|token(?::|%3A)[a-z0-9]{13}|gh[opsu]_[0-9a-zA-Z]{36}|ey[I-L](?:[\w=-]|%3D)+\.ey[I-L](?:[\w=-]|%3D)+(?:\.(?:[\w.+\/=-]|%3D|%2F|%2B)+)?|[\-]{5}BEGIN(?:[a-z\s]|%20)+PRIVATE(?:\s|%20)KEY[\-]{5}[^\-]+[\-]{5}END(?:[a-z\s]|%20)+PRIVATE(?:\s|%20)KEY|ssh-rsa(?:\s|%20)*(?:[a-z0-9\/\.+]|%2F|%5C|%2B){100,}

Expresión regular utilizada para ofuscar la cadena de consultas incluida como parte de la URL. Esta expresión también se utiliza en el proceso para ocultar datos HTTP POST. Añadido en la versión 0.76.0.

DD_TRACE_SAMPLING_RULES
INI: datadog.trace.sampling_rules
Por defecto: null
Una cadena codificada en JSON para configurar la frecuencia de muestreo. Por ejemplo: Configura la frecuencia de muestreo en 20%: '[{"sample_rate": 0.2}]'. Configura la frecuencia de muestreo en 10% para los servicios que empiezan por ‘a’ y los nombres de tramos que empiezan por ‘b’, y configura la frecuencia de muestreo en 20% para todos los demás servicios: '[{"service": "a.*", "name": "b", "sample_rate": 0.1}, {"sample_rate": 0.2}]'. (Consulta Nombres de integraciones). El objeto JSON debe ir rodeado de comillas simples (') para evitar problemas con el escape del carácter de comillas dobles ("). La coincidencia de servicios tiene en cuenta DD_SERVICE_MAPPING (a partir de la versión 0.90.0). El nombre y el servicio deben ser una expresión regular válida. Las reglas que no son expresiones regulares válidas se ignoran.
DD_TRACE_SAMPLING_RULES_FORMAT
INI: datadog.trace.sampling_rules_format
Por defecto: glob
Regula el formato (regex o glob) utilizado para las reglas de muestreo definidas por DD_TRACE_SAMPLING_RULES. Añadido en la versión 0.98.0 y obsoleto a partir de la versión 1.0.0.
DD_TRACE_SPANS_LIMIT
INI: datadog.trace.spans_limit
Por defecto: 1000
El número máximo de tramos que se generan en una traza. Si se alcanza el número máximo de tramos, ya no se generan tramos. Si se aumenta el límite, la cantidad de memoria utilizada por una traza pendiente aumentará y podría alcanzar la cantidad máxima de memoria permitida PHP. La cantidad máxima de memoria permitida puede aumentarse con el parámetro de sistema INI PHP memory_limit.
DD_SPAN_SAMPLING_RULES
INI: datadog.span_sampling_rules
Por defecto: null
Una cadena codificada JSON para configurar la frecuencia de muestreo. Las reglas se aplican en el orden configurado para determinar la frecuencia de muestreo del tramo. El valor de sample_rate debe estar comprendido entre 0,0 y 1,0 (inclusive).
**Por ejemplo: Configura 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}]'. El objeto JSON debe ir rodeado de comillas simples (') para evitar problemas con el escape del carácter de comillas dobles (").
Para obtener más información, consulta Mecanismos de consumo.

Agent

DD_AGENT_HOST
INI: datadog.agent_host
Por defecto: localhost
Nombre del host Agent.
DD_AUTOFINISH_SPANS
INI: datadog.autofinish_spans
Por defecto: 0
Si los tramos se terminan automáticamente cuando se vacía el rastreador.
DD_DISTRIBUTED_TRACING
INI: datadog.distributed_tracing
Por defecto: 1
Si se habilita el rastreo distribuido.
DD_DOGSTATSD_URL
INI: datadog.dogstatsd_url
Por defecto: null
La URL utilizada para negociar la conexión con DogStatsD. Este parámetro tiene prioridad sobre DD_AGENT_HOST y DD_DOGSTATSD_PORT. Sólo es compatible con los esquemas udp:// o unix://.
DD_DOGSTATSD_PORT
INI: datadog.dogstatsd_port
Por defecto: 8125
El puerto utilizado para conectarse a DogStatsD, utilizado en combinación con DD_AGENT_HOST para negociar la conexión con DogStatsD cuando DD_TRACE_HEALTH_METRICS_ENABLED está habilitado.
DD_TAGS
INI: datadog.tags
Por defecto: null
Etiquetas para configurar en todos los tramos. Por ejemplo: key1:value1,key2:value2.
DD_INSTRUMENTATION_TELEMETRY_ENABLED
INI: datadog.instrumentation_telemetry_enabled
Por defecto: true
Datadog puede recopilar información del entorno y de diagnóstico de tu sistema para mejorar el producto. Si es falso, no se recopilarán estos datos de telemetría.

Bases de datos

DD_TRACE_DB_CLIENT_SPLIT_BY_INSTANCE
INI: datadog.trace.db_client_split_by_instance
Por defecto: 0
Define el nombre de servicio de las solicitudes HTTP como pdo-<hostname>. Por ejemplo, una llamada PDO->query() al host de una base de datos datadoghq.com tiene el nombre de servicio pdo-datadoghq.com, en lugar del nombre de servicio por defecto pdo .
DD_TRACE_REDIS_CLIENT_SPLIT_BY_HOST
INI: datadog.trace.redis_client_split_by_host
Por defecto: 0
Define el nombre de servicio de las operaciones de clientes Redis como redis-<hostname>.

Monitorización de bases de datos

DD_DBM_PROPAGATION_MODE
INI: datadog.dbm_propagation_mode
Por defecto: 'disabled'
Habilita la conexión entre los datos enviados desde APM y el producto Database Monitoring, cuando se configura como 'service' o 'full'.
La opción 'service' permite la conexión entre servicios DBM y APM. Disponible para Postgres, MySQL y SQLServer.
La opción 'full' permite la conexión entre tramos de bases de datos y eventos de consultas de bases de datos. Disponible para Postgres y MySQL.

Logs

DD_LOGS_INJECTION
INI: datadog.logs_injection
Por defecto: 0
Habilita o deshabilita la inyección automática de identificadores de correlación en logs de aplicación. Añadido en la versión 0.89.0
Para obtener más información, consulta la documentación de correlación en logs.

OpenTelemetry

DD_TRACE_OTEL_ENABLED
Habilita o deshabilita el rastreo basado en OpenTelemetry, tanto para la instrumentación personalizada como para la instrumentación automática.
Los valores válidos son: true o false.
Por defecto: false

Generación de perfiles

DD_PROFILING_ENABLED
INI: datadog.profiling.enabled. INI disponible a partir de 0.82.0.
Por defecto: 1
Habilita el generador de perfiles de Datadog. Añadido en la versión 0.69.0. Consulta Habilitar el generador de perfiles PHP. Para la versión 0.81.0 y anteriores era 0 por defecto.
DD_PROFILING_ENDPOINT_COLLECTION_ENABLED
INI: datadog.profiling.endpoint_collection_enabled. INI disponible a partir de 0.82.0.
Por defecto: 1
Si se habilita la recopilación de datos del endpoint en los perfiles. Añadido en la versión 0.79.0.
DD_PROFILING_ALLOCATION_ENABLED
INI: datadog.profiling.allocation_enabled. INI disponible a partir de 0.88.0.
Por defecto: 1
Habilita el tipo de perfil de tamaño de asignación y bytes de asignación. Añadido en la versión 0.88.0. Cuando se detecta un JIT activo, la generación de perfiles de asignación se desactiva para la versión PHP 8.0.0 -8.1.20 y 8.2.0-8.2.7, debido a una limitación del ZendEngine.
Nota: Esto sustituye a la variable de entorno DD_PROFILING_EXPERIMENTAL_ALLOCATION_ENABLED (parámetro INIdatadog.profiling.experimental_allocation_enabled), que estaba disponible a partir de 0.84. Si ambas están configuradas, ésta tiene prioridad.
DD_PROFILING_EXPERIMENTAL_FEATURES_ENABLED
INI: datadog.profiling.experimental_features_enabled. INI disponible a partir de 0.96.0.
Por defecto: 0
Habilita todas las características experimentales.
Nota: Esta configuración anula las configuraciones más específicas y, si está habilitada, la activación de otros parámetros de configuración experimentales no tendrá ningún efecto.
DD_PROFILING_EXPERIMENTAL_CPU_TIME_ENABLED
INI: datadog.profiling.experimental_cpu_time_enabled. INI disponible a partir de 0.82.0.
Por defecto: 1
Habilita el tipo de perfil de CPU experimental. Añadido en la versión 0.69.0. Para la versión 0.76 y anteriores era 0.
DD_PROFILING_EXCEPTION_ENABLED
INI: datadog.profiling.exception_enabled. INI disponible a partir de 0.96.0.
Por defecto: 1
Habilita el tipo de perfil de excepción. Añadido en la versión 0.92.0 y GA en la versión 0.96.0.

Nota: Esto sustituye a la variable de entornoDD_PROFILING_EXPERIMENTAL_EXCEPTION_ENABLED (parámetro INIdatadog.profiling.experimental_exception_enabled), que estaba disponible a partir de 0.92. Si ambas están configuradas, ésta tiene prioridad.
DD_PROFILING_EXCEPTION_MESSAGE_ENABLED
INI: datadog.profiling.exception_message_enabled. INI disponible a partir de 0.98.0.
Por defecto: 0
Habilita la recopilación de mensajes de excepción con muestras de excepción.

Nota: Ten en cuenta que tus mensajes de excepción pueden contener PII (Información de identificación personal), que es la razón por la que este parámetro está deshabilitado por defecto.
DD_PROFILING_EXCEPTION_SAMPLING_DISTANCE
INI: datadog.profiling.exception_sampling_distance. INI disponible a partir de 0.96.0.
Por defecto: 100
Configura la distancia de muestreo para las excepciones. Cuanto mayor sea la distancia de muestreo, menos muestras se crearán y menor será la sobrecarga.

Nota: Sustituye a la variable de entornoDD_PROFILING_EXPERIMENTAL_EXCEPTION_SAMPLING_DISTANCE (parámetro INIdatadog.profiling.experimental_exception_sampling_distance), disponible a partir de 0.92. Si ambas están activadas, ésta tiene prioridad.
DD_PROFILING_TIMELINE_ENABLED
INI: datadog.profiling.timeline_enabled. INI disponible a partir de 0.98.0.
Por defecto: 1
Habilita el tipo de perfil de línea de tiempo. Añadido en la versión 0.89.0.

Nota: Sustituye a la variable de entornoDD_PROFILING_EXPERIMENTAL_TIMELINE_ENABLED (parámetro INIdatadog.profiling.experimental_timeline_enabled), que estaba disponible a partir de 0.89 (por defecto 0). Si ambas están activadas, ésta tiene prioridad.
DD_PROFILING_LOG_LEVEL
INI: datadog.profiling.log_level. INI disponible a partir de 0.82.0.
Por defecto: off
Define el nivel de log del generador de perfiles. Los valores aceptables son off, error, warn, info, debug y trace. Los logs del generador de perfiles se escriben en el flujo (flow) de error estándar del proceso. Añadido en la versión 0.69.0.

Propagación del contexto de rastreo

Consulta Propagación del contexto de rastreo para obtener información sobre cómo configurar la biblioteca de rastreo PHP para extraer e inyectar cabeceras para propagar el contexto de rastreo distribuido.

DD_TRACE_PROPAGATION_STYLE_INJECT
INI: datadog.trace.propagation_style_inject
Por defecto: Datadog,tracecontext
Estilos de propagación para utilizar al inyectar cabeceras de rastreo. Si se utilizan varios estilos, sepáralos con comas. Los estilos compatibles son:
DD_TRACE_PROPAGATION_STYLE_EXTRACT
INI: datadog.trace.propagation_style_extract
Por defecto: Datadog,tracecontext,b3multi,B3 single header
Estilos de propagación para utilizar al extraer cabeceras de rastreo. Si se utilizan varios estilos, sepáralos con comas. Los estilos compatibles son:

Integraciones

DD_TRACE_<INTEGRATION>_ENABLED
INI: datadog.trace.<INTEGRATION>_enabled
Por defecto: 1
Habilita o deshabilita una integración. Todas las integraciones están habilitadas por defecto. (Consulta Nombres de integraciones).
DD_TRACE_WORDPRESS_ADDITIONAL_ACTIONS
INI: datadog.trace.wordpress_additional_actions
Por defecto: null
Una lista separada por comas de los ganchos de acción de WordPress que se van a instrumentar. Esta función sólo está disponible cuando DD_TRACE_WORDPRESS_ENHANCED_INTEGRATION está habilitada. Añadido en la versión 0.91.0.
DD_TRACE_WORDPRESS_CALLBACKS
INI: datadog.trace.wordpress_callbacks
Por defecto: true para el rastreador PHP v1.0 o anterior
Habilita las retrollamadas de instrumentación de los ganchos de acción de WordPress. Esta función sólo está disponible cuando DD_TRACE_WORDPRESS_ENHANCED_INTEGRATION está habilitado. Añadido en la versión 0.91.0.
DD_OPENAI_SERVICE
INI: datadog.openai.service
Por defecto: DD_SERVICE
El nombre del servicio informado por defecto para solicitudes OpenAI.
DD_OPENAI_LOGS_ENABLED (beta)
INI: datadog.openai.logs_enabled
Por defecto: false
Habilita la recopilación de avisos y finalizaciones en forma de logs. Puedes ajustar la tasa de avisos y finalizaciones recopilados utilizando la configuración de la tasa de muestreo que se describe a continuación.
DD_OPENAI_METRICS_ENABLED
INI: datadog.openai.metrics_enabled
Por defecto: true
Habilita la recopilación de métricas de OpenAI.
Si el Datadog Agent está configurado para utilizar un nombre de host o puerto StatsD no predeterminado, utiliza DD_DOGSTATSD_URL para configurar la recopilación de métricas de OpenAI.
DD_OPENAI_SPAN_CHAR_LIMIT (beta)
INI: datadog.openai.span_char_limit
Por defecto: 128
Configura el número máximo de caracteres para los siguientes datos dentro de las etiquetas de tramos:
  • Entradas de avisos y finalizaciones
  • Entradas de mensajes y finalizaciones
  • Inserción de entradas

Los textos que superan el número máximo de caracteres se truncan hasta el límite de caracteres y se añade ... al final.

DD_OPENAI_SPAN_PROMPT_COMPLETION_SAMPLE_RATE (beta)
INI: datadog.openai.span_prompt_completion_sample_rate
Por defecto: 1.0
Configura la tasa de muestreo para la recopilación de avisos y finalizaciones como etiquetas de tramos.
DD_OPENAI_LOG_PROMPT_COMPLETION_SAMPLE_RATE (beta)
INI: datadog.openai.log_prompt_completion_sample_rate
Por defecto: 0.1
Configura la tasa de muestreo para la recopilación de avisos y finalizaciones en forma de logs.

Nombres de integraciones

La siguiente tabla especifica los nombres de servicios por defecto para cada integración. Cambia los nombres de servicios con DD_SERVICE_MAPPING.

Al definir la configuración específica de una integración, utiliza el nombre, como por ejemplo DD_TRACE_<INTEGRATION>_ENABLED. Por ejemplo: Laravel es DD_TRACE_LARAVEL_ENABLED.

IntegraciónNombre de servicio
AMQPamqp
CakePHPcakephp
CodeIgnitercodeigniter
cURLcurl
ElasticSearchelasticsearch
Eloquenteloquent
Guzzleguzzle
Laminaslaminas
Laravellaravel
Cola de Laravellaravelqueue
Lumenlumen
Memcachememcache
Memcachedmemcached
Mongomongo
MongoDBmongodb
Mysqlimysqli
Nettenette
OpenAIopenai
PCNTLpcntl
PDOpdo
PhpRedisphpredis
Predispredis
Psr18psr18
Roadrunnerroadrunner
SQL Serversqlsrv
Symfonysymfony
Symfony Messengersymfonymessenger
WordPresswordpress
Yiiyii
ZendFrameworkzendframework

Asignar nombres de recursos a URI normalizados

Ten en cuenta que al configurar cualquiera de los siguientes: DD_TRACE_RESOURCE_URI_FRAGMENT_REGEX, DD_TRACE_RESOURCE_URI_MAPPING_INCOMING y DD_TRACE_RESOURCE_URI_MAPPING_OUTGOING se optará por el nuevo enfoque de normalización de recursos y cualquier valor en DD_TRACE_RESOURCE_URI_MAPPING será ignorado.

Para el servidor HTTP y las integraciones de clientes, la URL se utiliza para crear el nombre de recurso de la traza con el formato <HTTP_REQUEST_METHOD> <NORMALIZED_URL>, con la cadena de consultas eliminada de la URL. Esto permite una mejor visibilidad en cualquier marco personalizado que no se instrumente automáticamente mediante la normalización de las URL y la agrupación de endpoints genéricos bajo un solo recurso.

Solicitud HTTPNombre del recurso
Solicitud GET a /foo?a=1&b=2GET /foo
Solicitud POST a /bar?foo=barPOST /bar

Los ID numéricos, los UUID (con y sin guiones) y los hash hexadecimales de 32 a 512 bits se sustituyen automáticamente por un carácter ?.

URL (solicitud GET)Nombre del recurso
/user/123/showGET /user/?/show
/widget/b7a992e0-3300-4030-8617-84553b11c993GET /widget/?
/api/v2/b7a992e033004030861784553b11c993/123GET /api/v2/?/?
/book/0dbf3596GET /book/?

Puedes DESACTIVAR esta función utilizando DD_TRACE_URL_AS_RESOURCE_NAMES_ENABLED=0.

Asignación personalizada de URL a recursos

Hay algunos casos que no están cubiertos por la normalización automática que se aplica.

URL (solicitud GET)Nombre previsto del recurso
/using/prefix/id123/for/idGET /using/prefix/?/for/id
/articles/slug-of-titleGET /articles/?
/cities/new-york/riversGET /cities/?/rivers
/nested/cities/new-york/riversGET /nested/cities/?/rivers

Existen dos clases de escenarios que no están cubiertos por la normalización automática:

  • El fragmento de ruta que se va a normalizar tiene un patrón reproducible y puede estar presente en cualquier parte de la URL. Por ejemplo id<number>, en el caso anterior. Este escenario está cubierto por la siguiente configuración DD_TRACE_RESOURCE_URI_FRAGMENT_REGEX.
  • El fragmento de ruta puede ser cualquier cosa y el fragmento de ruta anterior indica que se debe normalizar un valor. Por ejemplo, /cities/new-york nos indica que new-york debe normalizarse, ya que es el nombre de una ciudad. Este escenario está cubierto por los parámetros DD_TRACE_RESOURCE_URI_MAPPING_INCOMING y DD_TRACE_RESOURCE_URI_MAPPING_OUTGOING para las solicitudes entrantes y salientes, respectivamente.
DD_TRACE_RESOURCE_URI_FRAGMENT_REGEX

Esta configuración es un CSV de una o más expresiones regulares que se aplican a cada fragmento de ruta de forma independiente. Por ejemplo, configurar DD_TRACE_RESOURCE_URI_FRAGMENT_REGEX como ^id\d+$ para una ruta de /using/prefix/id123/for/id aplica la expresión regular a cada uno de los fragmentos: using, prefix, id123, for y id.

URLExpresión regular (regex)Nombre previsto del recurso
/using/prefix/id123/for/id^id\d+$GET /using/prefix/?/for/id

Ten en cuenta que como el formato de esta variable es un CSV, el carácter coma , no está escapado y no puedes utilizarlo en tus expresiones regulares.

DD_TRACE_RESOURCE_URI_MAPPING_INCOMING y DD_TRACE_RESOURCE_URI_MAPPING_OUTGOING

Esta configuración es un CSV de patrones que pueden contener el comodín *. Por ejemplo, añadir el patrón cities/* significa que cada vez que se encuentre el fragmento cities al analizar una URL, el siguiente fragmento, si lo hay, se sustituirá por ?. Los patrones se aplican a cualquier nivel, por lo que la aplicación de la siguiente regla normalizará /cities/new-york y también /nested/cities/new-york en la tabla anterior.

Los patrones pueden aplicarse a una parte de un fragmento específico. Por ejemplo path/*-fix normalizaría la URL /some/path/changing-fix/nested a /some/path/?-fix/nested

Ten en cuenta que DD_TRACE_RESOURCE_URI_MAPPING_INCOMING sólo se aplica a las solicitudes entrantes (por ejemplo, los marcos web), mientras que DD_TRACE_RESOURCE_URI_MAPPING_OUTGOING sólo se aplica a las solicitudes salientes (por ejemplo, las solicitudes curl y guzzle).

Restricciones open_basedir

Cuando se utiliza el parámetro open_basedir, /opt/datadog-php debe añadirse a la lista de directorios permitidos. Cuando la aplicación se ejecuta en un contenedor Docker, la ruta /proc/self también debe añadirse a la lista de directorios permitidos.

Referencias adicionales