Collecter et afficher les métriques cAdvisor/Kubelet


Cette page explique comment configurer un cluster Google Kubernetes Engine (GKE) pour envoyer un ensemble organisé de métriques cAdvisor/Kubelet à Cloud Monitoring à l'aide de Google Cloud Managed Service pour Prometheus. Cette page décrit également le format de ces métriques lorsqu'elles sont écrites dans Monitoring et comment les interroger.

L'ensemble de métriques organisé constitue un sous-ensemble de l'ensemble de métriques cAdvisor/Kubelet intégrées par défaut à chaque déploiement Kubernetes. Il comprend des métriques liées à la réduction du volume d'ingestion et aux coûts associés.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Activez l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Si vous souhaitez utiliser Google Cloud CLI pour cette tâche, installez puis initialisez gcloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande gcloud components update.

Conditions requises

Pour collecter des métriques cAdvisor/Kubelet, votre cluster GKE doit répondre aux exigences suivantes :

  • Le cluster doit exécuter GKE version 1.29.3-gke.1093000 ou ultérieure.
  • Les métriques système doivent être activées sur le cluster. Les métriques système sont activées par défaut lorsque vous créez un cluster exécutant la version 1.29.3-gke.1093000 ou ultérieure.
  • La collecte gérée de Google Cloud Managed Service pour Prometheus est activée sur le cluster. La collecte gérée est activée par défaut lorsque vous créez un cluster exécutant la version 1.29.3-gke.1093000 ou ultérieure.

Configurer la collecte de métriques cAdvisor/Kubelet

Vous pouvez activer les métriques cAdvisor/Kubelet dans un cluster GKE existant à l'aide de la console Google Cloud, de gcloud CLI ou de Terraform.

Console

Pour configurer les métriques cAdvisor/Kubelet à 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 la boîte de dialogue Modifier Cloud Monitoring qui s'affiche, vérifiez que l'option Activer Cloud Monitoring est sélectionnée.

  5. Dans le menu déroulant Composants, sélectionnez les composants cAdvisor/Kubelet à partir desquels vous souhaitez collecter des métriques :

    • cAdvisor
    • Kubelet
  6. Cliquez sur OK.

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

gcloud

Mettez à jour votre cluster pour collecter des métriques :

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

Remplacez les éléments suivants :

L'ensemble de valeurs fourni à l'option monitoring remplace tous les paramètres précédents.

Terraform

Pour configurer la collecte de métriques cAdvisor/Kubelet à 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.

Format de la métrique

Toutes les métriques cAdvisor/Kubelet de Kubernetes écrites dans Cloud Monitoring utilisent le type de ressource prometheus_target. Chaque nom de métrique inclut un préfixe prometheus.googleapis.com/ et un suffixe indiquant le type de métrique Prometheus, tel que /gauge, /histogram ou /counter. En dehors de cela, chaque nom de métrique est identique au nom de métrique exposé par Kubernetes Open Source.

Exporter depuis Cloud Monitoring

Les métriques cAdvisor/Kubelet peuvent être exportées depuis Cloud Monitoring à l'aide de l'API Cloud Monitoring. Étant donné que toutes les métriques cAdvisor/Kubelet sont ingérées à l'aide de Google Cloud Managed Service pour Prometheus, les métriques cAdvisor/Kubelet peuvent être interrogées à l'aide du langage de requête Prometheus (PromQL).. Vous pouvez également les interroger à l'aide du langage MQL (Monitoring Query Language).

Interroger les métriques

Lorsque vous interrogez les métriques cAdvisor/Kubelet, le nom que vous utilisez varie selon que vous utilisez des fonctionnalités basées sur PromQL ou Cloud Monitoring, telles que MQL ou l' interface basée sur des menus de l'Explorateur de métriques.

Les tableaux suivants des métriques cAdvisor/Kubelet présentent deux versions de chaque nom de métrique :

  • Nom de la métrique PromQL : lors de l'utilisation de PromQL sur des pages Cloud Monitoring de la console Google Cloud ou dans les champs PromQL de l'API Cloud Monitoring, utilisez le nom de la métrique PromQL.
  • Nom de la métrique Cloud Monitoring : lorsque vous utilisez d'autres fonctionnalités de Cloud Monitoring, utilisez le nom de la métrique Cloud Monitoring répertorié dans les tableaux ci-dessous. Ce nom doit être précédé du préfixe prometheus.googleapis.com/, qui a été omis dans les entrées du tableau.

Métriques cAdvisor

Les noms des métriques Cloud Monitoring figurant dans ce tableau doivent être précédés du préfixe prometheus.googleapis.com/. Ce préfixe a été omis dans les entrées du tableau.

Nom de la métrique PromQL
Nom de la métrique Cloud Monitoring
Genre, Type, Unité
Ressources surveillées
Version de GKE requise
Description
Libellés
container_cpu_cfs_periods_total
container_cpu_cfs_periods_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Nombre d'intervalles de la période d'application écoulée. Cette valeur est échantillonnée toutes les 30 secondes.

cpu
container_cpu_cfs_throttled_periods_total
container_cpu_cfs_throttled_periods_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Nombre d'intervalles de période limitées. Cette valeur est échantillonnée toutes les 30 secondes.

cpu
container_cpu_usage_seconds_total
container_cpu_usage_seconds_total/counter
CUMULATIVEDOUBLEs
prometheus_target
1.29.3-gke.1093000
Temps CPU cumulé consommé. Cette valeur est échantillonnée toutes les 30 secondes.

cpu
container_fs_limit_bytes
container_fs_limit_bytes/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Nombre d'octets pouvant être consommés par le conteneur sur ce système de fichiers. Cette valeur est échantillonnée toutes les 30 secondes.

disk
container_fs_read_seconds_total
container_fs_read_seconds_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Nombre cumulé de lectures terminées. Cette valeur est échantillonnée toutes les 30 secondes.

diskIO
container_fs_reads_bytes_total
container_fs_reads_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Nombre cumulé d'octets lus. Cette valeur est échantillonnée toutes les 30 secondes.

diskIO
container_fs_reads_total
container_fs_reads_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Nombre cumulé de lectures terminées. Cette valeur est échantillonnée toutes les 30 secondes.

diskIO
container_fs_usage_bytes
container_fs_usage_bytes/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Nombre d'octets consommés par le conteneur sur ce système de fichiers. Cette valeur est échantillonnée toutes les 30 secondes.

disk
container_fs_write_seconds_total
container_fs_write_seconds_total/counter
CUMULATIVEDOUBLEs
prometheus_target
1.29.3-gke.1093000
Nombre cumulé de secondes passées à écrire. Cette valeur est échantillonnée toutes les 30 secondes.

diskIO
container_fs_writes_bytes_total
container_fs_writes_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Nombre cumulé d'octets écrits. Cette valeur est échantillonnée toutes les 30 secondes.

diskIO
container_fs_writes_total
container_fs_writes_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Nombre cumulé d'écritures terminées. Cette valeur est échantillonnée toutes les 30 secondes.

diskIO
container_memory_rss
container_memory_rss/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Taille du format RSS. Cette valeur est échantillonnée toutes les 30 secondes.

memory
container_memory_working_set_bytes
container_memory_working_set_bytes/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Ensemble de travail actuel. Cette valeur est échantillonnée toutes les 30 secondes.

memory
container_network_receive_bytes_total
container_network_receive_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Nombre cumulé d'octets reçus. Cette valeur est échantillonnée toutes les 30 secondes.

network
container_network_receive_packets_dropped_total
container_network_receive_packets_dropped_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Nombre cumulé de paquets perdus lors de la réception. Cette valeur est échantillonnée toutes les 30 secondes.

network
container_network_receive_packets_total
container_network_receive_packets_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Nombre cumulé de paquets reçus. Cette valeur est échantillonnée toutes les 30 secondes.

network
container_network_transmit_bytes_total
container_network_transmit_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Nombre cumulé d'octets transmis. Cette valeur est échantillonnée toutes les 30 secondes.

network
container_network_transmit_packets_dropped_total
container_network_transmit_packets_dropped_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Nombre cumulé de paquets perdus lors de la transmission. Cette valeur est échantillonnée toutes les 30 secondes.

network
container_network_transmit_packets_total
container_network_transmit_packets_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Nombre cumulé de paquets transmis. Cette valeur est échantillonnée toutes les 30 secondes.

network

Métriques kubelet

Les noms des métriques Cloud Monitoring figurant dans ce tableau doivent être précédés du préfixe prometheus.googleapis.com/. Ce préfixe a été omis dans les entrées du tableau.

Nom de la métrique PromQL
Nom de la métrique Cloud Monitoring
Genre, Type, Unité
Ressources surveillées
Version de GKE requise
Description
Libellés
kubelet_certificate_manager_server_ttl_seconds
kubelet_certificate_manager_server_ttl_seconds/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Jauge de la valeur TTL (Time To Live) la plus courte du certificat de diffusion du Kubelet. La valeur est exprimée en secondes jusqu'à l'expiration du certificat (négatif si celui-ci a déjà expiré). Si le certificat de diffusion n'est pas valide ou n'est pas utilisé, la valeur est +INF. Cette valeur est échantillonnée toutes les 30 secondes.

 
kubelet_node_name
kubelet_node_name/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Nom du nœud. Le nombre est toujours égal à 1. Cette valeur est échantillonnée toutes les 30 secondes.

node
kubelet_pleg_relist_duration_seconds
kubelet_pleg_relist_duration_seconds/histogram
CUMULATIVEDISTRIBUTIONs
prometheus_target
1.29.3-gke.1093000
Durée en secondes pour répertorier des pods dans PLEG. Cette valeur est échantillonnée toutes les 30 secondes.

 
kubelet_pod_worker_duration_seconds
kubelet_pod_worker_duration_seconds/histogram
CUMULATIVEDISTRIBUTIONs
prometheus_target
1.29.3-gke.1093000
Durée de synchronisation d'un pod unique en secondes. Ventilées par type d'opération : création, mise à jour ou synchronisation. Cette valeur est échantillonnée toutes les 30 secondes.

operation_type
kubelet_running_containers
kubelet_running_containers/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Nombre de conteneurs en cours d'exécution. Cette valeur est échantillonnée toutes les 30 secondes.

container_state
kubelet_running_pods
kubelet_running_pods/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Nombre de pods contenant un bac à sable de pod en cours d'exécution. Cette valeur est échantillonnée toutes les 30 secondes.

 
kubelet_runtime_operations_total
kubelet_runtime_operations_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Nombre cumulé d'opérations d'exécution par type d'opération. Cette valeur est échantillonnée toutes les 30 secondes.

operation_type
kubelet_volume_stats_available_bytes
kubelet_volume_stats_available_bytes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Nombre d'octets disponibles dans le volume. Cette valeur est échantillonnée toutes les 30 secondes.

namespace
persistentvolumeclaim
kubelet_volume_stats_capacity_bytes
kubelet_volume_stats_capacity_bytes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Capacité en octets du volume. Cette valeur est échantillonnée toutes les 30 secondes.

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes
kubelet_volume_stats_inodes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Nombre maximal d'inodes dans le volume. Cette valeur est échantillonnée toutes les 30 secondes.

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes_free
kubelet_volume_stats_inodes_free/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Nombre d'inodes libres dans le volume. Cette valeur est échantillonnée toutes les 30 secondes.

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes_used
kubelet_volume_stats_inodes_used/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Nombre d'inodes utilisés dans le volume. Cette valeur est échantillonnée toutes les 30 secondes.

namespace
persistentvolumeclaim
kubelet_volume_stats_used_bytes
kubelet_volume_stats_used_bytes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Nombre d'octets utilisés dans le volume. Cette valeur est échantillonnée toutes les 30 secondes.

namespace
persistentvolumeclaim