Painéis de controlo de monitorização e registo do Cloud TPU
O repositório dos painéis de controlo de monitorização e depuração da Cloud TPU contém toda a infraestrutura e lógica necessárias para monitorizar e depurar fluxos de trabalho executados em VMs de TPU. Requer o Terraform, uma ferramenta de código aberto que usa ficheiros de configuração para definir e gerir a infraestrutura. Google Cloud
Painel de controlo de monitorização
O painel de controlo de monitorização apresenta as seguintes métricas da Cloud TPU:
- Utilização da CPU no worker da TPU:
cpu/utilization
- Utilização de memória pela VM da TPU:
memory/usage
- Bytes de rede recebidos por um Pod através da rede:
network/received_bytes_count
- Bytes de rede enviados por um pod através da rede:
network/sent_bytes_count
- Duração de inatividade do TensorCore do chip da TPU:
tpu/tensorcore/idle_duration
O Cloud Monitoring gera automaticamente dados de métricas. Para ver o painel de controlo de monitorização, aceda à Google Cloud consola, selecione Monitorização e, de seguida, Painéis de controlo. Selecione GCE - TPU Monitoring Dashboard na lista de painéis de controlo. O painel de controlo de monitorização da Cloud TPU é composto por vários painéis, cada um a apresentar dados de métricas. Para cada métrica da Cloud TPU, o painel de controlo apresenta os valores atuais das métricas, a média e os valores máximos em painéis separados. Os painéis de média e máximo permitem-lhe identificar VMs de TPU atípicas para investigação adicional.
Também pode ver métricas de TPU através do Explorador de métricas na consola do Cloud Monitoring.Google Cloud Para mais informações, consulte o artigo Monitorizar VMs de TPU na nuvem.
Painel de controlo de registo
O painel de controlo de registo apresenta duas secções:
- Métricas de registo: apresenta a contagem de entradas de rastreio de pilha recolhidas para cada trabalhador da VM de TPU.
- Painel de registos: apresenta todas as entradas de rastreio da pilha com colunas para gravidade, data/hora e um resumo da entrada. Pode filtrar este painel de registos por uma string ou etiquetas de worker da TPU, como
node_id
eworker_id
. Por exemplo, se adicionar um filtroresource.labels.node_id:"testing"
, são apresentadas todas as entradas de rastreio recolhidas para o trabalhador da VM da TPU com o ID definido como "testing".
O Cloud Logging recolhe entradas de registo geradas por Google Cloud serviços, serviços de terceiros, frameworks de ML e o seu código. Pode instalar o pacote
cloud-tpu-diagnostics
PyPi
para escrever rastreios de pilha do Python quando ocorre uma falha ou uma exceção, ou quando
a sua carga de trabalho não responde. Para mais informações, consulte o artigo
Depurar VMs do Cloud TPU.
Para ver o painel de controlo de registo, aceda à Google Cloud consola, selecione Monitorização e, de seguida, Painéis de controlo. Selecione GCE - TPU Logging Dashboard na lista de painéis de controlo.
Configure os painéis de controlo de métricas e registo
Siga estas instruções para configurar as métricas e os painéis de controlo de registo.
Clone o repositório do painel de controlo
Pode clonar o repositório diretamente do repositório GitHub de monitorização e depuração do Cloud TPU ou a partir da linha de comandos:
git clone https://github.com/google/cloud-tpu-monitoring-debugging.git
Instale o Terraform
- Instale o Terraform na sua máquina local.
- Execute
terraform init
para adicionar os plug-ins necessários e criar o diretório.terraform
. - Execute
terraform init –upgrade
para instalar as atualizações disponíveis.
Configure autorizações para monitorização e registo
As funções de administrador de monitorização, editor de configuração do painel de controlo de monitorização e administrador de registo são necessárias para implementar recursos de monitorização no seu Google Cloud projeto. Para mais informações sobre as funções de monitorização, consulte o artigo Conceda acesso ao Cloud Monitoring.
Crie um contentor do Cloud Storage
Crie um contentor do Cloud Storage para armazenar ficheiros de estado do Terraform. Também pode usar um contentor do Cloud Storage existente. A utilização de um contentor do Cloud Storage garante que vários utilizadores podem executar o Terraform em simultâneo e aceder à mesma infraestrutura.
Num Cloud Shell, crie o contentor do Cloud Storage:
gcloud storage buckets create gs://${GCS_BUCKET_NAME}
Ative o controlo de versões de objetos para manter o histórico das suas implementações. A ativação do controlo de versões de objetos aumenta os custos de armazenamento, que pode mitigar configurando a gestão do ciclo de vida de objetos para eliminar versões de estado antigas.
gcloud storage buckets update gs://${GCS_BUCKET_NAME} --versioning
Inicialize o Terraform
Execute terraform init
no diretório gcp_resources/gce
do repositório.
O comando pede-lhe que introduza o nome de um contentor do Cloud Storage para armazenar
ficheiros de estado do Terraform.
Implemente os painéis de controlo de monitorização e registo
Execute terraform apply
no diretório gcp_resources/gce
para implementar os painéis de controlo de monitorização e registo no seu projeto Google Cloud . O comando
pede-lhe que forneça valores para as seguintes variáveis:
var.monitoring_dashboard_config
var.project_name
var.stack_trace_bucket_config
Se quiser implementar apenas o painel de controlo de monitorização, execute terraform init
e terraform apply
no diretório gcp_resources/gce/dashboard/monitoring_dashboard
. Da mesma forma, execute estes comandos no diretório gcp_resources/gce/dashboard/logging_dashboard
para implementar apenas o painel de controlo de registo.
Exemplos de configurações
Quando executa terraform apply
, o Terraform pede-lhe alguns valores de variáveis de configuração. Esta secção apresenta alguns exemplos de configurações que pode usar.
Cada exemplo mostra o resultado apresentado pelo comando terraform apply, bem como os valores sugeridos para cada variável de configuração em negrito. A entrada tem de estar no formato JSON entre chavetas ("{}").
Exemplo 1
Este exemplo especifica o Google Cloud nome do projeto e usa os valores predefinidos para o resto da configuração.
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: {}
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: {}
Exemplo 2
Este exemplo configura o painel de controlo para apresentar 5 VMs de TPU com valores atípicos.
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}
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: {}
Exemplo 3
Esta configuração cria um painel de controlo que mostra 10 VMs de TPU com valores atípicos usando "test" como prefixo para os nomes dos nós gerados pelo painel de controlo:
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"}
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: {}
Exemplo 4
Esta configuração cria um painel de controlo que mostra 5 VMs com valores atípicos usando "test" como o prefixo para os nomes dos nós gerados pelo painel de controlo.
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}
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: {}
Exemplo 5
Este exemplo configura um contentor do Cloud Storage para armazenar rastreios de pilha. Os rastreios de pilha têm uma política de retenção predefinida de 30 dias.
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: {}
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"}
Exemplo 6
Este exemplo configura um contentor do Cloud Storage com um período de retenção de 20 dias.
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: {}
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}