Configurer la collecte de métriques


Ce document explique comment configurer Google Kubernetes Engine (GKE) pour envoyer des métriques à Cloud Monitoring. Dans Cloud Monitoring, les métriques peuvent permettre de renseigner des tableaux de bord personnalisés, générer des alertes et créer des objectifs de niveau de service, ou elles peuvent être récupérés par des services de surveillance tiers à l'aide de l'API Monitoring.

GKE fournit plusieurs sources de métriques :

  • Métriques définies par le système : métriques issues des composants système essentiels, décrivant les ressources de bas niveau telles que le processeur, la mémoire et le stockage.
  • Google Cloud Managed Service pour Prometheus : vous permet de surveiller vos charges de travail et d'envoyer des alertes à l'aide de Prometheus, sans avoir à gérer et faire fonctionner manuellement Prometheus à grande échelle.
  • Packages de métriques d'observabilité :

    • Métriques du plan de contrôle : métriques exportées à partir de certains composants du plan de contrôle, tels que le serveur d'API et le programmeur.
    • Métriques d'état Kube : ensemble organisé de métriques exportées à partir du service d'état Kube, utilisé pour surveiller l'état des objets Kubernetes tels que des pods, des déploiements, etc. Pour obtenir l'ensemble des métriques incluses, consultez la section Utiliser les métriques d'état Kube.

      Le package d'état Kube est une solution gérée. Si vous avez besoin d'une plus grande flexibilité (par exemple, si vous devez collecter des métriques supplémentaires, gérer des intervalles de scrape ou de scraping d'autres ressources), vous pouvez désactiver le package, s'il est activé, et déployer votre propre instance du service de métriques d'état Kube Open Source. Pour en savoir plus, consultez la documentation de l'exportateur Google Cloud Managed Service pour Prometheus afin de connaître les métriques Kube.

    • cAdvisor/Kubelet : ensemble organisé de métriques cAdvisor et Kubelet. Pour obtenir l'ensemble des métriques incluses, consultez la section Utiliser les métriques cAdvisor/Kubelet.

      Le package cAdvisor/Kubelet est une solution gérée. Si vous avez besoin d'une plus grande flexibilité (par exemple, si vous devez collecter des métriques supplémentaires, gérer des intervalles de scrape ou de scraping d'autres ressources), vous pouvez désactiver le package s'il est activé, puis déployer votre propre instance des services de métriques Open Source cAdvisor/Kubelet.

    • Métriques du gestionnaire GPU de centre de données (DCGM) NVIDIA : métriques du DCGM qui fournissent une vue complète de l'état, des performances et de l'utilisation des GPU.

Métriques système

Lorsqu'un cluster est créé, GKE collecte par défaut certaines métriques émises par les composants système.

Vous pouvez choisir d'envoyer ou non les métriques de votre cluster GKE à Cloud Monitoring. Si vous choisissez d'envoyer des métriques à Cloud Monitoring, vous devez envoyer des métriques système.

Toutes les métriques GKE définies par le système sont ingérées dans Cloud Monitoring avec le préfixe kubernetes.io.

Tarifs

Cloud Monitoring ne facture pas l'ingestion de métriques système GKE. Pour en savoir plus, consultez la tarification Cloud Monitoring.

Configurer la collecte de métriques définies par le système

Pour activer la collecte de métriques définies par le système, transmettez la valeur SYSTEM à l'option --monitoring de la commande gcloud container clusters create ou gcloud container clusters update.

Pour désactiver la collecte de métriques définies par le système, utilisez la valeur NONE pour l'option --monitoring. Si la collecte de métriques système est désactivée, les informations de base telles que l'utilisation du processeur, de la mémoire et du disque ne sont pas disponibles pour un cluster lorsque vous consultez les métriques d'observabilité.

Pour les clusters GKE Autopilot, vous ne pouvez pas désactiver la collecte des métriques définies par le système.

Consultez la section Observabilité pour GKE pour obtenir plus d'informations sur l'intégration de Cloud Monitoring à GKE.

Pour configurer la collecte de métriques système à l'aide de Terraform, consultez le bloc monitoring_config dans le registre Terraform pour google_container_cluster. Pour obtenir des informations générales sur l'utilisation de Google Cloud avec Terraform, consultez la page Terraform avec Google Cloud.

Liste des métriques définies par le système

Les métriques système incluent des métriques issues des composants système essentiels pour Kubernetes. Pour obtenir la liste de ces métriques, consultez Métriques système GKE.

Si vous activez Cloud Monitoring pour votre cluster, vous ne pouvez pas désactiver la surveillance du système (--monitoring=SYSTEM).

Journaux activés par défaut dans GKE Enterprise

Dans les tableaux suivants, une coche () indique les journaux et les métriques activés par défaut lorsque vous créez et enregistrez un cluster dans un projet avec GKE Enterprise activé :

Nom de la métrique Autopilot Standard
Système
Serveur d'API
Programmeur
Gestionnaire de contrôleurs
Volume persistant (stockage)
Pods
Déploiement
StatefulState
DaemonSet
HorizonalPodAutoscaler
cAdvisor
Kubelet
Métriques du gestionnaire GPU de centre de données (DCGM) NVIDIA

Tous les clusters enregistrés dans un projet sur lequel GKE Enterprise est activé peuvent utiliser les packages pour les métriques du plan de contrôle, les Kube State Metrics et les métriques cAdvisor/Kubelet sans frais supplémentaires. Sinon, ces métriques entraînent des frais Cloud Monitoring.

Résoudre les problèmes liés aux métriques système

Si les métriques système ne sont pas disponibles comme prévu dans Cloud Monitoring, consultez la page Résoudre les problèmes liés aux métriques système.

Package : métriques du plan de contrôle

Vous pouvez configurer un cluster GKE pour envoyer certaines métriques émises par le serveur d'API Kubernetes, le programmeur et le gestionnaire de contrôleurs à Cloud Monitoring.

Pour en savoir plus, consultez la page Collecter et afficher les métriques du plan de contrôle.

Package : métriques d'état Kube

Vous pouvez configurer un cluster GKE pour envoyer un ensemble organisé de métriques d'état Kube au format Prometheus à Cloud Monitoring. Ce package de métriques d'état Kube inclut des métriques pour les pods, les déploiements, les StatefulSets, les DaemonSets, les HorizontalPodAutoscaler, les volumes persistants et les revendications de volume persistant.

Pour en savoir plus, consultez la page Collecter et afficher les Kube State Metrics.

Package : métriques cAdvisor/Kubelet

Vous pouvez configurer un cluster GKE pour envoyer un ensemble organisé de métriques cAdvisor/Kubelet au format Prometheus à Cloud Monitoring. L'ensemble organisé de métriques constitue un sous-ensemble du grand ensemble de métriques cAdvisor/Kubelet intégrées par défaut à chaque déploiement Kubernetes. L'ensemble de métriques cAdvisor/Kubelet est organisé de façon à fournir les métriques les plus utiles, réduisant le volume d'ingestion et les coûts associés.

Pour plus d'informations, consultez la page Collecter et afficher les métriques cAdvisor/Kubelet.

Package : métriques du gestionnaire GPU de centre de données (DCGM) NVIDIA

Vous pouvez surveiller l'utilisation, les performances et l'état des GPU en configurant GKE pour envoyer des métriques du gestionnaire GPU de centre de données (DCGM) NVIDIA à Cloud Monitoring.

Pour en savoir plus, consultez la page Collecter et afficher les métriques du gestionnaire gestionnaire GPU de centre de données (DCGM) NVIDIA.

Désactiver les packages de métriques

Vous pouvez désactiver l'utilisation des packages de métriques dans le cluster. Vous pouvez désactiver certains packages afin de réduire les coûts ou si vous utilisez un autre mécanisme pour collecter les métriques, tel que Google Cloud Managed Service pour Prometheus et un exportateur.

Console

Pour désactiver la collecte de métriques à partir de l'onglet Détails du cluster, procédez comme suit :

  1. Dans la console Cloud Console, accédez à la page des clusters Kubernetes.

    Accéder à la page Clusters Kubernetes

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Kubernetes Engine.

  2. Cliquez sur le nom de votre cluster.

  3. Sur la ligne Fonctionnalités intitulée Cloud Monitoring, cliquez sur l'icône Modifier.

  4. Dans le menu déroulant Composants, effacez les composants de métriques que vous souhaitez désactiver.

  5. Cliquez sur OK.

  6. Cliquez sur Save Changes (Enregistrer les modifications).

gcloud

  1. Ouvrez une fenêtre de terminal avec Google Cloud SDK et Google Cloud CLI installés. L'une des méthodes consiste à utiliser Cloud Shell :

  2. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  3. Appelez la commande gcloud container clusters update et transmettez un ensemble de valeurs mis à jour à l'option --monitoring. L'ensemble de valeurs fourni à l'option --monitoring remplace tous les paramètres précédents.

    Par exemple, pour désactiver la collecte de toutes les métriques à l'exception des métriques système, exécutez la commande suivante :

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-managed-prometheus \
        --monitoring=SYSTEM
    

    Cette commande désactive la collecte de tous les packages de métriques précédemment configurés.

Terraform

Pour configurer la collecte de métriques à l'aide de Terraform, consultez le bloc monitoring_config dans le registre Terraform pour google_container_cluster. Pour obtenir des informations générales sur l'utilisation de Google Cloud avec Terraform, consultez la page Terraform avec Google Cloud.

Comprendre votre facture Monitoring

Vous pouvez utiliser Cloud Monitoring pour identifier le plan de contrôle ou les métriques d'état Kube qui écrivent le plus grand nombre d'échantillons. Ces métriques représentent la part la plus importante des coûts. Après avoir identifié les métriques les plus coûteuses, vous pouvez modifier vos configurations de scraping pour filtrer ces métriques de manière appropriée.

La page Gestion des métriques de Cloud Monitoring fournit des informations qui peuvent vous aider à contrôler les sommes que vous consacrez aux métriques facturables, sans affecter l'observabilité. La page Gestion des métriques fournit les informations suivantes :

  • Les volumes d'ingestion pour la facturation à base d'octets et celle à base d'exemples, englobant les différents domaines de métriques et des métriques individuelles
  • Les données sur les libellés et la cardinalité des métriques
  • Nombre de lectures pour chaque métrique.
  • L'utilisation de métriques dans les règles d'alerte et les tableaux de bord personnalisés
  • Les taux d'erreurs d'écriture de métriques

Vous pouvez également utiliser la gestion des métriques pour exclure les métriques inutiles, ce qui élimine le coût de leur ingestion.

Procédez comme suit pour afficher la page Gestion des métriques :

  1. Dans la console Google Cloud, accédez à la page  Gestion des métriques :

    Accédez à la page Gestion des métriques

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.

  2. Dans la barre d'outils, sélectionnez votre période. Par défaut, la page Gestion des métriques affiche des informations sur les métriques collectées au cours du jour précédent.

Pour en savoir plus sur la page Gestion des métriques, consultez la section Afficher et gérer l'utilisation des métriques.

Pour identifier les métriques du plan de contrôle ou d'état kube qui possèdent le plus grand nombre d'échantillons en cours d'ingestion, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page  Gestion des métriques :

    Accédez à la page Gestion des métriques

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.

  2. Dans le tableau de données Échantillons facturables ingérés, cliquez sur Afficher les graphiques.

  3. Recherchez le graphique Ingestion de volumes d'espaces de noms, puis cliquez sur  Autres options des graphiques.

  4. Dans Métrique, vérifiez que la ressource et la métrique suivantes sont sélectionnées :
    Metric Ingestion Attribution et Samples written by attribution id.

  5. Sur la page Filtres, procédez comme suit :

    1. Vérifiez que la valeur du champ Étiquette est attribution_dimension.

    2. Vérifiez que la valeur du champ Comparaison est = (equals).

    3. Dans le champ Value (Valeur), sélectionnez cluster.

  6. Désactivez le paramètre Grouper par.

  7. Vous pouvez aussi filtrer uniquement suivant certaines métriques. Par exemple, les métriques du serveur d'API du plan de contrôle incluent toutes les valeurs "apiserver" en tant que nom de métrique, et les métriques de pod d'état Kube incluent toutes "kube_pod" dans le nom de la métrique, afin de pouvoir filtrer les métriques contenant ces chaînes :

    • Cliquez sur Ajouter un filtre.

    • Dans le champ Libellé, sélectionnez metric_type.

    • Dans le champ Comparaison, sélectionnez =~ (equals regex).

    • Dans le champ Valeur, saisissez .*apiserver.* ou .*kube_pod.*.

  8. Vous pouvez également regrouper le nombre d'échantillons ingérés suivant la région ou le projet GKE :

    • Cliquez sur Grouper par.

    • Assurez-vous que metric_type est sélectionné.

    • Pour regrouper les données par région GKE, sélectionnez emplacement.

    • Pour regrouper les données par projet, sélectionnez project_id.

    • Cliquez sur OK.

  9. Vous pouvez également regrouper le nombre d'échantillons ingérés suivant le nom du cluster GKE :

    • Cliquez sur Grouper par.

    • Pour regrouper les données par nom de cluster GKE, assurez-vous que les options attribution_dimension et attribution_id sont sélectionnées.

    • Cliquez sur OK.

  10. Pour afficher le volume d'ingestion de chacune des métriques, sélectionnez Tout dans le bouton Graphique Table Tout. La table affiche le volume ingéré pour chaque métrique dans la colonne Valeur.

    Cliquez deux fois sur l'en-tête de colonne Valeur pour trier les métriques par ordre décroissant de volume d'ingestion.

Ces étapes montrent les métriques présentant le taux d'échantillons le plus élevé ingéré dans Cloud Monitoring. Étant donné que les métriques des packages d'observabilité sont facturées en fonction du nombre d'échantillons ingérés, prêtez une attention particulière aux métriques dont le taux d'échantillonnage est le plus élevé.

Autres métriques

Outre les métriques système et les packages de métriques décrits dans ce document, les métriques Istio sont également disponibles pour les clusters GKE. Pour en savoir plus sur les tarifs, consultez la page Tarifs de Cloud Monitoring.

Métriques disponibles

Le tableau suivant indique les valeurs acceptées pour l'option --monitoring pour les commandes create et update.

Source Valeur --monitoring Métriques collectées
Aucune NONE Aucune métrique envoyée à Cloud Monitoring. Aucun agent de collecte de métriques n'est installé dans le cluster. Cette valeur n'est pas acceptée pour les clusters Autopilot.
Image SYSTEM Métriques des composants système essentiels requises pour Kubernetes. Pour obtenir la liste complète des métriques, consultez la page Métriques Kubernetes.
Serveur d'API API_SERVER Métriques de kube-apiserver. Pour obtenir la liste complète des métriques, consultez la page Métriques du serveur d'API.
Programmeur SCHEDULER Métriques de kube-scheduler. Pour obtenir la liste complète des métriques, consultez la page Métriques du programmeur.
Gestionnaire de contrôleurs CONTROLLER_MANAGER Métriques de kube-controller-manager. Pour obtenir la liste complète des métriques, consultez la page Métriques du gestionnaire de contrôleurs.
Volume persistant (stockage) STORAGE Métriques de stockage provenant de kube-state-metrics. Inclut les métriques pour les volumes persistants et les revendications de volume persistant. Pour obtenir la liste complète des métriques, consultez la page Métriques de stockage.
Pod POD Métriques de pod provenant de kube-state-metrics. Pour obtenir la liste complète des métriques, consultez la page Métriques de pod.
Déploiement DEPLOYMENT Métriques de déploiement provenant de kube-state-metrics. Pour obtenir la liste complète des métriques, consultez la page Métriques de déploiement.
StatefulSet STATEFULSET Métriques StatefulSet provenant de kube-state-metrics. Pour obtenir la liste complète des métriques, consultez la page Métriques StatefulSet.
DaemonSet DAEMONSET Métriques DaemonSet provenant de kube-state-metrics. Pour obtenir la liste complète des métriques, consultez la page Métriques DaemonSet.
HorizonalPodAutoscaler HPA Métriques HPA provenant de kube-state-metrics. Consultez la liste complète des métriques HorizonalPodAutoscaler.
cAdvisor CADVISOR Métriques cAdvisor du package de métriques cAdvisor/Kubelet. Pour obtenir la liste complète des métriques, consultez la page Métriques cAdvisor.
Kubelet KUBELET Métriques Kubelet du package cAdvisor/Kubelet. Pour obtenir la liste complète des métriques, consultez la page Métriques Kubelet.
Métriques du gestionnaire GPU de centre de données (DCGM) NVIDIA DCGM Métriques du gestionnaire GPU de centre de données (DCGM) NVIDIA.

Vous pouvez également collecter des métriques de style Prometheus exposées par n'importe quelle charge de travail GKE en utilisant le service géré Google Cloud for Prometheus, ce qui vous permet de surveiller vos charges de travail et d'envoyer des alertes via Prometheus, sans avoir à gérer et exploiter manuellement Prometheus à grande échelle.

Étape suivante