Collectez vos métriques Prometheus et OpenMetrics exposées depuis votre application s’exécutant à l’intérieur de Kubernetes en utilisant l’Agent Datadog et les intégrations OpenMetrics ou Prometheus. Par défaut, toutes les métriques récupérées par la vérification générique de Prometheus sont considérées comme des métriques personnalisées.
À partir de la version 6.5.0, l’Agent inclut des vérifications OpenMetrics et Prometheus capables de récupérer les points de terminaison Prometheus. Pour une utilisation plus avancée de l’interface OpenMetricsCheck, y compris l’écriture d’une vérification personnalisée, consultez la section Outils de développement.
Cette page décrit les principes d’utilisation de base de ces checks. Ils vous permettent de scraper des métriques custom à partir d’endpoints Prometheus. Pour obtenir une explication sur le mappage de métriques Prometheus et OpenMetrics avec des métriques Datadog, consultez le guide dédié.
Remarque : Datadog recommande d’utiliser la vérification OpenMetrics car elle est plus efficace et prend entièrement en charge le format texte de Prometheus. Utilisez la vérification Prometheus uniquement lorsque le point de terminaison des métriques ne prend pas en charge un format texte.
Configurez votre vérification OpenMetrics ou Prometheus en utilisant Autodiscovery, en appliquant le annotations suivant à votre pod exposant les métriques OpenMetrics/Prometheus :
Remarque : Les annotations AD v2 ont été introduites dans la version 7.36 de l’Agent Datadog pour simplifier la configuration de l’intégration. Pour les versions précédentes de l’Agent Datadog, utilisez les annotations AD v1.
Correspond au nom du conteneur qui expose les métriques.
<PROMETHEUS_ENDPOINT>
Chemin URL pour les métriques servies par le conteneur, au format Prometheus.
<METRICS_NAMESPACE_PREFIX_FOR_DATADOG>
Définit l’espace de noms à préfixer à chaque métrique lorsqu’elle est visualisée dans Datadog.
<METRIC_TO_FETCH>
Clé des métriques Prometheus à récupérer depuis le point de terminaison Prometheus.
<NEW_METRIC_NAME>
Transforme la clé de métrique <METRIC_TO_FETCH> en <NEW_METRIC_NAME> dans Datadog.
La configuration metrics est une liste de métriques à récupérer en tant que métriques personnalisées. Incluez chaque métrique à récupérer et le nom de métrique souhaité dans Datadog sous forme de paires clé-valeur, par exemple, {"<METRIC_TO_FETCH>":"<NEW_METRIC_NAME>"}. Pour éviter des frais excessifs pour les métriques personnalisées, Datadog recommande de limiter la portée aux seules métriques dont vous avez besoin. Vous pouvez alternativement fournir une liste de chaînes de noms de métriques, interprétées comme des expressions régulières, pour apporter les métriques souhaitées avec leurs noms actuels. Si vous souhaitez toutes les métriques, utilisez alors ".*" plutôt que "*".
Remarque : Les expressions régulières peuvent potentiellement envoyer beaucoup de métriques personnalisées.
Utilisez le Prometheus prometheus.yaml pour lancer un exemple de déploiement Prometheus avec la configuration d’autodécouverte sur le pod :
Remarque : Les annotations AD v2 ont été introduites dans la version 7.36 de l’Agent Datadog pour simplifier la configuration de l’intégration. Pour les versions précédentes de l’Agent Datadog, utilisez les annotations AD v1.
Accédez à votre page Automatisation de flotte et filtrez pour l’intégration openmetrics afin de voir des informations détaillées sur l’état de vos vérifications.
Accédez à votre page Résumé des métriques pour voir les métriques collectées depuis cet exemple de pod. Cette configuration collectera la métrique promhttp_metric_handler_requests, promhttp_metric_handler_requests_in_flight et toutes les métriques exposées commençant par go_memory.
Collecte de métriques avec les annotations Prometheus (Vérification Prometheus)
Avec l’Autodécouverte Prometheus, l’Agent Datadog est capable de détecter les annotations Prometheus natives (par exemple : prometheus.io/scrape, prometheus.io/path, prometheus.io/port) et de planifier automatiquement des vérifications OpenMetrics pour collecter les métriques Prometheus dans Kubernetes.
Remarque : Datadog recommande d’utiliser la vérification OpenMetrics car elle est plus efficace et prend entièrement en charge le format texte de Prometheus. Utilisez la vérification Prometheus uniquement lorsque le point de terminaison des métriques ne prend pas en charge un format texte.
Exigences
Agent Datadog v7.27+ ou v6.27+ (pour les vérifications de Pod)
[Datadog Cluster Agent] v1.11+ (pour les vérifications de service et de point de terminaison)
Configuration
Il est recommandé de vérifier d’abord quels pods et services ont l’annotation prometheus.io/scrape=true avant d’activer cette fonctionnalité. Cela peut être fait avec les commandes suivantes :
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
Une fois la fonctionnalité de récupération Prometheus activée, l’Agent Datadog collecte des métriques personnalisées à partir de ces ressources. Si vous ne souhaitez pas collecter les métriques personnalisées de ces ressources, vous pouvez supprimer cette annotation ou mettre à jour les règles d’Autodécouverte comme décrit dans la section de configuration avancée.
Remarque : Activer cette fonctionnalité sans configuration avancée peut entraîner une augmentation significative des métriques personnalisées, ce qui peut avoir des implications sur la facturation. Consultez la section de configuration avancée pour apprendre à ne collecter des métriques que d’un sous-ensemble de conteneurs/pods/services.
Configuration de base
Mettez à jour la configuration de votre opérateur Datadog pour inclure ce qui suit :
Si le [Datadog Cluster Agent] est activé, dans son manifeste cluster-agent-deployment.yaml, ajoutez les variables d’environnement suivantes pour le conteneur du [Datadog Cluster Agent] :
Grâce à ces lignes, l’Agent Datadog détecte les pods qui possède des annotations Prometheus natives et génère les checks OpenMetrics correspondants.
En outre, lorsqu’il est activé, l’Agent de cluster Datadog détecte également les services qui possèdent des annotations Prometheus natives et génère les checks OpenMetrics correspondants.
prometheus.io/scrape=true: Requis.
prometheus.io/path: Optionnel, par défaut /metrics.
prometheus.io/port : Optionnel, la valeur par défaut est %%port%%, une variable de modèle qui est remplacée par le port du conteneur/service.
Ces paramètres permettent de générer un check qui recueille toutes les métriques exposées, à l’aide de la configuration par défaut de l’intégration OpenMetrics.
Configuration avancée
Vous pouvez configurer davantage la collecte de métriques (au-delà des annotations natives de Prometheus) avec le champ additionalConfigs.
Configurations de vérification OpenMetrics supplémentaires
Utilisez additionalConfigs.configurations pour définir des configurations de vérification OpenMetrics supplémentaires. Consultez la liste des paramètres OpenMetrics pris en charge que vous pouvez passer dans additionalConfigs.
Règles d’autodécouverte personnalisées
Utilisez additionalConfigs.autodiscovery pour définir des règles d’autodécouverte personnalisées. Ces règles peuvent être basées sur des noms de conteneurs, des annotations Kubernetes, ou les deux.
Si kubernetes_container_names et kubernetes_annotations sont tous deux définis, la logique ET est utilisée (les deux règles doivent correspondre).
Exemples
La configuration suivante cible un conteneur nommé my-app s’exécutant dans un pod avec l’annotation app=my-app. La configuration de vérification OpenMetrics est personnalisée pour activer l’option send_distribution_buckets et définir un délai d’attente personnalisé de 5 secondes.
Mettez à jour la configuration de votre opérateur Datadog pour inclure ce qui suit :
Pour DaemonSet, la configuration avancée est définie dans la variable d’environnement DD_PROMETHEUS_SCRAPE_CHECKS, et non dans un champ additionalConfigs.
De l’intégration personnalisée à l’intégration officielle
Par défaut, toutes les métriques récupérées par la vérification générique de Prometheus sont considérées comme des métriques personnalisées. Si vous surveillez un logiciel standard et pensez qu’il mérite une intégration officielle, n’hésitez pas à contribuer !
Les intégrations officielles ont leurs propres répertoires dédiés. Il existe un mécanisme d’instance par défaut dans la vérification générique pour coder en dur la configuration par défaut et les métadonnées des métriques. Par exemple, référez-vous à l’intégration kube-proxy.
Lectures complémentaires
Documentation, liens et articles supplémentaires utiles: