Monitora le VM Cloud TPU

Questa guida spiega come utilizzare Google Cloud Monitoring per monitorare le VM Cloud TPU. Google Cloud Monitoring raccoglie automaticamente metrics e log dalla Cloud TPU e dal suo host Compute Engine. Questi dati possono essere usati per monitorare l'integrità di Cloud TPU e Compute Engine.

Le metriche consentono di monitorare una quantità numerica nel tempo, ad esempio utilizzo della CPU, utilizzo della rete o durata di inattività di TensorCore. I log acquisiscono gli eventi in un momento specifico. Le voci di log sono scritte dal tuo codice, dai servizi Google Cloud, alle applicazioni di terze parti e dall'infrastruttura di Google Cloud. Puoi anche generare metriche dai dati presenti in una voce di log creando una metrica basata su log. Puoi anche impostare criteri di avviso in base a valori delle metriche o voci di log.

Questa guida illustra Google Cloud Monitoring e mostra come:

  • Visualizza metriche Cloud TPU
  • Configura i criteri di avviso per le metriche di Cloud TPU
  • Esegui query sui log di Cloud TPU
  • Crea metriche basate su log per la configurazione degli avvisi e la visualizzazione delle dashboard

Prerequisiti

Questo documento presuppone una conoscenza di base di Google Cloud Monitoring. Per poter iniziare a generare e utilizzare Google Cloud Monitoring, devi aver creato una VM di Compute Engine e una risorsa Cloud TPU. Consulta la guida rapida di Cloud TPU per ulteriori dettagli.

Metriche

Le metriche di Google Cloud vengono generate automaticamente dalle VM di Compute Engine e dal runtime Cloud TPU. Le seguenti metriche sono generate dalle VM Cloud TPU:

  • memory/usage
  • network/received_bytes_count
  • network/sent_bytes_count
  • cpu/utilization
  • tpu/tensorcore/idle_duration

Potrebbero passare fino a 180 secondi tra il momento in cui viene generato un valore di metrica e la sua visualizzazione in Metrics Explorer.

Per ulteriori informazioni sulle metriche relative alle TPU, consulta la sezione Metriche TPU.

Memoria utilizzata

La metrica memory/usage monitora la memoria utilizzata dalla VM TPU in byte. Questa metrica viene campionata ogni 60 secondi.

Conteggio byte ricevuti di rete

La metrica network/received_bytes_count monitora il numero di byte cumulativi dei dati che la VM TPU ha ricevuto sulla rete in un determinato momento.

Conteggio byte inviati di rete

La metrica network/sent_bytes_count monitora il numero di byte cumulativi che la VM TPU ha inviato tramite la rete in un determinato momento.

Utilizzo CPU

La metrica cpu/utilization monitora l'utilizzo attuale della CPU sul worker TPU, rappresentato in percentuale, campionato una volta al minuto. I valori sono generalmente compresi tra 0,0 e 100,0, ma potrebbero superare 100,0.

Durata di inattività TensorCore

La metrica tpu/tensorcore/idle_duration monitora il numero di secondi in cui il TensorCore di ogni chip di TPU è stato inattivo. Questa metrica è disponibile per ogni chip su tutte le TPU in uso. Se è in uso un TensorCore, il valore della durata di inattività viene reimpostato su zero. Quando TensorCore non è più in uso, il valore della durata di inattività inizia ad aumentare.

Il seguente grafico mostra la metrica tpu/tensorcore/idle_duration per una VM TPU v2-8 con un worker. Ogni worker ha quattro chip. In questo esempio, tutti e quattro i chip hanno gli stessi valori per tpu/tensorcore/idle_duration, quindi i grafici sono sovrapposti l'uno all'altro.

immagine

Per un elenco completo delle metriche generate da Cloud TPU, consulta Metriche Google Cloud TPU.

Visualizzazione delle metriche

Puoi visualizzare le metriche utilizzando Metrics Explorer nella console Google Cloud.

In Metrics Explorer, fai clic su SELEZIONA UNA METRICA e cerca TPU Worker. Se l'opzione Mostra solo risorse e metriche attive è attiva, vengono visualizzate solo le metriche delle risorse attive. Fai clic su Worker TPU per visualizzare tutte le metriche disponibili.

Puoi anche accedere alle metriche utilizzando le chiamate HTTP curl:

Utilizza il pulsante Prova! nella documentazione diprojects.timeSeries.query per recuperare il valore di una metrica nel periodo di tempo specificato.

  1. Inserisci il nome nel seguente formato: projects/{project-name}.
  2. Aggiungi una query alla sezione Corpo della richiesta. Di seguito è riportata una query di esempio per recuperare la metrica relativa alla durata di inattività per la zona specificata per gli ultimi cinque minuti. fetch tpu_worker | filter zone = 'us-central2-b' | metric tpu.googleapis.com/tpu/tensorcore/idle_duration | within 5m
  3. Fai clic su Execute (Esegui) per effettuare la chiamata e visualizzare i risultati del messaggio POST HTTP.

Il documento di riferimento su Monitoring Query Language contiene ulteriori informazioni su come personalizzare questa query.

Puoi creare criteri di avviso che indicano a Cloud Monitoring di inviare un avviso quando una condizione è soddisfatta.

Creazione di avvisi

I passaggi in questa sezione mostrano un esempio di come aggiungere un criterio di avviso per la metrica Durata inattività TensorCore. Ogni volta che questa metrica supera le 24 ore, Cloud Monitoring invia un'email all'indirizzo email registrato.

  1. Vai alla console di Monitoring.
  2. Nel riquadro di navigazione, fai clic su Avvisi.
  3. Fai clic su MODIFICA CANALI DI NOTIFICA.
  4. In Email, fai clic su AGGIUNGI NUOVO. Digita un indirizzo email e un nome visualizzato e fai clic su SALVA.
  5. Fai clic su CREA NORMA.
  6. Fai clic su SELEZIONA UNA METRICA, poi seleziona Durata di inattività Tensorcore e fai clic su APPLICA.
  7. Fai clic su AVANTI, quindi su Soglia.
  8. Per Attivazione degli avvisi, seleziona Qualsiasi violazione della serie temporale.
  9. Per Posizione soglia, seleziona Sopra la soglia.
  10. In Valore soglia, digita 86400000.
  11. Fai clic su AVANTI.
  12. In Canali di notifica, seleziona il tuo canale di notifica via email e fai clic su OK.
  13. Digita un nome per il criterio di avviso.
  14. Fai clic su AVANTI, quindi su CREA NORMA.

Quando la durata di inattività di TensorCore supera le 24 ore, viene inviata un'email all'indirizzo specificato.

Logging

Le voci di log sono scritte da servizi Google Cloud, servizi di terze parti, framework di ML o dal tuo codice. Puoi visualizzare i log utilizzando Esplora log o l'API Logs. Per ulteriori informazioni su Google Cloud Logging, consulta Google Cloud Logging.

In Esplora log, seleziona un tipo di risorsa:

  • Worker Cloud TPU -> Zona -> ID nodo
  • Risorsa controllata -> Cloud TPU -> API (google.cloud.tpu.v2alpha1.Tpu.CreateNode, google.cloud.tpu.v2alpha1.Tpu.DeleteNode, google.cloud.tpu.v2alpha1.Tpu.UpdateNode)

I log dei worker Cloud TPU contengono informazioni su uno specifico worker Cloud TPU in una zona specifica, ad esempio la quantità di memoria disponibile sul worker Cloud TPU (system_available_memory_GiB).

I log delle risorse controllate contengono informazioni su quando un'API Cloud TPU specifica è stata chiamata e su chi ha effettuato la chiamata. Ad esempio CreateNode, UpdateNode e DeleteNode.

I framework ML possono generare log in stdout e stderr. Questi log sono controllati da variabili di ambiente e vengono letti dallo script di addestramento.

Il tuo codice può scrivere log in Google Cloud Logging. Per ulteriori informazioni, consulta Scrivere log standard e Scrivere log strutturati.

Per visualizzare i log di Cloud TPU:

  1. Vai al visualizzatore log di Google Cloud
  2. Fai clic sul menu a discesa Risorsa.
  3. Fai clic su Worker Cloud TPU
  4. Seleziona una zona
  5. Seleziona la Cloud TPU che ti interessa
  6. Fai clic su Applica. I log vengono visualizzati nei risultati della query

Per visualizzare i log delle risorse controllate:

  1. Vai al visualizzatore log di Google Cloud
  2. Fai clic sul menu a discesa Risorsa.
  3. Fai clic su Risorsa controllata e poi su Cloud TPU.
  4. Scegli l'API Cloud TPU che ti interessa
  5. Fai clic su Applica. I log vengono visualizzati nei risultati della query
  6. Scegli le API che iniziano con google.cloud.tpu.v2alpha1.Tpu

Esegui query sui log di Google Cloud

Quando visualizzi i log nella console Google Cloud, la pagina esegue una query predefinita. Per visualizzare la query, seleziona l'opzione di attivazione/disattivazione Show query. Puoi modificare la query predefinita o crearne una nuova. Per maggiori informazioni, consulta Creare query in Esplora log.

Log delle risorse controllati

Fai clic su una voce di log per espanderla. Troverai un campo denominato protoPayload. Espandi protoPayload per visualizzare una serie di sottocampi:

  • logName: il nome del log
  • protoPayload -> @type: il tipo di log
  • resourceName: il nome della tua Cloud TPU
  • methodName: il nome del metodo chiamato (solo log di controllo)
  • request -> @type: il tipo di richiesta.
  • request -> node: dettagli sul nodo Cloud TPU
  • request -> node_id: il nome della TPU
  • severity: la gravità del log

Log worker TPU

Fai clic su una voce di log per espanderla. Troverai un campo denominato jsonPayload. Espandi jsonPayload per visualizzare una serie di campi secondari:

  • accelerator_type: il tipo di acceleratore
  • consumer_project: il progetto in cui si trova la Cloud TPU
  • evententry_timestamp: l'ora in cui è stato generato il log.
  • system_available_memory_GiB: la memoria disponibile sul worker Cloud TPU (0 ~ 350 GiB)

Creazione di metriche basate su log

Questa sezione descrive come creare metriche basate su log utilizzate per configurare dashboard e avvisi di monitoraggio. Per informazioni sulla creazione programmatica di metriche basate su log, consulta Creazione di metriche basate su log in modo programmatico utilizzando l'API REST di Cloud Logging.

L'esempio seguente utilizza il sottocampo system_available_memory_GiB per dimostrare come creare una metrica basata su log per il monitoraggio della memoria disponibile dei worker Cloud TPU.

  1. Vai a Esplora log
  2. Nella casella della query, inserisci la query seguente per estrarre tutte le voci di log con system_available_memory_GiB definito per il worker Cloud TPU principale:

    resource.type=tpu_worker
    resource.labels.project_id=your-project
    resource.labels.zone=your-tpu-zone
    resource.labels.node_id=your-tpu-name
    resource.labels.worker_id=0
    logName=projects/your-project/logs/tpu.googleapis.com%2Fruntime_monitor
    jsonPayload.system_available_memory_GiB:*
    
  3. Fai clic su Crea metrica per visualizzare l'Editor metriche.

  4. In Tipo di metrica, scegli Distribuzione.

  5. Digita un nome, una descrizione facoltativa e l'unità di misura della metrica. Digita "matrix_unit_utilization_percent" e "Utilizzo MXU" nei campi Nome e Descrizione, rispettivamente

  6. Il filtro viene precompilato con lo script che hai inserito in Esplora log

  7. Fai clic su CREA METRICA

  8. Fai clic su Esplora le metriche per visualizzare la nuova metrica. Potrebbero essere necessari alcuni minuti prima che le metriche vengano visualizzate

Creazione di metriche basate su log con l'API REST di Cloud Logging

Puoi creare metriche basate su log anche tramite l'API Cloud Logging. Per saperne di più, consulta Creazione di una metrica di distribuzione.

Creazione di dashboard e avvisi utilizzando le metriche basate su log

Le dashboard sono utili per visualizzare le metriche (prevedi un ritardo di circa 2 minuti); gli avvisi sono utili per l'invio di notifiche in caso di errori. Per saperne di più, consulta:

Creazione delle dashboard

Per creare una dashboard in Cloud Monitoring per la metrica Durata di inattività Tensorcore:

  1. Vai alla console di monitoraggio
  2. Nel riquadro di navigazione, fai clic su Dashboard
  3. Fai clic su CREA DASHBOARD, quindi su Aggiungi widget
  4. Scegli il tipo di grafico che vuoi aggiungere. Per questo esempio, scegli A linee
  5. Digita un titolo per il widget
  6. Fai clic sul menu a discesa Seleziona una metrica e digita "Durata di inattività Tensorcore" nel campo del filtro
  7. Nell'elenco delle metriche, seleziona Worker TPU -> Tpu -> Durata inattività Tensorcore
  8. Per filtrare i contenuti della dashboard, fai clic sul menu a discesa Filtro
  9. In Etichette risorse, seleziona project_id
  10. Scegli un comparatore e digita un valore nel campo Valore
  11. Fai clic su Applica.