Prueba la Introducción a la monitorización con Kubernetes en el Centro de aprendizaje
Aprende sin coste alguno sobre la capacidad real de la computación en la nube y una cuenta de prueba de Datadog. Inicia estos laboratorios prácticos para ponerte al día con métricas, logs y trazas de APM que son específicos de Kubernetes.
Puedes enviar trazas a través de Unix Domain Socket (UDS), TCP (IP:Port), o el servicio de Kubernetes. Datadog recomienda que utilices UDS, pero es posible utilizar los tres al mismo tiempo, si es necesario.
Cuando APM está habilitado, la configuración por defecto crea un directorio en el host y lo monta dentro del Agent. El Agent entonces crea y escucha en un archivo de socket /var/run/datadog/apm/apm.socket. Los pods de aplicación pueden entonces montar de forma similar este volumen y escribir en este mismo socket. Puedes modificar la ruta y el socket con el valor de configuración features.apm.unixDomainSocketConfig.path.
After making your changes, apply the new configuration by using the following command:
Para comprobarlo, asegúrate de que datadog.apm.socketEnabled se haya establecido en true en tu datadog-values.yaml.
datadog:apm:socketEnabled:true
La configuración por defecto crea un directorio en el host y lo monta dentro del Agent. A continuación, el Agent crea y escucha en un archivo de socket /var/run/datadog/apm.socket. Los pods de aplicación pueden entonces montar de forma similar este volumen y escribir en este mismo socket. Puedes modificar la ruta y el socket con los valores de configuración datadog.apm.hostSocketPath y datadog.apm.socketPath.
datadog:apm:# los siguientes valores son predeterminados:socketEnabled:truehostSocketPath:/var/run/datadog/socketPath:/var/run/datadog/apm.socket
Para desactivar APM, establece datadog.apm.socketEnabled en false.
After making your changes, upgrade your Datadog Helm chart using the following command:
Nota: En minikube, puedes recibir un error Unable to detect the kubelet URL automatically. En este caso, establece datadog.kubelet.tlsVerify en false.
Configura tus pods de aplicación para enviar trazas al Datadog Agent
El Controlador de admisión de Datadog (Admission Controller) es un componente del Datadog Cluster Agent que simplifica tu configuración de pod de aplicación. Obtén más información leyendo la documentación del Datadog Admission Controller.
Utiliza el Controlador de admisión de Datadog (Admission Controller) para inyectar las variables de entorno y montar los volúmenes necesarios en nuevos pods de aplicación, configurando automáticamente la comunicación de trazas entre el pod y el Agent. Aprende cómo configurar automáticamente tu aplicación para enviar trazas al Datadog Agent leyendo la documentación Inyectar bibliotecas con el Admission Controller.
Si estás enviando trazas al Agent utilizando UDS, monta el directorio de host en el que se encuentra el socket (que el Agent ha creado) en el contenedor de aplicación y especifica la ruta al socket con DD_TRACE_AGENT_URL:
Configura tus trazadores de aplicaciones para emitir trazas:
Después de configurar tu Datadog Agent para recopilar trazas y establecer en tus pods de aplicación la configuración sobre dónde enviar trazas, instala el trazador de Datadog en tus aplicaciones para emitir trazas. Una vez hecho esto, el trazador envía las trazas al endpoint DD_TRACE_AGENT_URL apropiado.
Si estás enviando trazas al Agent mediante TCP (<IP_ADDRESS>:8126), proporciona esta dirección IP a tus pods de aplicación, ya sea de forma automática con el Controlador de admisión de Datadog, o de forma manual mediante la API descendente para obtener la IP de host. El contenedor de aplicación necesita la variable de entorno DD_AGENT_HOST que apunta a status.hostIP:
Nota: Esta configuración requiere que el Agent esté configurado para aceptar trazas sobre TCP.
Configura tus trazadores de aplicaciones para emitir trazas:
Después de configurar tu Datadog Agent para recopilar trazas y establecer en tus pods de aplicación la configuración sobre dónde enviar trazas, instala el trazador de Datadog en tus aplicaciones para emitir trazas. Una vez hecho esto, el trazador envía automáticamente las trazas al endpoint DD_AGENT_HOST apropiado.
Atención: El parámetro hostPort abre un puerto en tu host. Asegúrate de que tu cortafuegos solo permite el acceso desde tus aplicaciones o fuentes de confianza. Si tu complemento de red no admite hostPorts, añade hostNetwork: true en las especificaciones de pod de tu Agent. Esto comparte el espacio de nombres de red de tu host con el Datadog Agent. Esto también significa que todos los puertos abiertos en el contenedor se abren en el host. Si un puerto se utiliza tanto en el host como en tu contenedor, entran en conflicto (ya que comparten el mismo espacio de nombres de red) y el pod no arranca. Algunas instalaciones de Kubernetes no permiten esto.
Actualiza tu archivo datadog-values.yaml con la siguiente configuración de APM:
datadog:apm:portEnabled:trueport:8126# default
After making your changes, upgrade your Datadog Helm chart using the following command:
Atención: El parámetro datadog.apm.portEnabled abre un puerto en tu host. Asegúrate de que tu cortafuegos solo permite el acceso desde tus aplicaciones o fuentes de confianza. Si tu complemento de red no admite hostPorts, añade hostNetwork: true en las especificaciones de pod de tu Agent. Esto comparte el espacio de nombres de red de tu host con el Datadog Agent. Esto también significa que todos los puertos abiertos en el contenedor se abren en el host. Si un puerto se utiliza tanto en el host como en tu contenedor, entran en conflicto (ya que comparten el mismo espacio de nombres de red) y el pod no arranca. Algunas instalaciones de Kubernetes no permiten esto.
Variables de entorno de APM
Establece variables de entorno de APM adicionales en override.nodeAgent.containers.trace-agent.env:
Lista de variables de entorno disponibles para configurar APM:
Variable de entorno
Descripción
DD_APM_ENABLED
Cuando se establece en true, el Datadog Agent acepta rastrear métricas. De manera predeterminada: true (Agent 7.18 o posterior)
DD_APM_ENV
Establece la etiqueta env: en trazas recopiladas.
DD_APM_RECEIVER_SOCKET
Para rastrear a través de UDS. Cuando se establece, debe apuntar a un archivo de socket válido.
DD_APM_RECEIVER_PORT
Para rastrear a través de TCP, el puerto en el que escucha el receptor de trazas del Datadog Agent. De manera predeterminada: 8126
DD_APM_NON_LOCAL_TRAFFIC
Permite el tráfico no local al rastrear desde otros contenedores. De manera predeterminada: true (Agent 7.18 o posterior)
DD_APM_DD_URL
El endpoint de la API de Datadog al que se envían tus trazas: https://trace.agent.. De manera predeterminada: https://trace.agent.datadoghq.com
DD_APM_TARGET_TPS
Las trazas de destino por segundo a muestrear. De manera predeterminada: 10
DD_APM_ERROR_TPS
Los fragmentos de trazas de errores de destino a recibir por segundo. De manera predeterminada: 10
DD_APM_MAX_EPS
La cantidad máxima de eventos de APM por segundo a muestrear. De manera predeterminada: 200
DD_APM_MAX_MEMORY
Lo que el Datadog Agent pretende usar en términos de memoria. Si se sobrepasa, la tasa de la API limita las solicitudes entrantes. De manera predeterminada: 500000000
DD_APM_MAX_CPU_PERCENT
El porcentaje de CPU que el Datadog Agent pretende usar. Si se sobrepasa, la tasa de la API limita las solicitudes entrantes. De manera predeterminada: 50
DD_APM_FILTER_TAGS_REQUIRE
Solo recopila las trazas que tienen tramos (spans) raíz con una coincidencia exacta para los valores y etiquetas de tramo especificados. Consulta Ignorar recursos no deseados en APM.
DD_APM_FILTER_TAGS_REJECT
Rechaza las trazas que tienen tramos raíz con una coincidencia exacta para los valores y etiquetas de tramo especificados. Consulta Ignorar recursos no deseados en APM.
Configura recursos para que el Agent los ignore. El formato debe estar separado por comas y contener expresiones regulares. Por ejemplo: GET /ignore-me,(GET|POST) /and-also-me
DD_APM_LOG_FILE
Ruta al archivo donde se escriben los logs de APM.
DD_APM_CONNECTION_LIMIT
Límite máximo de conexiones para un intervalo de 30 segundos. De manera predeterminada: 2000
DD_APM_ADDITONAL_ENDPOINTS
Envía datos a varios endpoints o con varias claves de API. Consulta Envío doble.
DD_APM_DEBUG_PORT
Puerto para los endpoints de depuración del Trace Agent. Establécelo en 0 para deshabilitar el servidor. De manera predeterminada: 5012.
DD_BIND_HOST
Establece el StatsD y el nombre de host del receptor.
DD_DOGSTATSD_PORT
Para rastrear a través de TCP, establece el puerto de DogStatsD.
DD_ENV
Establece el env global para todos los datos emitidos por el Agent. Si env no está presente en tus datos de traza, se utiliza esta variable.
DD_HOSTNAME
Si la detección automática falla, o durante la ejecución del Datadog Cluster Agent, establece el nombre de host que hay que usar para las métricas.
DD_LOG_LEVEL
Establece el nivel de registro. Valores: trace, debug, info, warn, error, critical, off