Recopila tus métricas expuestas de Prometheus y OpenMetrics de tu aplicación que se ejecuta dentro de Kubernetes utilizando el Agente de Datadog y las integraciones de OpenMetrics o Prometheus. Por defecto, todas las métricas recuperadas por la verificación genérica de Prometheus se consideran métricas personalizadas.
A partir de la versión 6.5.0, el Agente incluye verificaciones de OpenMetrics y Prometheus capaces de extraer puntos de conexión de Prometheus. Para un uso más avanzado de la interfaz OpenMetricsCheck, incluyendo la escritura de una verificación personalizada, consulta la sección de Herramientas para Desarrolladores.
Esta página explica el uso básico de estas verificaciones, que te permiten extraer métricas personalizadas de los puntos finales de Prometheus. Para una explicación de cómo las métricas de Prometheus y OpenMetrics se mapean a las métricas de Datadog, consulta la guía de Mapeo de métricas de Prometheus a métricas de Datadog.
Nota: Datadog recomienda utilizar la verificación de OpenMetrics ya que es más eficiente y soporta completamente el formato de texto de Prometheus. Utiliza la verificación de Prometheus solo cuando el punto de conexión de métricas no soporte un formato de texto.
Configura tu verificación de OpenMetrics o Prometheus utilizando Autodiscovery, aplicando lo siguiente annotations a tu pod que expone las métricas de OpenMetrics/Prometheus:
Nota: Las Anotaciones de AD v2 se introdujeron en la versión 7.36 del Agente de Datadog para simplificar la configuración de integración. Para versiones anteriores del Agente de Datadog, utiliza las Anotaciones de AD v1.
Con los siguientes valores de marcador de posición de configuración:
Marcador de posición
Descripción
<CONTAINER_NAME>
Coincide con el nombre del contenedor que expone las métricas.
<PROMETHEUS_ENDPOINT>
Ruta URL para las métricas servidas por el contenedor, en formato Prometheus.
<METRICS_NAMESPACE_PREFIX_FOR_DATADOG>
Establece el espacio de nombres que se prefijará a cada métrica cuando se visualice en Datadog.
<METRIC_TO_FETCH>
Clave de métricas de Prometheus que se debe obtener del punto de conexión de Prometheus.
<NEW_METRIC_NAME>
Transforma la clave métrica <METRIC_TO_FETCH> a <NEW_METRIC_NAME> en Datadog.
La configuración metrics es una lista de métricas para recuperar como métricas personalizadas. Incluye cada métrica a obtener y el nombre de la métrica deseada en Datadog como pares clave-valor, por ejemplo, {"<METRIC_TO_FETCH>":"<NEW_METRIC_NAME>"}. Para evitar cargos excesivos por métricas personalizadas, Datadog recomienda limitar el alcance para incluir solo las métricas que necesitas. Alternativamente, puedes proporcionar una lista de nombres de métricas como cadenas, interpretadas como expresiones regulares, para traer las métricas deseadas con sus nombres actuales. Si deseas todas las métricas, entonces usa ".*" en lugar de "*".
Nota: Las expresiones regulares pueden potencialmente enviar muchas métricas personalizadas.
Usa el Prometheus prometheus.yaml para lanzar un ejemplo de implementación de Prometheus con la configuración de Autodiscovery en el pod:
Nota: Las Anotaciones de AD v2 se introdujeron en la versión 7.36 del Agente de Datadog para simplificar la configuración de integración. Para versiones anteriores del Agente de Datadog, utiliza las Anotaciones de AD v1.
Ve a tu página de Fleet Automation y filtra por la integración openmetrics para ver información detallada sobre el estado de tus verificaciones.
Ve a tu página de Resumen de métricas para ver las métricas recolectadas de este pod de ejemplo. Esta configuración recopilará la métrica promhttp_metric_handler_requests, promhttp_metric_handler_requests_in_flight y todas las métricas expuestas que comiencen con go_memory.
Recopilación de métricas con anotaciones de Prometheus (Verificación de Prometheus)
Con Prometheus Autodiscovery, el Agente de Datadog puede detectar anotaciones nativas de Prometheus (por ejemplo: prometheus.io/scrape, prometheus.io/path, prometheus.io/port) y programar verificaciones de OpenMetrics automáticamente para recopilar métricas de Prometheus en Kubernetes.
Nota: Datadog recomienda usar la verificación de OpenMetrics ya que es más eficiente y admite completamente el formato de texto de Prometheus. Utiliza la verificación de Prometheus solo cuando el punto de conexión de métricas no soporte un formato de texto.
Requisitos
Agente de Datadog v7.27+ o v6.27+ (para verificaciones de Pod)
Datadog Cluster Agent v1.11+ (para verificaciones de servicio y punto de conexión)
Configuración
Se recomienda primero verificar qué pods y servicios tienen la anotación prometheus.io/scrape=true antes de habilitar esta función. Esto se puede hacer con los siguientes comandos:
kubectl get pods -o=jsonpath='{.items[?(@.metadata.annotations.prometheus\.io/scrape=="true")].metadata.name}' --all-namespaces
kubectl get services -o=jsonpath='{.items[?(@.metadata.annotations.prometheus\.io/scrape=="true")].metadata.name}' --all-namespaces
Una vez que la función de raspado de Prometheus esté habilitada, el Agente de Datadog recopila métricas personalizadas de estos recursos. Si no deseas recopilar las métricas personalizadas de estos recursos, puedes eliminar esta anotación o actualizar las reglas de Autodiscovery como se describe en la sección de configuración avanzada.
Nota: Habilitar esta función sin configuración avanzada puede causar un aumento significativo en las métricas personalizadas, lo que puede llevar a implicaciones de facturación. Consulta la sección de configuración avanzada para aprender cómo recopilar métricas solo de un subconjunto de contenedores/pods/servicios.
Configuración básica
Actualiza la configuración de tu Datadog Operator para contener lo siguiente:
Si el Cluster Agent está habilitado, dentro de tu manifiesto cluster-agent-deployment.yaml, agrega las siguientes variables de entorno para el contenedor del Cluster Agent:
Esto instruye al Agente de Datadog a detectar los pods que tienen anotaciones nativas de Prometheus y generar las verificaciones correspondientes de OpenMetrics.
También instruye al Datadog Cluster Agent (si está habilitado) a detectar los servicios que tienen anotaciones nativas de Prometheus y generar las verificaciones correspondientes de OpenMetrics.
prometheus.io/scrape=true: Requerido.
prometheus.io/path: Opcional, por defecto es /metrics.
prometheus.io/port: Opcional, el valor por defecto es %%port%%, una variable de plantilla que es reemplazada por el puerto del contenedor/servicio.
Esta configuración genera una verificación que recopila todas las métricas expuestas utilizando la configuración predeterminada de la integración de OpenMetrics.
Configuración avanzada
Puedes configurar aún más la recopilación de métricas (más allá de las anotaciones nativas de Prometheus) con el campo additionalConfigs.
Configuraciones adicionales de verificación de OpenMetrics
Usa additionalConfigs.configurations para definir configuraciones adicionales de verificación de OpenMetrics. Consulta la lista de parámetros de OpenMetrics soportados que puedes pasar en additionalConfigs.
Reglas personalizadas de Autodiscovery
Usa additionalConfigs.autodiscovery para definir reglas personalizadas de Autodiscovery. Estas reglas pueden basarse en nombres de contenedores, anotaciones de Kubernetes, o ambos.
Si tanto kubernetes_container_names como kubernetes_annotations están definidos, se utiliza la lógica Y (ambas reglas deben coincidir).
Ejemplos
La siguiente configuración apunta a un contenedor llamado my-app que se ejecuta en un pod con la anotación app=my-app. La configuración de verificación de OpenMetrics se personaliza para habilitar la opción send_distribution_buckets y definir un tiempo de espera personalizado de 5 segundos.
Actualice la configuración de su Datadog Operator para contener lo siguiente:
Por defecto, todas las métricas recuperadas por la verificación genérica de Prometheus se consideran métricas personalizadas. Si está monitoreando software comercial y cree que merece una integración oficial, ¡no dude en contribuir!
Las integraciones oficiales tienen sus propios directorios dedicados. Hay un mecanismo de instancia predeterminado en la verificación genérica para codificar la configuración predeterminada y los metadatos de métricas. Por ejemplo, consulte la integración de kube-proxy.