Sigue esta guía para instalar el Datadog Agent con el OpenTelemetry Collector utilizando Helm.
Si necesitas componentes de OpenTelemetry más allá de los que se proporcionan en el paquete predeterminado, consulta Uso de componentes de OpenTelemetry personalizados para traer tus propios componentes de Otel y ampliar las capacidades del Datadog Agent. Para ver la lista de los componentes incluidos por defecto, consulta Componentes incluidos.
Instalar el Datadog Agent con el OpenTelemetry Collector
Seleccionar el método de instalación
Elige uno de los siguientes métodos de instalación:
Datadog Operator: Un enfoque nativo en Kubernetes que automáticamente reconcilia y mantiene tu configuración de Datadog. Informa el estado del despliegue, el estado y los errores en su estado de recurso personalizado, y limita el riesgo de configuración errónea gracias a las opciones de configuración de nivel superior.
Helm chart: Una forma sencilla de desplegar el Datadog Agent. Proporciona capacidades de versionado, reversión y plantillas, haciendo que los despliegues sean consistentes y más fáciles de replicar.
Sustituye <DD_API_KEY> y <DD_APP_KEY> por tus claves de aplicación y la API de Datadog reales.
Configurar el Datadog Agent
Después de desplegar el Datadog Operator, crea el recurso DatadogAgent que activa el despliegue del Datadog Agent, el Cluster Agent y los ejecutores de checks de clústeres (si se utilizan) en tu clúster Kubernetes. El Datadog Agent se despliega como un DaemonSet, ejecutando un pod en cada nodo de tu clúster.
Utiliza el archivo datadog-agent.yaml para especificar la configuración de tu despliegue de DatadogAgent.
Esta guía utiliza un ejemplo de aplicación Java. El sufijo -jmx en la etiqueta (tag) de la imagen habilita las utilidades JMX. Para aplicaciones que no sean Java, utiliza 7.62.2-ot-beta en su lugar. Para obtener más información, consulta la guía de la integración Autodiscovery y JMX.
Por defecto, la imagen del Agent se extrae de Google Artifact Registry (gcr.io/datadoghq). Si Artifact Registry no es accesible en la región de tu despliegue, utiliza otro registro.
El Datadog Operator vincula automáticamente el OpenTelemetry Collector con los puertos 4317 (llamado otel-grpc) y 4318 (llamado otel-http) por defecto.
Para anular explícitamente los puertos por defecto, utiliza el parámetro features.otelCollector.ports:
Cuando configures los puertos 4317 y 4318, debes utilizar los nombres por defecto otel-grpc y otel-http respectivamente para evitar conflictos de puertos.
(Opcional) Habilita las funciones adicionales de Datadog:
La activación de estas funciones puede conllevar gastos adicionales. Consulta la página de precios y habla con tu CSM antes de continuar.
Configura <DATADOG_SITE> como tu sitio Datadog. De lo contrario, por defecto será datadoghq.com, el sitio US1.
El valor del parámetro de nivel de log datadog.logLevel debe configurarse en minúsculas. Los niveles de logs válidos son: rastreo, depuración, información, advertencia, error, crítico, desactivado.
Cambia la etiqueta (tag) de la imagen del Datadog Agent para utilizar compilaciones con el OpenTelemetry Collector integrado:
Esta guía utiliza un ejemplo de aplicación Java. El sufijo -jmx en la etiqueta (tag) de la imagen habilita las utilidades JMX. Para aplicaciones que no sean Java, utiliza 7.62.2-ot-beta en su lugar. Para obtener más información, consulta la guía de la integración Autodiscovery y JMX.
Por defecto, la imagen del Agent se extrae de Google Artifact Registry (gcr.io/datadoghq). Si Artifact Registry no es accesible en la región de tu despliegue, [utiliza otro registro][4].
Habilita el recopilador 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
Configura el hostPort para exponer el puerto del contenedor a la red externa. Esto permite configurar el exportador OTLP para que apunte a la dirección IP del nodo donde está asignado el Datadog Agent.
Si no deseas exponer el puerto, puedes utilizar en su lugar el servicio del Agent:
Elimina las entradas hostPort de tu archivo datadog-values.yaml.
En el archivo de despliegue de tu aplicación (deployment.yaml), configura el exportador OTLP para utilizar el servicio del Agent:
El Datadog Operator proporciona un ejemplo de configuración del OpenTelemetry Collector que puedes utilizar como punto de partida. Si necesitas modificar esta configuración, el Datadog Operator tiene dos formas de proporcionar una configuración personalizada del Collector:
Configuración en línea: Añade tu configuración personalizada del Collector directamente en el campo features.otelCollector.conf.configData.
Configuración basada en ConfigMap: Almacena tu configuración del Collector en un ConfigMap y haz referencia a ella en el campo features.otelCollector.conf.configMap. Este enfoque te permite mantener tu configuración del Collector desacoplada del recurso DatadogAgent.
Configuración en línea del Collector
En el siguiente fragmento, la configuración del Collector se coloca directamente debajo del parámetro features.otelCollector.conf.configData:
Al aplicar el archivo datadog-agent.yaml que contiene este recurso DatadogAgent, el Operator monta automáticamente la configuración del Collector en el DaemonSet del Agent.
Completed datadog-agent.yaml file
Completed datadog-agent.yaml with inline Collector configuration should look something like this:
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 tu configuración del Collector :
El Helm chart de Datadog proporciona un ejemplo de configuración del OpenTelemetry Collector que puedes utilizar como punto de partida. Esta sección te guiará a través de los pipelines predefinidos y los componentes de OpenTelemetry incluidos.
Esta es la configuración completa del OpenTelemetry Collector en otel-config.yaml:
Nota: Si no se especifica key o se define para un secreto, o si no se especifica site, el sistema utiliza los valores de la configuración del Agent principal. Por defecto, el Agent principal establece su sitio en datadoghq.com (US1).
Receptor Prometheus
El Receptor Prometheus recopila métricas del estado del OpenTelemetry Collector para el pipeline de métricas.
Despliegue del Agent con el OpenTelemetry Collector
Despliega el Datadog Agent con el archivo de configuración:
kubectl apply -f datadog-agent.yaml
Esta acción despliega el Datadog Agent como un DaemonSet con el OpenTelemetry Collector integrado. El Collector se ejecuta en el mismo host que tu aplicación, siguiendo el patrón de despliegue del Agent. El patrón de despliegue Gateway no es compatible.
Para instalar o actualizar el Datadog Agent con el OpenTelemetry Collector en tu entorno Kubernetes, utiliza uno de los siguientes comandos Helm:
Para una configuración por defecto del OpenTelemetry Collector:
Este comando te permite especificar tu propio archivo otel-config.yaml.
Sustituye <RELEASE_NAME> por el nombre de la versión de Helm que estés utilizando.
Es posible que aparezcan advertencias durante el proceso de despliegue. Estas advertencias pueden ignorarse.
Este Helm chart despliega el Datadog Agent con el OpenTelemetry Collector como un DaemonSet. El Collector se despliega en el mismo host de tu aplicación, siguiendo el patrón de despliegue del Agent. El patrón de despliegue Gateway no es compatible.
Para configurar tu contenedor de aplicación, asegúrate de que se utiliza el nombre de host del endpoint OTLP correcto. El Datadog Agent con el OpenTelemetry Collector se despliega como DaemonSet, por lo que es necesario apuntar al host actual.
El contenedor de la aplicación Calendario ya está configurado con la variable de entorno correcta OTEL_EXPORTER_OTLP_ENDPOINTcomo se define en el Helm chart:
Ve al archivo de manifiesto del despliegue de la aplicación Calendario:
./deploys/calendar/templates/deployment.yaml
Las siguientes variables de entorno configuran el endpoint OTLP:
El Etiquetado unificado de servicios une los datos de observabilidad en Datadog para que puedas recorrer métricas, trazas y logs con etiquetas coherentes.
En este ejemplo, la aplicación Calendario ya está configurada con el etiquetado unificado de servicios como se define en el Helm chart:
Ve al archivo de manifiesto del despliegue de la aplicación Calendario:
./deploys/calendar/templates/deployment.yaml
Las siguientes variables de entorno configuran el endpoint OTLP:
Para empezar a generar y enviar datos de observabilidad a Datadog, necesitas desplegar la aplicación Calendario con el SDK de OpenTelemetry utilizando Helm.
Ejecuta el siguiente comando helm desde la carpeta calendar/:
Este Helm chart despliega la aplicación Calendario de ejemplo como un ReplicaSet.
Para probar que la aplicación Calendario funciona correctamente, ejecuta el siguiente comando desde otra ventana de terminal:
curl localhost:9090/calendar
Comprueba que recibes una respuesta tal como:
{"date":"2024-12-30"}
Cada llamada a la aplicación Calendario tiene como resultado el reenvío de métricas, trazas y logs al backend Datadog.
Explorar datos de observabilidad en Datadog
Utiliza Datadog para explorar los datos de observabilidad de la aplicación Calendario de ejemplo.
Automatización de flotas
Explora tu configuración del Datadog Agent y del Collector.
Monitorización de contenedores en directo
Monitoriza el estado de tu contenedor utilizando las funciones de monitorización de contenedores en directo.
Estado del nodo de la infraestructura
Consulta métricas de tiempo de ejecución y de infraestructura para visualizar, monitorizar y medir el rendimiento de tus nodos.
Logs
Consulta los logs para monitorizar y solucionar problemas de funcionamiento de la aplicación y el sistema.
Trazas
Consulta trazas y tramos para visualizar el estado y el rendimiento de las solicitudes procesadas por tu aplicación, con métricas de infraestructura correlacionadas en la misma traza.
Métricas de tiempos de ejecución
Monitoriza las métricas de tiempo de ejecución (JVM) de tus aplicaciones.
Métricas de estado del Collector
Consulta métricas del Collector incorporado para monitorizar el estado del Collector.
Componentes incluidos
De forma predeterminada, el Datadog Agent con collector integrado se entrega con los siguientes componentes del collector. También puedes ver la lista en formato YAML.