Sigue esta guía para desplegar la Datadog Distribution of OpenTelemetry (DDOT) Collector como un DaemonSet de Kubernetes utilizando Helm o Datadog Operator.
Red: When using the Datadog SDK with OpenTelemetry API support, telemetry is routed to different components depending on the signal source. Ensure the following ports are accessible on your Datadog Agent or Collector:
Signal Source
Protocol
Port
Destination Component
OTel Metrics and Logs API
OTLP (gRPC/HTTP)
4317 / 4318
Datadog Agent OTLP Receiver or DDOT Collector
Datadog Tracing
Datadog trace intake
8126 (TCP)
Datadog Trace Agent
Runtime Metrics
DogStatsD
8125 (UDP)
DogStatsD Server
Instala Datadog Agent con OpenTelemetry Collector
Esta instalación es necesaria para las configuraciones de Datadog SDK + DDOT y OpenTelemetry SDK + DDOT. Aunque el SDK de Datadog implementa la API de OpenTelemetry, aún requiere el recolector DDOT para procesar y enviar métricas y registros OTLP.
Selecciona el método de instalación
Elige uno de los siguientes métodos de instalación:
Operador de Datadog: Un enfoque nativo de Kubernetes que reconcilia y mantiene automáticamente tu configuración de Datadog. Informa el estado de despliegue, salud y errores en su estado de Recurso Personalizado, y limita el riesgo de mala configuración gracias a opciones de configuración de nivel superior.
Helm chart: Una forma sencilla de desplegar el Agente de Datadog. Proporciona capacidades de versionado, retroceso y plantillas, haciendo que los despliegues sean consistentes y más fáciles de replicar.
Reemplaza <DD_API_KEY> con tu clave de API de Datadog real.
Configura Datadog Agent
Después de implementar el Datadog Operator, crea el recurso DatadogAgent que activa la implementación del Datadog Agent, Cluster Agent y Runners de Cluster Checks (si se utilizan) en tu clúster de Kubernetes. El Datadog Agent se implementa como un DaemonSet, ejecutando un pod en cada nodo de tu clúster.
Utiliza el archivo datadog-agent.yaml para especificar tu configuración de despliegue DatadogAgent
Datadog Operator vincula automáticamente el recolector de OpenTelemetry a los puertos 4317 (nombrado otel-grpc) y 4318 (nombrado otel-http) por defecto.
(Opcional) Habilita características adicionales de Datadog:
Habilitar estas características puede incurrir en cargos adicionales. Revisa la página de precios y habla con tu Gerente de Éxito del Cliente antes de continuar.
Al habilitar características adicionales de Datadog, siempre utiliza los archivos de configuración de Datadog Agent o del recolector de OpenTelemetry en lugar de depender de las variables de entorno de Datadog.
Nota: A partir de Datadog Operator v1.22.0, el contenedor DDOT utiliza la imagen ddot-collector en lugar de la imagen de Datadog Agent -full.
Al sobrescribir la etiqueta de imagen del Datadog Agent de nodo, utiliza una etiqueta >= 7.67.0 para que el contenedor OTel sea programado (la imagen ddot-collector solo es compatible con >= 7.67.0).
La imagen ddot-collector no tiene variante -full. Si necesitas una imagen -full, establece spec.override.nodeAgent.image.name como una imagen completa de Datadog Agent (por ejemplo, registry.datadoghq.com/agent:7.72.1-full).
Utiliza un archivo YAML para especificar los parámetros del Helm chart para el Datadog Agent chart.
Crea un archivo datadog-values.yaml vacío:
touch datadog-values.yaml
Los parámetros no especificados utilizan los valores predeterminados de values.yaml.
Configura el secreto de la clave de API de Datadog:
Establece <DATADOG_SITE> en tu sitio de Datadog. De lo contrario, se establece en datadoghq.com, el sitio US1.
Para FED, también configura useFIPSAgent: true en la raíz de tu datadog-values.yaml para usar la imagen de Datadog Agent compatible con FIPS. Vea cumplimiento de FIPS.
Habilita el recolector de OpenTelemetry y configura los puertos esenciales:
datadog-values.yaml
datadog:...otelCollector:enabled:trueports:- containerPort:"4317"# default port for OpenTelemetry gRPC receiver.hostPort:"4317"name:otel-grpc- containerPort:"4318"# default port for OpenTelemetry HTTP receiverhostPort:"4318"name:otel-http
Establece el hostPort para exponer el puerto del contenedor a la red externa. Esto permite configurar el exportador OTLP para apuntar a la dirección IP del nodo donde se asigna Datadog Agent.
Si no deseas exponer el puerto, puedes utilizar el servicio de Datadog Agent en su lugar:
Elimina el hostPort entradas de tu datadog-values.yaml archivo.
En el archivo de despliegue de tu aplicación (deployment.yaml), configura el exportador OTLP para usar el servicio de Datadog Agent:
(Opcional) Habilita características adicionales de Datadog:
Habilitar estas características puede incurrir en cargos adicionales. Revisa la página de precios y habla con tu Gerente de Éxito del Cliente antes de continuar.
Al habilitar características adicionales de Datadog, siempre utilice los archivos de configuración del Agente de Datadog o del recolector de OpenTelemetry en lugar de depender de las variables de entorno de Datadog.
(Opcional) Recopilar etiquetas de pod y usarlas como etiquetas para adjuntar a métricas, trazas y registros:
Datadog Operator proporciona una configuración de muestra del OpenTelemetry Collector que puedes usar como punto de partida. Si necesitas modificar esta configuración, Datadog Operator admite dos formas de proporcionar una configuración personalizada de OpenTelemetry Collector:
Configuración en línea: Agrega tu configuración personalizada del OpenTelemetry Collector directamente en el campo features.otelCollector.conf.configData.
Configuración basada en ConfigMap: Almacena la configuración de tu OpenTelemetry Collector en un ConfigMap y haz referencia a ella en el campo features.otelCollector.conf.configMap. Este enfoque te permite mantener la configuración del Collector desacoplada del recurso DatadogAgent.
Configuración en línea del Collector
En el fragmento a continuación, la configuración del Collector se coloca directamente bajo el parámetro features.otelCollector.conf.configData:
For the infraattributes processor to add Kubernetes tags, your telemetry must include the container.id resource attribute. This is often, but not always, added by OTel SDK auto-instrumentation.
If your tags are missing, see the troubleshooting guide for details on how to add this attribute.
Cuando apliques el archivo datadog-agent.yaml que contiene este recurso DatadogAgent, el Operador monta automáticamente la configuración del Collector en el DaemonSet del Agente.
Archivo datadog-agent.yaml completado con configuración del Collector en línea
El datadog-agent.yaml completado con configuración del Collector en línea debería verse algo así:
Para configuraciones más complejas o que se actualizan con frecuencia, almacenar la configuración del Collector en un ConfigMap puede simplificar el control de versiones.
Crea un ConfigMap que contenga la configuración del Collector:
El Helm chart de Datadog ofrece una configuración de ejemplo del Collector de OpenTelemetry que puedes utilizar como punto de partida. Esta sección te guía a través de las canalizaciones predefinidas y los componentes de OpenTelemetry incluidos.
Esta es la configuración completa del Collector de OpenTelemetry en otel-config.yaml:
For the infraattributes processor to add Kubernetes tags, your telemetry must include the container.id resource attribute. This is often, but not always, added by OTel SDK auto-instrumentation.
If your tags are missing, see the troubleshooting guide for details on how to add this attribute.
Componentes clave
Para enviar datos de telemetría a Datadog, los siguientes componentes están definidos en la configuración:
Nota: Si key no está especificado o se establece como un secreto, o si site no está especificado, el sistema utiliza valores de la configuración principal del Agente. Por defecto, el Agente principal establece el sitio en datadoghq.com (US1).
Receptor de Prometheus
El receptor de Prometheus recopila métricas de salud del OpenTelemetry Collector para la canalización de métricas.
Tu contenedor de aplicación debe enviar datos al DDOT Collector en el mismo servidor. Dado que el Collector se ejecuta como un DaemonSet, necesitas especificar el servidor local como el punto de conexión de OTLP.
Si la variable de entorno OTEL_EXPORTER_OTLP_ENDPOINT no está ya configurada, añádela al archivo de manifiesto de despliegue de tu aplicación:
unified service tagging une los datos de observabilidad en Datadog para que puedas navegar a través de métricas, trazas y registros con etiquetas consistentes.
En entornos contenedorizados, establece env, service y version usando las variables de entorno de Atributos de Recursos de OpenTelemetry. El DDOT Collector detecta esta configuración de etiquetado y la aplica a los datos que recopila de los contenedores.
Añade las siguientes variables de entorno al manifiesto de despliegue de tu aplicación:
Alternativamente, puedes usar etiquetas específicas de Kubernetes de Datadog para configurar el etiquetado de servicio unificado. No uses ambos enfoques, ya que esto crea etiquetas duplicadas.
Ejecuta la aplicación
Vuelve a implementar tu aplicación para aplicar los cambios realizados en el manifiesto de implementación. Una vez que la configuración actualizada esté activa, la Etiquetación de Servicio Unificada estará completamente habilitada para tus métricas, trazas y registros.
Explora los datos de observabilidad en Datadog
Utiliza Datadog para explorar los datos de observabilidad de tu aplicación.
Fleet Automation
Explora la configuración de tu Datadog Agent y Collector.
Monitoreo de contenedores en vivo
Monitorea la salud de tu contenedor utilizando las capacidades de Container Monitoring en vivo.
Salud de nodos de infraestructura
Visualiza métricas de tiempo de ejecución e infraestructura para observar, monitorear y medir el rendimiento de tus nodos.
Logs
Visualiza registros para monitorear y solucionar problemas de las operaciones de la aplicación y del sistema.
Trazas
Visualiza trazas y tramos para observar el estado y rendimiento de las solicitudes procesadas por tu aplicación, con métricas de infraestructura correlacionadas en la misma traza.
Métricas de tiempo de ejecución
Monitorea las métricas de tiempo de ejecución (JVM) de tus aplicaciones.
Métricas de salud del Collector
Visualiza las métricas del DDOT Collector para monitorear la salud del Collector.