Configurazione della raccolta di metriche


Questo documento descrive come configurare Google Kubernetes Engine (GKE) per inviare le metriche a Cloud Monitoring. Le metriche in Cloud Monitoring possono compilare dashboard personalizzate, generare avvisi, creare obiettivi di livello di servizio o essere recuperate da servizi di monitoraggio di terze parti utilizzando l'API Cloud Monitoring.

GKE fornisce diverse origini di metriche:

  • Metriche di sistema: metriche dei componenti di sistema essenziali che descrivono risorse di basso livello come CPU, memoria e spazio di archiviazione.
  • Google Cloud Managed Service per Prometheus: consente di monitorare e creare avvisi sui carichi di lavoro utilizzando Prometheus, senza dover gestire e utilizzare manualmente Prometheus su larga scala.
  • Pacchetti di metriche di osservabilità:

    • Metriche del piano di controllo: metriche esportate da alcuni componenti del piano di controllo, come il server API e lo scheduler.
    • Metriche di stato Kube: un insieme selezionato di metriche esportate dal servizio kube state, utilizzato per monitorare lo stato degli oggetti Kubernetes come pod, deployment e altro ancora. Per l'insieme di metriche incluse, consulta Utilizzare le metriche di stato kube.

      Il pacchetto dello stato di kube è una soluzione gestita. Se hai bisogno di una maggiore flessibilità, ad esempio se devi raccogliere altre metriche, gestire gli intervalli di scansione o eseguire la scansione di altre risorse, puoi disattivare il pacchetto, se è abilitato, e implementare la tua istanza del servizio open source delle metriche dello stato di Kubernetes. Per maggiori informazioni, consulta la documentazione dell'esportatore di Google Cloud Managed Service per Prometheus per le metriche di stato Kube.

    • cAdvisor/Kubelet: un insieme selezionato di metriche cAdvisor e Kubelet. Per l'insieme di metriche incluse, consulta Utilizzare le metriche cAdvisor/Kubelet.

      Il pacchetto cAdvisor/Kubelet è una soluzione gestita. Se hai bisogno di una maggiore flessibilità, ad esempio se devi raccogliere altre metriche, gestire gli intervalli di scansione o eseguire lo scraping di altre risorse, puoi disattivare il pacchetto, se è abilitato, ed eseguire il deployment della tua istanza dei servizi di metriche cAdvisor/Kubelet open source.

    • Metriche di NVIDIA Data Center GPU Manager (DCGM): le metriche di DCGM che forniscono una visione completa dello stato, delle prestazioni e dell'utilizzo delle GPU.

Puoi anche configurare il monitoraggio automatico delle applicazioni per determinati carichi di lavoro.

Metriche di sistema

Quando viene creato un cluster, GKE raccoglie per impostazione predefinita determinate metriche emesse dai componenti di sistema.

Puoi scegliere se inviare o meno le metriche dal tuo cluster GKE a Cloud Monitoring. Se scegli di inviare le metriche a Cloud Monitoring, devi inviare le metriche di sistema.

Tutte le metriche di sistema GKE vengono importate in Cloud Monitoring con il prefisso kubernetes.io.

Prezzi

Cloud Monitoring non addebita alcun costo per l'importazione delle metriche di sistema di GKE. Per maggiori informazioni, consulta Prezzi di Cloud Monitoring.

Configurazione della raccolta delle metriche di sistema

Per attivare la raccolta delle metriche di sistema, passa il valore SYSTEM al --monitoring flag dei comandi gcloud container clusters create o gcloud container clusters update.

Per disattivare la raccolta delle metriche di sistema, utilizza il valore NONE per il flag --monitoring. Se la raccolta delle metriche di sistema è disattivata, le informazioni di base come l'utilizzo della CPU, l'utilizzo della memoria e l'utilizzo del disco non sono disponibili per un cluster quando visualizzi le metriche di osservabilità.

Per i cluster GKE Autopilot, non puoi disattivare la raccolta delle metriche di sistema.

Per ulteriori dettagli sull'integrazione di Cloud Monitoring con GKE, consulta Osservabilità per GKE.

Per configurare la raccolta delle metriche di sistema 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.

Elenco delle metriche di sistema

Le metriche di sistema includono le metriche dei componenti di sistema essenziali importanti per Kubernetes. Per un elenco di queste metriche, consulta Metriche di sistema di GKE.

Se attivi Cloud Monitoring per il tuo cluster, non puoi disattivare il monitoraggio del sistema (--monitoring=SYSTEM).

Metriche abilitate per impostazione predefinita in GKE Enterprise

Nelle tabelle seguenti, un segno di spunta () indica le metriche abilitate per impostazione predefinita quando crei e registri un nuovo cluster in un progetto con GKE Enterprise abilitato:

Nome metrica Autopilot Standard
Sistema
Server API
Scheduler
Gestore del controller
Volume permanente (archiviazione)
Pod
Deployment
StatefulState
DaemonSet
HorizonalPodAutoscaler
cAdvisor
Kubelet
Metriche di NVIDIA Data Center GPU Manager (DCGM)

Tutti i cluster registrati in un progetto in cui è attivato GKE Enterprise possono utilizzare i pacchetti per le metriche del control plane, le metriche di stato del kube e le metriche di cAdvisor/Kubelet senza costi aggiuntivi. In caso contrario, per queste metriche verranno addebitati costi di Cloud Monitoring.

Risolvere i problemi relativi alle metriche di sistema

Se le metriche di sistema non sono disponibili in Cloud Monitoring come previsto, consulta Risolvere i problemi relativi alle metriche di sistema.

Pacchetto: Metriche del piano di controllo

Puoi configurare un cluster GKE in modo da inviare determinate metriche emesse dal server API Kubernetes, dallo scheduler e dal gestore del controller a Cloud Monitoring.

Per ulteriori informazioni, consulta Raccogliere e visualizzare le metriche del control plane.

Pacchetto: Kube State Metrics

Puoi configurare un cluster GKE in modo da inviare a Cloud Monitoring un insieme selezionato di metriche di stato kube in formato Prometheus. Questo pacchetto di metriche dello stato di Kube include metriche per pod, deployment, StatefulSet, DaemonSet, risorse HorizontalPodAutoscaler, volumi permanenti e richieste di volume permanente.

Per ulteriori informazioni, consulta Raccogliere e visualizzare le metriche dello stato di Kube.

Pacchetto: metriche cAdvisor/Kubelet

Puoi configurare un cluster GKE in modo da inviare un insieme selezionato di metriche cAdvisor/Kubelet in formato Prometheus a Cloud Monitoring. Il set selezionato di metriche è un sottoinsieme del grande insieme di metriche cAdvisor/Kubelet integrate per impostazione predefinita in ogni deployment di Kubernetes. cAdvisor/Kubelet selezionato è progettato per fornire le metriche più utili, riducendo il volume di importazione e i costi associati.

Per ulteriori informazioni, consulta Raccogliere e visualizzare le metriche cAdvisor/Kubelet.

Pacchetto: metriche di NVIDIA Data Center GPU Manager (DCGM)

Puoi monitorare l'utilizzo, le prestazioni e lo stato delle GPU configurando GKE in modo da inviare le metriche di NVIDIA Data Center GPU Manager (DCGM) a Cloud Monitoring.

Per ulteriori informazioni, consulta Raccogliere e visualizzare le metriche di NVIDIA Data Center GPU Manager (DCGM).

Disattiva i pacchetti di metriche

Puoi disattivare l'utilizzo dei pacchetti di metriche nel cluster. Ti consigliamo di disabilitare determinati pacchetti per ridurre i costi o se utilizzi un meccanismo alternativo per raccogliere le metriche, come Google Cloud Managed Service per Prometheus e un esportatore.

Console

Per disattivare la raccolta delle metriche 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. Nel menu a discesa Componenti, deseleziona i componenti metrici che vuoi disattivare.

  5. Fai clic su OK.

  6. Fai clic su Salva modifiche.

gcloud

  1. Apri una finestra del terminale con Google Cloud SDK e Google Cloud CLI installati. Un modo per farlo è utilizzare 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. Chiama il comando gcloud container clusters update e passa un insieme aggiornato di valori al flag --monitoring. L'insieme di valori specificati per il flag --monitoring sostituisce qualsiasi impostazione precedente.

    Ad esempio, per disattivare la raccolta di tutte le metriche tranne quelle di sistema, esegui il seguente comando:

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

    Questo comando disattiva la raccolta di eventuali pacchetti metrici configurati in precedenza.

Terraform

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

Informazioni sulla fattura del monitoraggio

Puoi utilizzare Cloud Monitoring per identificare le metriche del piano di controllo o dello stato di kube che scrivono il maggior numero di campioni. Queste metriche contribuiscono maggiormente ai tuoi costi. Dopo aver identificato le metriche più costose, puoi modificare le configurazioni di scansione per filtrarle in modo appropriato.

La pagina Gestione delle metriche di Cloud Monitoring fornisce informazioni che possono aiutarti a controllare la spesa per le metriche fatturabili senza influire sull'osservabilità. La pagina Gestione delle metriche riporta le seguenti informazioni:

  • Volumi di importazione sia per la fatturazione basata su byte che su sample, per i domini delle metriche e per le singole metriche.
  • Dati su etichette e cardinalità delle metriche.
  • Numero di letture per ogni metrica.
  • Utilizzo delle metriche nei criteri di avviso e nelle dashboard personalizzate.
  • Tasso di errori di scrittura delle metriche.

Puoi anche utilizzare la pagina Gestione delle metriche per escludere le metriche non necessarie, eliminando il costo di importazione.

Per visualizzare la pagina Gestione delle metriche:

  1. Nella console Google Cloud, vai alla pagina  Gestione delle metriche:

    Vai a Gestione delle metriche

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

  2. Nella barra degli strumenti, seleziona l'intervallo di tempo. Per impostazione predefinita, la pagina Gestione delle metriche mostra informazioni sulle metriche raccolte nell'ultimo giorno.

Per ulteriori informazioni sulla pagina Gestione delle metriche, consulta Visualizzare e gestire l'utilizzo delle metriche.

Per identificare le metriche del piano di controllo o dello stato di Kube con il maggior numero di campioni importati:

  1. Nella console Google Cloud, vai alla pagina  Gestione delle metriche:

    Vai a Gestione delle metriche

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

  2. Nella scheda prospetto Campioni fatturabili importati, fai clic su Visualizza grafici.

  3. Individua il grafico Importazione del volume del namespace e fai clic su  Altre opzioni per il grafico.

  4. Nel campo Metrica, verifica che siano selezionate la risorsa e la metrica seguenti:
    Metric Ingestion Attribution e Samples written by attribution id.

  5. Nella pagina Filtri, segui questi passaggi:

    1. Nel campo Etichetta, verifica che il valore sia attribution_dimension.

    2. Nel campo Confronto, verifica che il valore sia = (equals).

    3. Nel campo Valore, seleziona cluster.

  6. Cancella l'impostazione Raggruppa per.

  7. Se vuoi, filtra i dati in base a determinate metriche. Ad esempio, le metriche del server API del piano di controllo includono tutte "apiserver" nel nome della metrica e le metriche dei pod dello stato kube includono tutte "kube_pod" nel nome della metrica, quindi puoi filtrare in base alle metriche contenenti queste stringhe:

    • Fai clic su Aggiungi filtro.

    • Nel campo Etichetta, seleziona metric_type.

    • Nel campo Confronto, seleziona =~ (equals regex).

    • Nel campo Valore, inserisci .*apiserver.* o .*kube_pod.*.

  8. Se vuoi, raggruppa il numero di campioni importati per regione o progetto GKE:

    • Fai clic su Raggruppa per.

    • Assicurati che metric_type sia selezionato.

    • Per raggruppare per regione GKE, seleziona location.

    • Per raggruppare per progetto, seleziona project_id.

    • Fai clic su OK.

  9. Se vuoi, raggruppa il numero di campioni importati per nome del cluster GKE:

    • Fai clic su Raggruppa per.

    • Per raggruppare in base al nome del cluster GKE, assicurati che siano selezionate sia attribution_dimension sia attribution_id.

    • Fai clic su OK.

  10. Per visualizzare il volume di importazione per ciascuna metrica, seleziona Entrambe nell'opzione di attivazione/disattivazione Tabella del grafico Entrambe. La tabella mostra il volume importato per ogni metrica nella colonna Valore.

    Fai clic due volte sull'intestazione della colonna Valore per ordinare le metriche in base al volume di importazione decrescente.

Questi passaggi mostrano le metriche con il tasso più elevato di campioni importati in Cloud Monitoring. Poiché le metriche nei pacchetti di osservabilità vengono addebitate in base al numero di campioni importati, presta attenzione alle metriche con il tasso di importazione dei campioni più elevato.

Altre metriche

Oltre alle metriche di sistema e ai pacchetti di metriche descritti in questo documento, le metriche Istio sono disponibili anche per i cluster GKE. Per le informazioni sui prezzi, consulta Prezzi di Cloud Monitoring.

Metriche disponibili

La tabella seguente indica i valori supportati per il flag --monitoring per i comandi create e update.

Origine Valore --monitoring Metriche raccolte
Nessuno NONE Nessuna metrica inviata a Cloud Monitoring; nessun agente di raccolta delle metriche installato nel cluster. Questo valore non è supportato per i cluster Autopilot.
Sistema SYSTEM Metriche dei componenti di sistema essenziali richiesti per Kubernetes. Per un elenco completo delle metriche, consulta Metriche Kubernetes.
Server API API_SERVER Metriche di kube-apiserver. Per un elenco completo delle metriche, consulta Metriche del server API.
Scheduler SCHEDULER Metriche di kube-scheduler. Per un elenco completo delle metriche, consulta Metriche di Scheduler.
Controller Manager CONTROLLER_MANAGER Metriche di kube-controller-manager. Per un elenco completo delle metriche, consulta Metriche di Controller Manager.
Volume permanente (archiviazione) STORAGE Metriche dello spazio di archiviazione da kube-state-metrics. Include le metriche per i volumi permanenti e le richieste di volumi permanenti. Per un elenco completo delle metriche, consulta Metriche dello spazio di archiviazione.
Pod POD Metriche del pod da kube-state-metrics. Per un elenco completo delle metriche, consulta Metriche dei pod.
Deployment DEPLOYMENT Metriche di deployment da kube-state-metrics. Per un elenco completo delle metriche, consulta Metriche di deployment.
StatefulSet STATEFULSET Metriche StatefulSet da kube-state-metrics. Per un elenco completo delle metriche, consulta Metriche StatefulSet.
DaemonSet DAEMONSET Metriche DaemonSet da kube-state-metrics. Per un elenco completo delle metriche, consulta Metriche DaemonSet.
HorizonalPodAutoscaler HPA Metriche HPA da kube-state-metrics. Consulta un elenco completo delle metriche HorizonalPodAutoscaler.
cAdvisor CADVISOR Metriche cAdvisor del pacchetto di metriche cAdvisor/Kubelet. Per un elenco completo delle metriche, consulta Metriche di cAdvisor.
Kubelet KUBELET Metriche Kubelet da cAdvisor/Kubelet Per un elenco completo delle metriche, consulta Metriche Kubelet.
Metriche di NVIDIA Data Center GPU Manager (DCGM) DCGM Metriche di NVIDIA Data Center GPU Manager (DCGM).

Puoi anche raccogliere metriche in stile Prometheus esposte da qualsiasi carico di lavoro GKE utilizzando Google Cloud Managed Service per Prometheus, che ti consente di monitorare e creare avvisi sui tuoi carichi di lavoro utilizzando Prometheus, senza dover gestire e utilizzare manualmente Prometheus su larga scala.

Passaggi successivi