Errores de conexión de APM

Si la aplicación con la biblioteca de rastreo no puede alcanzar el Datadog Agent, busca errores de conexión en los logs de inicio del rastreador o logs de depuración del rastreador, que puedes encontrar con tus logs de aplicación.

Errores que indican un problema de conexión de APM

Si ves estos mensajes, significa que tus trazas (traces) no se están enviando al Datadog Agent.

Errores de la biblioteca de rastreo

Logs de inicio del rastreador

2021/08/17 17:46:22 Datadog Tracer v1.32.0 WARN: DIAGNOSTICS Unable to reach agent intake: Post http://localhost:8126/v0.4/traces: dial tcp 127.0.0.1:8126: connect: connection refused

Logs de depuración del rastreador

2021/08/17 17:47:42 Datadog Tracer v1.32.0 ERROR: lost 1 traces: Post http://localhost:8126/v0.4/traces: dial tcp 127.0.0.1:8126: connect: connection refused (occurred: 17 Aug 21 17:46 UTC)

Errores del Datadog Agent

Si el comando agent status (disponible en el Agent 6.20.0/7.20.0) muestra que APM no se está ejecutando o no es accesible en localhost:8126, tu Datadog Agent no tiene APM configurado y las trazas no se pueden enviar al backend de Datadog.

APM Agent
=========
  Status: Not running or unreachable on localhost:8126.

Solucionar problemas de conexión

Tanto si la biblioteca de rastreo o el Datadog Agent muestran el error, hay algunas formas de solucionar el problema.

Configuraciones basadas en host

Si tu aplicación y el Datadog Agent no están en contenedores, la aplicación con la biblioteca de rastreo debería estar intentando enviar trazas a localhost:8126 o 127.0.0.1:8126, porque ahí es donde el Datadog Agent está escuchando.

Si el Datadog Agent muestra que APM no está escuchando, comprueba si el puerto entra en conflicto con el puerto 8126, que es el que utiliza por defecto el componente APM del Datadog Agent.

Si no puedes aislar la causa raíz, ponte en contacto con el soporte de Datadog con:

  • Información sobre el entorno en el que vas a desplegar la aplicación y el Datadog Agent.
  • Si utilizas proxies, información sobre cómo se han configurado.
  • Si estás intentando cambiar el puerto por defecto de 8126 a otro puerto, la información sobre ese puerto.
  • Un flare de Datadog Agent.

Instalaciones en contenedores

Configuración del check de red

En configuraciones en contenedores, enviar trazas a localhost o 127.0.0.1 suele ser incorrecto, ya que el Datadog Agent también está en un contenedor y se encuentra en otro lugar. Nota: Amazon ECS en Fargate y AWS EKS en Fargate son excepciones a esta regla.

Determina si la conexión de red entre la aplicación y el Datadog Agent coincide con lo que se necesita para esa configuración.

En particular, comprueba que el Datadog Agent tiene acceso al puerto 8126 (o al puerto que hayas definido) y que tu aplicación es capaz de dirigir trazas a la localización del Datadog Agent. Para ello, puedes ejecutar el siguiente comando desde el contenedor de la aplicación, sustituyendo las variables {agent_ip} y {agent_port}:

curl -X GET http://{agent_ip}:{agent_port}/info

Si este comando falla, tu contenedor no puede acceder al Agent. Consulta las siguientes secciones para obtener pistas sobre lo que podría estar causando este problema.

Un buen punto de partida es la documentación de configuración dentro de la aplicación de APM.

Revisar a dónde intenta enviar trazas tu biblioteca de rastreo

Utilizando los logs de error enumerados anteriormente para cada lenguaje, comprueba a dónde se dirigen tus trazas.

Consulta la tabla siguiente para ver ejemplos de configuración. Algunos requieren configuraciones adicionales de red, que se explican con más detalle en su documentación.

ConfiguraciónDD_AGENT_HOST
Amazon ECS en EC2Evaluar el endpoint de metadatos de Amazon EC2
Amazon ECS en FargateNo configures DD_AGENT_HOST
AWS EKS en FargateNo configures DD_AGENT_HOST
AWS Elastic Beanstalk - Contenedor únicoIP de la puerta de enlace (normalmente 172.17.0.1)
AWS Elastic Beanstalk - Contenedores múltiplesEnlace que apunta al nombre de contenedor del Datadog Agent
Kubernetes1) Unix Domain Socket, 2) status.hostIP añadido manualmente, o 3) a través del Controlador de admisión (Admission Controller). Si utilizas TCP, comprueba las políticas de red aplicadas en tu contenedor
AWS EKS (no Fargate)1) Unix Domain Socket, 2) status.hostIP añadido manualmente, o 3) a través del Controlador de admisión (Admission Controller)
Datadog Agent y contenedores de aplicación de DockerContenedor del Datadog Agent

Nota sobre servidores web: Si la sección agent_url en los logs de inicio del rastreador no coinciden con la variable de entorno DD_AGENT_HOST enviada, revisa cómo se envían en cascada las variables de entorno para ese servidor específico. Por ejemplo, en PHP, hay un ajuste adicional para asegurar que Apache o Nginx recogen la variable de entorno DD_AGENT_HOST correctamente.

Si tu biblioteca de rastreo está enviando trazas correctamente según tu configuración, entonces procede al siguiente paso.

Revisa el estado y configuración de tu Datadog Agent

Si tu instalación no está en Fargate, puedes ingresar exec en el contenedor del Datadog Agent y ejecutar el comando de estado del Agent: agent status

Nota: Si utilizas Kubernetes con contenedores dedicados, ingresa exec en el contenedor dedicado del Trace Agent.

Busca la sección del Agent de APM para confirmar si está funcionando:

=========
APM Agent
=========
  Status: Running
  Pid: <pid number>
  Uptime: <integer> seconds
  Mem alloc: <integer> bytes
  Hostname: <name of datadog agent container>
  Receiver: 0.0.0.0:8126
  Endpoints:
    https://trace.agent.datadoghq.com

  Receiver (previous minute)
  ==========================
    No traces received in the previous minute.
    Default priority sampling rate: 100.0%

Si la configuración es correcta, pero sigues viendo errores de conexión, ponte en contacto con el soporte de Datadog con:

  • Información sobre el entorno en el que vas a desplegar la aplicación y el Datadog Agent.
  • Si utilizas proxies, información sobre cómo se han configurado.
  • Cualquier archivo de configuración utilizado para configurar la aplicación y el Datadog Agent.
  • Logs de inicio o depuración del rastreador en los que se describe el error de conexión.
  • Un flare del Datadog Agent. Para contenedores dedicados, envía el flare desde el contenedor dedicado del Trace Agent.