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.
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.
- Inserisci il nome nel seguente formato: projects/{project-name}.
- 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
- 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.
- Vai alla console di Monitoring.
- Nel riquadro di navigazione, fai clic su Avvisi.
- Fai clic su MODIFICA CANALI DI NOTIFICA.
- In Email, fai clic su AGGIUNGI NUOVO. Digita un indirizzo email e un nome visualizzato e fai clic su SALVA.
- Fai clic su CREA NORMA.
- Fai clic su SELEZIONA UNA METRICA, poi seleziona Durata di inattività Tensorcore e fai clic su APPLICA.
- Fai clic su AVANTI, quindi su Soglia.
- Per Attivazione degli avvisi, seleziona Qualsiasi violazione della serie temporale.
- Per Posizione soglia, seleziona Sopra la soglia.
- In Valore soglia, digita
86400000
. - Fai clic su AVANTI.
- In Canali di notifica, seleziona il tuo canale di notifica via email e fai clic su OK.
- Digita un nome per il criterio di avviso.
- 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:
- Vai al visualizzatore log di Google Cloud
- Fai clic sul menu a discesa Risorsa.
- Fai clic su Worker Cloud TPU
- Seleziona una zona
- Seleziona la Cloud TPU che ti interessa
- Fai clic su Applica. I log vengono visualizzati nei risultati della query
Per visualizzare i log delle risorse controllate:
- Vai al visualizzatore log di Google Cloud
- Fai clic sul menu a discesa Risorsa.
- Fai clic su Risorsa controllata e poi su Cloud TPU.
- Scegli l'API Cloud TPU che ti interessa
- Fai clic su Applica. I log vengono visualizzati nei risultati della query
- 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.
- Vai a Esplora log
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:*
Fai clic su Crea metrica per visualizzare l'Editor metriche.
In Tipo di metrica, scegli Distribuzione.
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
Il filtro viene precompilato con lo script che hai inserito in Esplora log
Fai clic su CREA METRICA
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:
- Dashboard di monitoraggio e logging
- Gestire le dashboard personalizzate
- Crea criteri di avviso basati su metriche
Creazione delle dashboard
Per creare una dashboard in Cloud Monitoring per la metrica Durata di inattività Tensorcore:
- Vai alla console di monitoraggio
- Nel riquadro di navigazione, fai clic su Dashboard
- Fai clic su CREA DASHBOARD, quindi su Aggiungi widget
- Scegli il tipo di grafico che vuoi aggiungere. Per questo esempio, scegli A linee
- Digita un titolo per il widget
- Fai clic sul menu a discesa Seleziona una metrica e digita "Durata di inattività Tensorcore" nel campo del filtro
- Nell'elenco delle metriche, seleziona Worker TPU -> Tpu -> Durata inattività Tensorcore
- Per filtrare i contenuti della dashboard, fai clic sul menu a discesa Filtro
- In Etichette risorse, seleziona project_id
- Scegli un comparatore e digita un valore nel campo Valore
- Fai clic su Applica.