Dashboard di monitoraggio e logging di Cloud TPU
Il repository delle dashboard di monitoraggio e debug di Cloud TPU contiene tutta l'infrastruttura e la logica necessarie per monitorare e eseguire il debug dei flussi di lavoro in esecuzione sulle VM TPU. Richiede Terraform, uno strumento open source che utilizza file di configurazione per definire e gestire l'infrastruttura Google Cloud.
Dashboard di monitoraggio
La dashboard di monitoraggio mostra le seguenti metriche di Cloud TPU:
- Utilizzo della CPU sul worker TPU:
cpu/utilization
- Utilizzo memoria da parte della VM TPU:
memory/usage
- Byte di rete ricevuti da un pod tramite la rete:
network/received_bytes_count
- Byte di rete inviati da un pod tramite la rete:
network/sent_bytes_count
- Durata di inattività di TensorCore del chip TPU:
tpu/tensorcore/idle_duration
Cloud Monitoring genera automaticamente i dati delle metriche. Per visualizzare la dashboard di monitoraggio, vai alla console Google Cloud, seleziona Monitoraggio e poi Dashboard. Seleziona GCE - TPU Monitoring Dashboard nell'elenco delle dashboard. La dashboard di monitoraggio di Cloud TPU è composta da un certo numero di riquadri, ciascuno dei quali mostra i dati delle metriche. Per ogni metrica Cloud TPU, la dashboard mostra i valori attuali delle metriche, la media e i valori massimi in riquadri separati. I riquadri della media e del massimo ti consentono di identificare le VM TPU con valori anomali per ulteriori indagini.
Puoi anche visualizzare le metriche TPU utilizzando Metrics Explorer nella console Google Cloud di Cloud Monitoring. Per ulteriori informazioni, consulta Monitoraggio delle VM Cloud TPU.
Dashboard di Logging
La dashboard di logging mostra due sezioni:
- Metriche dei log: mostra il conteggio delle voci di analisi dello stack raccolte per ogni worker VM TPU.
- Riquadro dei log: mostra tutte le analisi dello stack con colonne per gravità,
timestamp e un riepilogo della voce. Puoi filtrare questo riquadro dei log in base a una stringa o alle etichette dei worker TPU, ad esempio
node_id
,worker_id
. Ad esempio, l'aggiunta di un filtroresource.labels.node_id:"testing"
mostra tutte le voci di traccia raccolte per il worker VM TPU con ID impostato su "testing".
Cloud Logging raccoglie le voci di log generate dai servizi Google Cloud, dai servizi di terze parti, dai framework ML e dal tuo codice. Puoi installare il pacchetto cloud-tpu-diagnostics
PyPi per scrivere le tracce dello stack di Python quando si verifica un errore o un'eccezione o quando il tuo carico di lavoro non risponde. Per ulteriori informazioni, consulta
Debug delle VM Cloud TPU.
Per visualizzare la dashboard di logging, vai alla console Google Cloud, seleziona Monitoraggio e poi Dashboard. Seleziona GCE - TPU Logging Dashboard nell'elenco delle dashboard.
Configura le dashboard di metriche e logging
Segui queste istruzioni per configurare le dashboard delle metriche e del logging.
Clona il repository della dashboard
Puoi clonare il repository direttamente dal repository GitHub di monitoraggio e debug di Cloud TPU o dalla riga di comando:
git clone https://github.com/google/cloud-tpu-monitoring-debugging.git
Installa Terraform
- Installa Terraform sulla tua macchina locale.
- Esegui
terraform init
per aggiungere i plug-in necessari e creare la directory.terraform
. - Esegui
terraform init –upgrade
per installare gli aggiornamenti disponibili.
Configura le autorizzazioni per il monitoraggio e il logging
I ruoli Monitoring Admin, Monitoring Dashboard Configuration Editor e Logging Admin sono obbligatori per eseguire il deployment delle risorse di monitoraggio nel progetto Google Cloud. Per saperne di più sui ruoli di monitoraggio, consulta Concedere l'accesso a Cloud Monitoring.
Crea un bucket Cloud Storage
Crea un bucket Cloud Storage per archiviare i file di stato di Terraform. Puoi anche utilizzare un bucket Cloud Storage esistente. L'utilizzo di un bucket Cloud Storage garantisce che più utenti possano eseguire Terraform contemporaneamente e accedere alla stessa infrastruttura.
In Cloud Shell, crea il bucket Cloud Storage:
gcloud storage buckets create gs://${GCS_BUCKET_NAME}
Abilita il controllo delle versioni degli oggetti per conservare la cronologia dei tuoi implementazioni. L'attivazione del controllo delle versioni degli oggetti aumenta i costi di archiviazione, che puoi ridurre configurando Gestione del ciclo di vita degli oggetti in modo da eliminare le versioni degli stati precedenti.
gcloud storage buckets update gs://${GCS_BUCKET_NAME} --versioning
Inizializza Terraform
Esegui terraform init
all'interno della directory gcp_resources/gce
del repository.
Il comando ti chiede di inserire il nome di un bucket Cloud Storage per archiviare
i file di stato di Terraform.
Esegui il deployment delle dashboard di monitoraggio e logging
Esegui terraform apply
all'interno della directory gcp_resources/gce
per eseguire il deployment delle dashboard di monitoraggio e di registrazione nel tuo progetto Google Cloud. Il comando richiede di fornire i valori per le seguenti variabili:
var.monitoring_dashboard_config
var.project_name
var.stack_trace_bucket_config
Se vuoi eseguire il deployment solo della dashboard di monitoraggio, esegui terraform init
e terraform apply
all'interno della directory gcp_resources/gce/dashboard/monitoring_dashboard
. Analogamente, esegui questi comandi all'interno della directory gcp_resources/gce/dashboard/logging_dashboard
per eseguire il deployment solo della dashboard di logging.
Configurazioni di esempio
Quando esegui terraform apply
, Terraform ti chiede alcuni valori delle variabili di configurazione. Questa sezione fornisce alcuni esempi di configurazioni che puoi utilizzare.
Ogni esempio mostra l'output visualizzato dal comando terraform apply, nonché i valori suggeriti per ogni variabile di configurazione in grassetto. L'input deve essere in formato JSON racchiuso tra parentesi graffe ("{}").
Esempio 1
Questo esempio specifica il nome del progetto Google Cloud e utilizza i valori predefiniti per il resto della configurazione.
var.project_name
Name of gcp project
Enter a value: <gcp_project_name>
var.stack_trace_bucket_config
Configuration to create a log bucket to store stack traces:
{
"bucket_name": "name of log bucket to create",
"retention_days": <number of days to retain stack traces, default to 30 days if not set>
}
Enter {} to not create separate bucket for stack traces.
Enter a value: {}
var.monitoring_dashboard_config
Configuration for monitoring dashboard:
{
"node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
"outlier_count": <the number of outliers to show on dashboard, default to 10 if not set>
}
Enter {} to set default configuration for monitoring dashboard.
Enter a value: {}
Esempio 2
Questo esempio configura la dashboard in modo da visualizzare cinque VM TPU outlier.
var.project_name
Name of gcp project
Enter a value: <gcp_project_name>
var.stack_trace_bucket_config
Configuration to create a log bucket to store stack traces:
{
"bucket_name": "name of log bucket to create",
"retention_days": <number of days to retain stack traces, default to 30 days if not set>
}
Enter {} to not create separate bucket for stack traces.
Enter a value: {}
var.monitoring_dashboard_config
Configuration for monitoring dashboard:
{
"node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
"outlier_count": <number of outliers to show on dashboard, default to 10 if not set>
}
Enter {} to set default configuration for monitoring dashboard.
Enter a value: {"outlier_count":5}
Esempio 3
Questa configurazione crea una dashboard che mostra 10 VM TPU outlier utilizzando "test" come prefisso per i nomi dei nodi generati dalla dashboard:
var.project_name
Name of gcp project
Enter a value: <gcp_project_name>
var.stack_trace_bucket_config
Configuration to create a log bucket to store stack traces:
{
"bucket_name": "name of log bucket to create",
"retention_days": <number of days to retain stack traces, default to 30 days if not set>
}
Enter {} to not create separate bucket for stack traces.
Enter a value: {}
var.monitoring_dashboard_config
Configuration for monitoring dashboard:
{
"node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
"outlier_count": <number of outliers to show on dashboard, default to 10 if not set>
}
Enter {} to set default configuration for monitoring dashboard.
Enter a value: {"node_prefix":"test"}
Esempio 4
Questa configurazione crea una dashboard che mostra 5 VM outlier utilizzando "test" come prefisso per i nomi dei nodi generati dalla dashboard.
var.project_name
Name of gcp project
Enter a value: <gcp_project_name>
var.stack_trace_bucket_config
Configuration to create a log bucket to store stack traces:
{
"bucket_name": "name of log bucket to create",
"retention_days": <number of days to retain stack traces, default to 30 days if not set>
}
Enter {} to not create separate bucket for stack traces.
Enter a value: {}
var.monitoring_dashboard_config
Configuration for monitoring dashboard:
{
"node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
"outlier_count": "number of outliers to show on dashboard, default to 10 if not set"
}
Enter {} to set default configuration for monitoring dashboard.
Enter a value: {"node_prefix":"test", "outlier_count":5}
Esempio 5
Questo esempio configura un bucket Cloud Storage per archiviare le tracce dello stack. Le tracce dello stack hanno un criterio di conservazione predefinito di 30 giorni.
var.project_name
Name of gcp project
Enter a value: <gcp_project_name>
var.stack_trace_bucket_config
Configuration to create a log bucket to store stack traces:
{
"bucket_name": "name of log bucket to create",
"retention_days": <number of days to retain stack traces, default to 30 days if not set>
}
Enter {} to not create separate bucket for stack traces.
Enter a value: {"bucket_name":"stack_trace_log_bucket"}
var.monitoring_dashboard_config
Configuration for monitoring dashboard:
{
"node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
"outlier_count": "number of outliers to show on dashboard, default to 10 if not set"
}
Enter {} to set default configuration for monitoring dashboard.
Enter a value: {}
Esempio 6
Questo esempio configura un bucket Cloud Storage con un periodo di conservazione di 20 giorni.
var.project_name
Name of gcp project
Enter a value: <gcp_project_name>
var.stack_trace_bucket_config
Configuration to create a log bucket to store stack traces:
{
"bucket_name": "name of log bucket to create",
"retention_days": <number of days to retain stack traces, default to 30 days if not set>
}
Enter {} to not create separate bucket for stack traces.
Enter a value: {"bucket_name":"stack_trace_log_bucket", "retention_days":20}
var.monitoring_dashboard_config
Configuration for monitoring dashboard:
{
"node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
"outlier_count": "number of outliers to show on dashboard, default to 10 if not set"
}
Enter {} to set default configuration for monitoring dashboard.
Enter a value: {}