Recopila tus métricas de Prometheus y OpenMetrics expuestas desde tu aplicación que se ejecuta dentro de Kubernetes utilizando el Datadog Agent y las integraciones de OpenMetrics o Prometheus. Por defecto, todas las métricas recuperadas por el check genérico de Prometheus se consideran métricas personalizadas.
A partir de la versión 6.5.0, el Agent incluye checks de OpenMetrics y Prometheus capaces de rastrear los endpoints de Prometheus. Para un uso más avanzado de la interfaz OpenMetricsCheck, incluida la escritura de un check personalizado, consulta la sección Herramientas para desarrolladores.
En esta página se explica el uso básico de estos checks, que te permiten extraer métricas personalizadas desde los endpoints de Prometheus. Para obtener una explicación de cómo se asignan las métricas de Prometheus y OpenMetrics a las métricas de Datadog, consulta la guía Asignación de métricas de Prometheus a métricas de Datadog.
Nota: Datadog recomienda utilizar el check de OpenMetrics, ya que es más eficiente y admite totalmente el formato de texto de Prometheus. Utiliza el check de Prometheus sólo cuando el endpoint de métricas no admita un formato de texto.
Configura tu check de OpenMetrics o Prometheus con Autodiscovery, aplicando las siguientes annotations a tu pod exponiendo las métricas de OpenMetrics/Prometheus:
Nota: AD Annotations v2 se introdujo en Datadog Agent versión 7.36 para simplificar la configuración de la integración. Para versiones anteriores de Datadog Agent, utiliza AD Annotations v1.
Con los siguientes valores de parámetros de configuración:
Parámetro
Descripción
<CONTAINER_NAME>
Coincide con el nombre del contenedor que expone las métricas.
<PROMETHEUS_ENDPOINT>
La ruta de URL para las métricas que brinda el contenedor, en formato Prometheus.
<METRICS_NAMESPACE_PREFIX_FOR_DATADOG>
Establece el espacio de nombres que se usará como prefijo para cada métrica cuando se visualiza en Datadog.
<METRIC_TO_FETCH>
Clave de métricas de Prometheus a recuperar del endpoint de Prometheus.
<NEW_METRIC_NAME>
Transforma la clave de métrica <METRIC_TO_FETCH> en <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 recuperar y el nombre de métrica deseado en Datadog como pares de clave-valor, por ejemplo, {"<METRIC_TO_FETCH>":"<NEW_METRIC_NAME>"}. Para evitar cargos por métricas personalizadas, Datadog recomienda limitar el contexto para incluir solo las métricas que necesites. Alternativamente, puedes proporcionar una lista de cadenas de nombres de métrica, interpretadas como expresiones regulares, para obtener las métricas deseadas con sus nombres actuales. Si deseas todas las métricas, utiliza ".*" en lugar de "*".
Nota: Las expresiones regulares pueden potencialmente enviar un montón de métricas personalizadas.
Utiliza Prometheus prometheus.yaml para iniciar un ejemplo de despliegue de Prometheus con la configuración de Autodiscovery en el pod:
Nota: AD Annotations v2 se introdujo en Datadog Agent versión 7.36 para simplificar la configuración de la integración. Para versiones anteriores de Datadog Agent, utiliza AD Annotations v1.
Entra en tu page (página) Fleet Automation y filtra por la integración openmetrics para ver información detallada sobre el estado de tus checks.
Ve a tu página Resumen de métrica para ver las métricas recopiladas de este pod de ejemplo. Esta configuración recopilará las métricas promhttp_metric_handler_requests , promhttp_metric_handler_requests_in_flight y todas las métricas expuestas empezando por go_memory.
Recopilación de métricas con anotaciones de Prometheus (Prometheus Check)
Con Prometheus Autodiscovery, el Datadog Agent es capaz de detectar anotaciones nativas de Prometheus (por ejemplo: prometheus.io/scrape, prometheus.io/path, prometheus.io/port) y programar checks de OpenMetrics automáticamente para recopilar métricas de Prometheus en Kubernetes.
Nota: Datadog recomienda utilizar el check de OpenMetrics, ya que es más eficiente y admite totalmente el formato de texto de Prometheus. Utiliza el check de Prometheus sólo cuando el endpoint de métricas no admita un formato de texto.
Requisitos
Datadog Agent v7.27+ o v6.27+ (para checks de pod)
Datadog Cluster Agent v1.11+ (para checks de servicio y endpoint)
Configuración
Es recomendado primero comprobar qué pods y servicios tienen la anotación prometheus.io/scrape=true antes de activar 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 activada la función de extracción de Prometheus, Datadog Agent 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 tal y como se describe en la sección de configuración avanzada.
Nota: Activar esta función sin la configuración avanzada puede causar un aumento significativo de las métricas personalizadas, lo que puede afectar tu facturación. Consulta la sección configuración avanzada para saber cómo recopilar métricas únicamente de un subconjunto de contenedores/pods/servicios.
Configuración básica
Actualiza tu configuración del Datadog Operador para que contenga lo siguiente:
Si el Cluster Agent está habilitado, dentro de su manifiesto cluster-agent-deployment.yaml, añade las siguientes variables de entorno para el contenedor del Cluster Agent:
Esto indica a Datadog Agent que detecte los pods que tienen anotaciones nativas de Prometheus y genere los checks de OpenMetrics correspondientes.
También indica a Datadog Cluster Agent (si está habilitado) que detecte los servicios que tienen anotaciones nativas de Prometheus y genere los checks correspondientes de OpenMetrics.
prometheus.io/scrape=true: obligatorio.
prometheus.io/path: opcional, por defecto es /metrics.
prometheus.io/port: opcional, por defecto es %%port%%, una variable de plantilla que se sustituye por el puerto del contenedor/servicio.
Esta configuración genera un check que recopila todas las métricas expuestas utilizando la configuración por defecto 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 del check de OpenMetrics
Utiliza additionalConfigs.configurations para definir configuraciones adicionales del check de OpenMetrics. Consulta la lista de parámetros de OpenMetrics compatibles que puedes pasar en additionalConfigs.
Reglas personalizadas de Autodiscovery
Utiliza additionalConfigs.autodiscovery para definir reglas personalizadas de Autodiscovery. Estas reglas pueden basarse en nombres de contenedores, anotaciones de Kubernetes o ambos.
Si se definen tanto kubernetes_container_names como kubernetes_annotations, se utiliza la lógica AND (ambas reglas deben coincidir).
Ejemplos
La siguiente configuración se dirige a un contenedor llamado my-app que se ejecuta en un pod con la anotación app=my-app. La configuración del check de OpenMetrics se personaliza para activar la opción send_distribution_buckets y definir un tiempo de espera personalizado de 5 segundos.
Actualiza tu configuración del Datadog Operador para que contenga lo siguiente:
Por defecto, todas las métricas recuperadas por el check genérico de Prometheus se consideran métricas personalizadas. Si estás monitorizando software comercial y crees que merece tener una integración oficial, no dudes en contribuir.
Las integraciones oficiales tienen sus propios directorios específicos. Hay un mecanismo de instancia por defecto en el check genérico para codificar la configuración predeterminada y los metadatos de métricas. Por ejemplo, consulta la integración kube-proxy.