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 :
-
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.
Cliquez sur le nom de votre cluster.
Sur la ligne Fonctionnalités intitulée Cloud Monitoring, cliquez sur l'icône Modifier.
Dans la boîte de dialogue Modifier Cloud Monitoring qui s'affiche, vérifiez que l'option Activer Cloud Monitoring est sélectionnée.
Dans le menu déroulant Composants, sélectionnez les composants cAdvisor/Kubelet à partir desquels vous souhaitez collecter des métriques :
- cAdvisor
- Kubelet
Cliquez sur OK.
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 :
CLUSTER_NAME
: nom du cluster existant.COMPUTE_LOCATION
: emplacement Compute Engine du cluster.
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , s
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
|
|
GAUGE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , s
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
|
|
CUMULATIVE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , By
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
|
|
GAUGE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
CUMULATIVE , DISTRIBUTION , s
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
|
|
CUMULATIVE , DISTRIBUTION , s
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|