Painéis de monitoramento e de geração de registros do Cloud TPU
O repositório de painéis de monitoramento e depuração do Cloud TPU contém toda a infraestrutura e a lógica necessárias para monitorar e depurar fluxos de trabalho em execução em VMs de TPU. Ele exige o Terraform, uma ferramenta de código aberto que usa arquivos de configuração para definir e gerenciar a infraestrutura do Google Cloud.
Painel de monitoramento
O painel de monitoramento mostra as seguintes métricas do Cloud TPU:
- Uso da CPU no worker de TPU:
cpu/utilization - Uso da memória pela VM de TPU:
memory/usage - Bytes recebidos da rede por um pod:
network/received_bytes_count - Bytes enviados para a rede por um pod:
network/sent_bytes_count - Duração de inatividade do TensorCore no chip de TPU:
tpu/tensorcore/idle_duration
O Cloud Monitoring gera automaticamente dados de métricas. Para acessar o painel de monitoramento, acesse o console do Google Cloud , selecione Monitoring e Painéis. Selecione Painel de monitoramento de TPU do GCE na lista de painéis. O painel de monitoramento do Cloud TPU é composto por vários painéis que mostram dados de métricas. Para cada métrica do Cloud TPU, o painel mostra os valores atuais, a média e os valores máximos em painéis separados. Os painéis de média e máximo permitem identificar VMs de TPU outliers para investigação adicional.
Também é possível conferir as métricas da TPU usando o Metrics Explorer no console doGoogle Cloud Cloud Monitoring. Para mais informações, consulte Como monitorar VMs do Cloud TPU.
Painel do Logging
O painel de geração de registros mostra duas seções:
- Métricas de registro: mostra a contagem de entradas de stack trace coletadas para cada worker da VM de TPU.
- Painel de registros: mostra todas as entradas de stack trace com colunas de gravidade,
carimbo de data/hora e um resumo. É possível filtrar esse painel de registros por uma
string ou por rótulos de worker da TPU, como
node_ideworker_id. Por exemplo, adicionar um filtroresource.labels.node_id:"testing"mostra todas as entradas de trace coletadas para o worker da VM de TPU com o ID definido como testing.
O Cloud Logging coleta entradas de registro geradas por serviços do Google Cloud , serviços de
terceiros, frameworks de ML e o código. É possível instalar o pacote
cloud-tpu-diagnostics do PyPi
para gravar stack traces do Python em caso de falha ou exceção ou quando
a carga de trabalho não responde. Para mais informações, consulte
Como depurar VMs do Cloud TPU.
Para acessar o painel de geração de registros, acesse o console do Google Cloud , selecione Monitoring e Painéis. Selecione Painel de geração de registros da TPU do GCE na lista de painéis.
Configurar os painéis de métricas e de geração de registros
Siga estas instruções para configurar os painéis de métricas e de geração de registros.
Clonar o repositório do painel
É possível clonar o repositório diretamente do repositório do GitHub de monitoramento e depuração do Cloud TPU ou usando a linha de comando:
git clone https://github.com/google/cloud-tpu-monitoring-debugging.git
Instalar o Terraform
- Instale o Terraform na máquina local.
- Execute
terraform initpara adicionar os plug-ins necessários e criar o diretório.terraform. - Execute
terraform init –upgradepara instalar as atualizações disponíveis.
Configurar permissões para monitoramento e geração de registros
As funções de administrador do Monitoring, editor de configurações do painel do Monitoring e administrador do Logging são necessárias para implantar recursos de monitoramento no projeto do Google Cloud . Para mais informações sobre os papéis do Monitoring, consulte Conceder acesso ao Cloud Monitoring.
Criar um bucket do Cloud Storage
Crie um bucket do Cloud Storage para armazenar os arquivos de estado do Terraform. Também é possível usar um bucket atual do Cloud Storage. Usar um bucket do Cloud Storage garante que vários usuários possam executar o Terraform ao mesmo tempo e acessar a mesma infraestrutura.
No Cloud Shell, crie o bucket do Cloud Storage:
gcloud storage buckets create gs://${GCS_BUCKET_NAME}Ative o controle de versões de objeto para manter o histórico das implantações. Ativar o controle de versões de objeto aumenta os custos de armazenamento, que podem ser reduzidos com a configuração do Gerenciamento do ciclo de vida de objetos para excluir versões mais antigas.
gcloud storage buckets update gs://${GCS_BUCKET_NAME} --versioning
Inicializar o Terraform
Execute terraform init no diretório gcp_resources/gce do repositório.
O comando pede que você insira o nome de um bucket do Cloud Storage para armazenar
os arquivos de estado do Terraform.
Implantar os painéis de monitoramento e de geração de registros
Execute terraform apply no diretório gcp_resources/gce para implantar
os painéis de monitoramento e geração de registros no projeto do Google Cloud . O comando
pede que você forneça valores para as seguintes variáveis:
var.monitoring_dashboard_configvar.project_namevar.stack_trace_bucket_config
Se você quiser implantar apenas o painel de monitoramento, execute terraform init
e terraform apply no diretório
gcp_resources/gce/dashboard/monitoring_dashboard. Também é possível executar esses comandos no
diretório gcp_resources/gce/dashboard/logging_dashboard para implantar apenas o
painel de geração de registros.
Exemplos de configurações
Quando você executa terraform apply, o Terraform solicita alguns valores de variáveis
de configuração. Esta seção fornece alguns exemplos de configurações que você pode usar.
Cada exemplo mostra a saída exibida pelo comando terraform apply e os
valores sugeridos para cada variável de configuração em negrito. A entrada
precisa estar no formato JSON entre chaves ("{}").
Exemplo 1
Este exemplo especifica o nome do projeto do Google Cloud e usa os valores padrão para o restante 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 para mostrar cinco VMs de TPU outliers.
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
Essa configuração cria um painel que mostra 10 VMs de TPU outliers usando test como prefixo dos nomes de nós gerados pelo painel:
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
Essa configuração cria um painel que mostra cinco VMs outliers usando test como prefixo para os nomes de nós gerados pelo painel.
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: {}
Example 5
Este exemplo configura um bucket do Cloud Storage para armazenar stack traces. Os stack traces têm uma política de retenção padrão 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 bucket do Cloud Storage com um período de armazenamento 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}