Raccogliere e visualizzare le metriche cAdvisor/Kubelet


Questa pagina descrive come configurare un cluster Google Kubernetes Engine (GKE) per inviare un insieme selezionato di metriche cAdvisor/Kubelet a Cloud Monitoring utilizzando Google Cloud Managed Service per Prometheus. Questa pagina descrive anche come vengono formattate queste metriche quando vengono scritte in Monitoraggio e come eseguire query sulle metriche.

L'insieme selezionato di metriche è un sottoinsieme dell'insieme di metriche cAdvisor/Kubelet integrate in ogni deployment Kubernetes per impostazione predefinita e include le metriche relative alla riduzione del volume di importazione e costi associati.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:

  • Attiva l'API Google Kubernetes Engine.
  • Attiva l'API Google Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installa e poi inizializza gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo gcloud components update.

Requisiti

Per raccogliere le metriche cAdvisor/Kubelet, il tuo cluster GKE deve soddisfare i seguenti requisiti:

  • Il cluster deve eseguire GKE versione 1.29.3-gke.1093000 o successive.
  • Nel cluster devono essere attivate le metriche di sistema. Le metriche di sistema sono abilitate per impostazione predefinita quando crei un cluster che esegue la versione 1.29.3-gke.1093000 o successive.
  • Nel cluster è stata attivata la raccolta gestita di Google Cloud Managed Service per Prometheus. La raccolta gestita è attivata per impostazione predefinita quando crei un cluster che esegue la versione 1.29.3-gke.1093000 o successive.

Configurazione della raccolta delle metriche cAdvisor/Kubelet

Puoi abilitare le metriche cAdvisor/Kubelet in un cluster GKE esistente utilizzando la console Google Cloud, gcloud CLI o Terraform.

Console

Per configurare le metriche cAdvisor/Kubelet dalla scheda Dettagli per il cluster:

  1. Nella console Google Cloud, vai alla pagina Cluster Kubernetes:

    Vai a Cluster Kubernetes

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Kubernetes Engine.

  2. Fai clic sul nome del cluster.

  3. Nella riga Funzionalità etichettata Monitoraggio cloud, fai clic sull'icona Modifica.

  4. Nella finestra di dialogo Modifica monitoraggio cloud visualizzata, verifica che sia selezionata l'opzione Abilita monitoraggio cloud.

  5. Nel menu a discesa Componenti, seleziona i componenti cAdvisor/Kubelet da cui vuoi raccogliere le metriche:

    • cAdvisor
    • Kubelet
  6. Fai clic su OK.

  7. Fai clic su Salva modifiche.

gcloud

Aggiorna il cluster per raccogliere le metriche:

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

Sostituisci quanto segue:

L'insieme di valori specificati per il flag monitoring sostituisce qualsiasi impostazione precedente.

Terraform

Per configurare la raccolta delle metriche di cAdvisor/Kubelet utilizzando Terraform, consulta il blocco monitoring_config nel registro Terraform per google_container_cluster. Per informazioni generali sull'utilizzo di Google Cloud con Terraform, consulta Terraform con Google Cloud.

Formato della metrica

Tutte le metriche cAdvisor/Kubelet di Kubernetes scritte in Cloud Monitoring utilizzano il tipo di risorsa prometheus_target. A ogni nome della metrica è associato il prefisso prometheus.googleapis.com/ e un suffisso che indica il tipo di metrica Prometheus, ad esempio /gauge, /histogram o /counter. In caso contrario, ogni nome della metrica è identico al nome della metrica esposto da Kubernetes open source.

Esportazione da Cloud Monitoring

Le metriche cAdvisor/Kubelet possono essere esportate da Cloud Monitoring utilizzando l'API Cloud Monitoring. Poiché tutte le metriche cAdvisor/Kubelet vengono importate utilizzando Google Cloud Managed Service per Prometheus, è possibile eseguire query sulle metriche cAdvisor/Kubelet utilizzando Prometheus Query Language (PromQL). È anche possibile eseguire query utilizzando Monitoring Query Language (MQL).

Eseguire query sulle metriche

Quando esegui query sulle metriche cAdvisor/Kubelet, il nome che utilizzi dipende dal fatto che tu stia utilizzando PromQL o funzionalità basate su Cloud Monitoring come MQL o l' interfaccia basata su menu di Metrics Explorer.

Le seguenti tabelle di metriche cAdvisor/Kubelet mostrano due versioni di ciascun nome di metrica:

  • Nome della metrica PromQL: quando utilizzi PromQL nelle pagine di Cloud Monitoring della console Google Cloud o nei campi PromQL dell'API Cloud Monitoring, utilizza il nome della metrica PromQL.
  • Nome della metrica Cloud Monitoring Quando utilizzi altre funzionalità di Cloud Monitoring, utilizza il nome della metrica Cloud Monitoring riportato nelle tabelle seguenti. A questo nome deve essere anteposto il prefisso prometheus.googleapis.com/, che è stato omesso dalle voci della tabella.

Metriche cAdvisor

I nomi delle metriche di Cloud Monitoring in questa tabella devono avere il prefisso prometheus.googleapis.com/. Questo prefisso è stato omesso dalle voci della tabella.

Nome della metrica PromQL
Nome della metrica Cloud Monitoring
Tipo, Tipo, Unità
Risorse monitorate
Versione GKE obbligatoria
Descrizione
Etichette
container_cpu_cfs_periods_total
container_cpu_cfs_periods_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Numero di intervalli del periodo di applicazione trascorsi. Campionamento eseguito ogni 30 secondi.

cpu
container_cpu_cfs_throttled_periods_total
container_cpu_cfs_throttled_periods_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Numero di intervalli di periodo limitati. Campionamento eseguito ogni 30 secondi.

cpu
container_cpu_usage_seconds_total
container_cpu_usage_seconds_total/counter
CUMULATIVEDOUBLEs
prometheus_target
1.29.3-gke.1093000
Tempo di CPU cumulativo consumato. Campionamento eseguito ogni 30 secondi.

cpu
container_fs_limit_bytes
container_fs_limit_bytes/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Numero di byte che possono essere consumati dal contenitore su questo filesystem. Campionamento eseguito ogni 30 secondi.

disk
container_fs_read_seconds_total
container_fs_read_seconds_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Conteggio cumulativo delle letture completate. Campionamento eseguito ogni 30 secondi.

diskIO
container_fs_reads_bytes_total
container_fs_reads_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Conteggio cumulativo dei byte letti. Campionamento eseguito ogni 30 secondi.

diskIO
container_fs_reads_total
container_fs_reads_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Conteggio cumulativo delle letture completate. Campionamento eseguito ogni 30 secondi.

diskIO
container_fs_usage_bytes
container_fs_usage_bytes/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Numero di byte consumati dal contenitore su questo filesystem. Campionamento eseguito ogni 30 secondi.

disk
container_fs_write_seconds_total
container_fs_write_seconds_total/counter
CUMULATIVEDOUBLEs
prometheus_target
1.29.3-gke.1093000
Conteggio cumulativo dei secondi impiegati per la scrittura. Campionamento eseguito ogni 30 secondi.

diskIO
container_fs_writes_bytes_total
container_fs_writes_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Conteggio cumulativo dei byte scritti. Campionamento eseguito ogni 30 secondi.

diskIO
container_fs_writes_total
container_fs_writes_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Conteggio cumulativo delle scritture completate. Campionamento eseguito ogni 30 secondi.

diskIO
container_memory_rss
container_memory_rss/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Dimensioni del feed RSS. Campionamento eseguito ogni 30 secondi.

memory
container_memory_working_set_bytes
container_memory_working_set_bytes/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Set di lavoro corrente. Campionamento eseguito ogni 30 secondi.

memory
container_network_receive_bytes_total
container_network_receive_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Conteggio cumulativo dei byte ricevuti. Campionamento eseguito ogni 30 secondi.

network
container_network_receive_packets_dropped_total
container_network_receive_packets_dropped_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Conteggio cumulativo dei pacchetti persi durante la ricezione. Campionamento eseguito ogni 30 secondi.

network
container_network_receive_packets_total
container_network_receive_packets_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Conteggio cumulativo dei pacchetti ricevuti. Campionamento eseguito ogni 30 secondi.

network
container_network_transmit_bytes_total
container_network_transmit_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Conteggio cumulativo dei byte trasmessi. Campionamento eseguito ogni 30 secondi.

network
container_network_transmit_packets_dropped_total
container_network_transmit_packets_dropped_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Conteggio cumulativo dei pacchetti persi durante la trasmissione. Campionamento eseguito ogni 30 secondi.

network
container_network_transmit_packets_total
container_network_transmit_packets_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Conteggio cumulativo dei pacchetti trasmessi. Campionamento eseguito ogni 30 secondi.

network

Metriche Kubelet

I nomi delle metriche di Cloud Monitoring in questa tabella devono avere il prefisso prometheus.googleapis.com/. Questo prefisso è stato omesso dalle voci della tabella.

Nome della metrica PromQL
Nome della metrica Cloud Monitoring
Tipo, Tipo, Unità
Risorse monitorate
Versione GKE obbligatoria
Descrizione
Etichette
kubelet_certificate_manager_server_ttl_seconds
kubelet_certificate_manager_server_ttl_seconds/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Indicatore del TTL (time-to-live) più breve del certificato di servizio di Kubelet. Il valore è in secondi fino alla scadenza del certificato (negativo se già scaduto). Se il certificato di pubblicazione non è valido o non viene utilizzato, il valore sarà +INF. Campionamento eseguito ogni 30 secondi.

 
kubelet_node_name
kubelet_node_name/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Il nome del nodo. Il conteggio è sempre 1. Campionamento eseguito ogni 30 secondi.

node
kubelet_pleg_relist_duration_seconds
kubelet_pleg_relist_duration_seconds/histogram
CUMULATIVEDISTRIBUTIONs
prometheus_target
1.29.3-gke.1093000
Durata in secondi per la rimozione dei pod in PLEG. Campionamento eseguito ogni 30 secondi.

 
kubelet_pod_worker_duration_seconds
kubelet_pod_worker_duration_seconds/histogram
CUMULATIVEDISTRIBUTIONs
prometheus_target
1.29.3-gke.1093000
Durata in secondi per la sincronizzazione di un singolo pod. Suddivisa per tipo di operazione: creazione, aggiornamento o sincronizzazione. Campionamento eseguito ogni 30 secondi.

operation_type
kubelet_running_containers
kubelet_running_containers/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Numero di container attualmente in esecuzione. Campionamento eseguito ogni 30 secondi.

container_state
kubelet_running_pods
kubelet_running_pods/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Numero di pod con una sandbox del pod in esecuzione. Campionamento eseguito ogni 30 secondi.

 
kubelet_runtime_operations_total
kubelet_runtime_operations_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Numero cumulativo di operazioni di runtime per tipo di operazione. Campionamento eseguito ogni 30 secondi.

operation_type
kubelet_volume_stats_available_bytes
kubelet_volume_stats_available_bytes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Numero di byte disponibili nel volume. Campionamento eseguito ogni 30 secondi.

namespace
persistentvolumeclaim
kubelet_volume_stats_capacity_bytes
kubelet_volume_stats_capacity_bytes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Capacità in byte del volume. Campionamento eseguito ogni 30 secondi.

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes
kubelet_volume_stats_inodes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Numero massimo di inode nel volume. Campionamento eseguito ogni 30 secondi.

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes_free
kubelet_volume_stats_inodes_free/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Numero di inode liberi nel volume. Campionamento eseguito ogni 30 secondi.

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes_used
kubelet_volume_stats_inodes_used/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Numero di inode utilizzati nel volume. Campionamento eseguito ogni 30 secondi.

namespace
persistentvolumeclaim
kubelet_volume_stats_used_bytes
kubelet_volume_stats_used_bytes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Numero di byte utilizzati nel volume. Campionamento eseguito ogni 30 secondi.

namespace
persistentvolumeclaim