Como monitorar VMs da Cloud TPU
Neste guia, explicamos como usar o Google Cloud Monitoring para monitorar as VMs da Cloud TPU. O Google Cloud Monitoring coleta automaticamente métricas e registros do Cloud TPU e do Compute Engine que o hospeda. Esses dados podem ser usados para monitorar a integridade do Cloud TPU e do Compute Engine.
As métricas permitem que você rastreie uma quantidade numérica ao longo do tempo, por exemplo, utilização de CPU, uso de rede ou duração ociosa do TensorCore. Eles registram eventos em um momento específico. As entradas de registro são gravadas pelo próprio código, serviços do Google Cloud, aplicativos de terceiros e a infraestrutura do Google Cloud. Também é possível gerar métricas com base nos dados presentes em uma entrada de registro criando uma métrica com base em registros. Também é possível definir políticas de alertas com base em valores de métricas ou entradas de registro.
Neste guia, falamos sobre o Google Cloud Monitoring e mostramos como:
- Ver métricas do Cloud TPU
- Configurar políticas de alertas de métricas do Cloud TPU
- Consultar registros do Cloud TPU
- Crie métricas com base em registros para configurar alertas e visualizar painéis
Pré-requisitos
Neste documento, você precisa ter algum conhecimento básico sobre o Google Cloud Monitoring. Antes de começar a gerar e trabalhar com o Google Cloud Monitoring, é necessário ter uma VM do Compute Engine e recursos do Cloud TPU. Consulte o guia de início rápido do Cloud Cloud TPU para ver mais detalhes.
Métricas
As métricas do Google Cloud são geradas automaticamente por VMs do Compute Engine e pelo ambiente de execução do Cloud TPU. As métricas a seguir são geradas pelas VMs da Cloud TPU:
memory/usage
network/received_bytes_count
network/sent_bytes_count
cpu/utilization
tpu/tensorcore/idle_duration
Uso da memória
A métrica memory/usage
rastreia a memória atualmente em uso pela VM do Cloud TPU em bytes. A amostragem dessa métrica é feita a cada 60 segundos. Pode levar até 180 segundos
entre o momento em que um valor é gerado e o momento em que ele é exibido.
Contagem de bytes recebidos da rede
A métrica network/received_bytes_count
rastreia o número de bytes cumulativos de dados que a VM do Cloud TPU recebeu pela rede em um determinado momento. Pode levar até
180 segundos entre o momento em que um valor é gerado e o momento em que ele é exibido.
Contagem de bytes enviados pela rede
A métrica network/sent_bytes_count
monitora o número de bytes cumulativos enviados pela
VM do Cloud TPU pela rede em um determinado momento. Pode levar até 180 segundos
entre o momento em que um valor é gerado e o momento em que ele é exibido.
Uso de CPU
A métrica cpu/utilization
rastreia o uso atual da CPU no worker do Cloud TPU, representado como uma porcentagem. Os valores geralmente estão entre 0,0 e 100,0, mas podem exceder 100,0. Amostras coletadas a cada 60 segundos. Pode levar até 180 segundos
entre o momento em que um valor é gerado e o momento em que ele é exibido.
Duração ociosa do TensorCore
A métrica tpu/tensorcore/idle_duration
monitora o número de segundos de inatividade de cada chip da TPU. Essa métrica está disponível para cada ícone em todos os
Cloud TPU em uso. Se um TensorCore estiver em uso, o valor da duração de inatividade será redefinido para zero. Quando o TensorCore não estiver mais sendo usado, o valor da duração de inatividade começa a aumentar.
O gráfico a seguir mostra a métrica tpu/tensorcore/idle_duration
de uma VM da Cloud TPU v2-8 que tem um worker. Cada worker tem quatro chips. Neste exemplo, todos os quatro chips têm os mesmos valores para tpu/tensorcore/idle_duration
, de modo que os gráficos são sobrepostos entre si.
Para ver uma lista completa de métricas geradas pelo Cloud TPU, consulte Métricas do Cloud TPU para Google Cloud.
Como ver métricas
É possível visualizar métricas usando o Metrics Explorer no console do Google Cloud.
No Metrics Explorer, clique em SELECT A METRIC e procure Cloud TPU Worker
. Se a opção Mostrar apenas métricas e recursos ativos estiver
ativada, somente as que estiverem sendo geradas serão exibidas. Clique em Cloud TPU Worker para exibir as métricas disponíveis.
Também é possível acessar as métricas usando chamadas HTTP curl:
Use o botão Testar na documentação de projects.timeSeries.query para recuperar o valor de uma métrica no período especificado.
- Preencha o nome neste formato: projects/{project-name}.
- Adicione uma consulta à seção Corpo da solicitação. Veja a seguir um exemplo de consulta
para recuperar a métrica de duração de inatividade da zona especificada nos últimos cinco
minutos
fetch tpu_worker | filter zone = 'us-central2-b' | metric tpu.googleapis.com/tpu/tensorcore/idle_duration | within 5m
- Clique em Execute para fazer a chamada e ver os resultados da mensagem HTTP POST.
O documento de referência da linguagem de consulta do Monitoring tem mais informações sobre como personalizar essa consulta.
É possível criar políticas de alertas para instruir o Google Cloud Monitoring a enviar um alerta quando uma condição for atendida.
Como criar alertas
As etapas nesta seção mostram um exemplo de como adicionar uma política de alertas para a métrica Duração do inatividade do TensorCore. Sempre que essa métrica excede 24 horas, o Cloud Monitoring envia um e-mail para o endereço de e-mail registrado.
- Acessar o console do Monitoring
- No painel de navegação, clique em Alertas.
- Clique em EDITAR CANAIS DE NOTIFICAÇÃO.
- Em E-mail, clique em ADICIONAR NOVO. Digite um endereço de e-mail e um nome de exibição e clique em SALVAR.
- Clique em CRIAR POLÍTICA.
- Clique em SELECIONAR UMA MÉTRICA, selecione Duração ociosa do TensorCore e clique em APLICAR.
- Clique em PRÓXIMA e em Limite.
- Em Acionador de alerta, selecione Qualquer série temporal viola.
- Em Posição do limite, selecione Acima do limite.
- Em Valor do limite, digite
86400000
. - Clique em PRÓXIMA.
- Em Canais de notificação, selecione o canal de notificação por e-mail e clique em OK.
- Digite um nome para a política de alertas
- Clique em PRÓXIMA e em CRIAR POLÍTICA.
Quando a duração de inatividade do TensorCore passa de 24 horas, um e-mail é enviado para o endereço de e-mail especificado.
Geração de registros
As entradas de registro são escritas por serviços do Google Cloud, serviços de terceiros, frameworks de ML ou seu código. É possível ver os registros usando o Visualizador de registros ou a API Logs. Para mais informações sobre a geração de registros no Google Cloud, consulte Google Cloud Logging.
No Explorador de registros, é possível selecionar um tipo de recurso:
- Worker do Cloud TPU -> Zona -> ID do nó
- Recurso auditado -> Cloud TPU -> API (
google.cloud.tpu.v2alpha1.Tpu.CreateNode
,google.cloud.tpu.v2alpha1.Tpu.DeleteNode
,google.cloud.tpu.v2alpha1.Tpu.UpdateNode
)
Os registros do worker do Cloud TPU contêm informações sobre um worker específico do Cloud TPU em uma zona específica, por exemplo, a quantidade de memória disponível no worker do Cloud TPU (system_available_memory_GiB
).
Os registros de recursos auditados contêm informações sobre quando uma API Cloud TPU específica foi chamada e quem fez a chamada. Por exemplo, CreateNode
, UpdateNode
e DeleteNode
.
Frameworks de ML podem gerar registros para stdout e stderr. Esses registros são controlados por variáveis de ambiente e lidos pelo script de treinamento.
Seu código pode gravar registros no Google Cloud Logging. Para mais informações, consulte Gravar registros padrão e Gravar registros estruturados.
Para ver os registros da Cloud TPU:
- Acessar o visualizador de registros do Google Cloud
- Clique na lista suspensa Recurso.
- Clique em Worker do Cloud TPU
- Selecione uma zona
- Selecione o Cloud TPU do seu interesse
- Clique em Aplicar. Os registros são exibidos nos resultados da consulta.
Para ver os registros de recursos auditados:
- Acessar o visualizador de registros do Google Cloud
- Clique na lista suspensa Recurso.
- Clique em Recurso auditado e em Cloud TPU.
- Escolha a API Cloud TPU do seu interesse
- Clique em Aplicar. Os registros são exibidos nos resultados da consulta.
- Escolha as APIs que começam com
google.cloud.tpu.v2alpha1.Tpu
Consultar registros do Google Cloud
Quando você visualiza registros no console do Google Cloud, a página executa uma consulta padrão.
É possível visualizar a consulta selecionando o botão de alternância Show query
. É possível
modificar a consulta padrão ou criar uma nova. Para mais informações, consulte
Criar consultas no Explorador de registros.
Noções básicas sobre a saída de registros de Recursos Auditados
Clique em qualquer entrada de registro para expandi-la e encontrar o campo protoPayload
.
Amplie protoPayload
para ver vários subcampos:
- logName: o nome do registro
- protoPayload -> @type: o tipo de registro
- resourceName: o nome do Cloud TPU
- methodName: o nome do método chamado (somente registros de auditoria)
- request -> @type: o tipo de solicitação.
- request -> node: detalhes sobre o nó do Cloud TPU.
- request -> node_id: o nome da TPU
- severity: a gravidade do registro
Noções básicas sobre a saída de registros do worker da Cloud TPU
Clique em qualquer entrada de registro para expandi-la e encontrar o campo jsonPayload
.
Amplie jsonPayload
para ver vários subcampos:
- accelerator_type: o tipo de acelerador
- consumer_project: o projeto em que o Cloud TPU reside.
- eventEntry_timestamp: a hora em que o registro foi gerado
- system_available_memory_GiB: a memória disponível no worker do Cloud TPU (0 ~ 350 GiB)
Como criar métricas com base em registros
Esta seção descreve como criar métricas com base em registros usadas para configurar painéis e alertas de monitoramento. Para informações sobre como criar métricas com base em registros de maneira programática, consulte Como criar métricas com base em registros de forma programática usando a API REST do Cloud Logging.
O exemplo a seguir usa o subcampo system_available_memory_GiB para demonstrar como criar uma métrica com base em registros para monitorar a memória disponível do worker do Cloud TPU.
- Navegue até o Explorador de registros
Na caixa de consulta, insira a consulta a seguir para extrair todas as entradas de registro com system_available_memory_GiB definidas para o worker do Cloud TPU principal:
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:*
Clique em Criar métrica para exibir o Editor de métricas.
Em Tipo de métrica, escolha Distribuição
Digite um nome, uma descrição opcional e uma unidade de medida para a métrica. digite "matriz_unit_utilization_percent" e "utilização de MXU" nos campos Name e Description, respectivamente
O filtro é pré-preenchido com o script que você inseriu no Explorador de registros.
Clique em CRIAR MÉTRICA.
Clique em Explorar métricas para visualizar a nova métrica. Pode levar alguns minutos até que suas métricas sejam exibidas
Como criar métricas com base em registros de maneira programática usando a API REST do Cloud Logging
Também é possível criar métricas com base em registros usando a API Cloud Logging. Para saber mais, consulte Como criar uma métrica de distribuição.
Como criar painéis e alertas usando métricas com base em registros
Os painéis são úteis para visualizar métricas (aguardam aproximadamente 2 minutos). Os alertas são úteis para enviar notificações quando ocorrem erros. Para mais informações, consulte Gerenciar painéis personalizados e Criar políticas de alertas com base em métricas.
Como criar painéis
Para criar um painel no Cloud Monitoring para a métrica de duração ociosa do TensorCore:
- Acessar o console do Monitoring
- No painel de navegação, clique em Painéis.
- Clique em CRIAR PAINEL e Adicionar gráfico.
- Escolha o tipo de gráfico que você quer adicionar. Para este exemplo, escolha Linha
- Digite um título para o painel
- Clique no botão abaixo de Recurso e métrica
- Role a lista de recursos/métricas para baixo e selecione Cloud TPU Worker -> Tpu -> Duração do tempo de inatividade do TensorCore.
- Clique em Aplicar.
- Para filtrar o conteúdo do painel, clique em CRIAR FILTROS DE PAINEL.
- No campo Label, defina project_id como seu projeto.
- Clique em ADICIONAR e defina zona como a zona em que você criou a TPU
- Adicione outro filtro para o node_id e especifique o nome do Cloud TPU