Como monitorar nós do Cloud TPU

Este guia explica como usar o Google Cloud Monitoring para monitorar os nós do Cloud TPU. Google Cloud O monitoramento coleta automaticamente métricas e registros do Cloud TPU e do host do Compute Engine. Esses dados podem ser usados para monitorar a integridade da Cloud TPU e do Compute Engine.

As métricas permitem acompanhar uma quantidade numérica ao longo do tempo, por exemplo, a utilização da CPU, da rede ou da MXU. Os registros capturam eventos em um momento específico. As entradas de registro são gravadas pelo seu próprio código, pelos serviços do Google Cloud , aplicativos de terceiros e pela infraestrutura 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 alerta com base em valores de métricas ou entradas de registro.

Este guia discute Google Cloud Monitoramento e mostra como:

  • Conferir as métricas do Cloud TPU
  • Configurar políticas de alerta de métricas do Cloud TPU
  • Consultar registros do Cloud TPU
  • criar métricas com base em registros para configurar alertas e visualizar painéis.

Pré-requisitos

Este documento considera alguns conhecimentos básicos sobre Google Cloud Monitoramento. É necessário ter uma VM do Compute Engine e os recursos do Cloud TPU criados antes de começar a gerar e trabalhar com o Google Cloud Monitoramento. Consulte o Guia de início rápido do Cloud TPU para mais detalhes.

Métricas

As métricasGoogle Cloud são geradas automaticamente pelas VMs do Compute Engine e pelo ambiente de execução do Cloud TPU. As seguintes métricas são geradas pelos nós do Cloud TPU:

  • cpu/utilization
  • memory/usage
  • network/received_bytes_count
  • network/sent_bytes_count
  • tpu/mxu/utilization
  • tpu/tensorcore/idle_duration

Uso da CPU

A métrica cpu/utilization rastreia a utilização atual da CPU no worker da Cloud TPU, representada 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 quando ele é exibido.

Uso da memória

A métrica memory/usage rastreia a memória que está sendo usada pela VM do Cloud TPU em bytes. Essa métrica é amostrada a cada 60 segundos. Pode levar até 180 segundos entre o momento em que um valor é gerado e quando 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 quando ele é exibido.

Contagem de bytes enviados pela rede

A métrica network/sent_bytes_count rastreia o número de bytes cumulativos que a VM do Cloud TPU enviou pela rede em um determinado momento. Pode levar até 180 segundos entre o momento em que um valor é gerado e quando ele é exibido.

Duração de inatividade do TensorCore

A métrica tpu/tensorcore/idle_duration rastreia o número de segundos em que o TensorCore de cada chip da TPU ficou inativo. Essa métrica está disponível para cada chip em todas as TPUs em uso. Se um TensorCore estiver em uso, o valor da duração de inatividade será redefinido para zero. Quando o TensorCore não está mais em uso, o valor da duração inativa começa a aumentar.

O gráfico a seguir mostra a métrica tpu/tensorcore/idle_duration de uma VM do Cloud TPU v2-8 com um worker. Cada worker tem quatro chips. Neste exemplo, todos os quatro chips têm os mesmos valores para tpu/tensorcore/idle_duration, então os gráficos são sobrepostos.

imagem

Utilização de MXU

A métrica tpu/mxu/utilization rastreia a utilização atual da MXU no worker da TPU, representada como uma porcentagem. Os valores geralmente são números entre 0,0 e 100,0. Amostras coletadas a cada 60 segundos. Após a amostragem, os dados não são visíveis por até 180 segundos.

Para uma lista completa de métricas geradas pelo Cloud TPU, consulte Métricas do Cloud TPU.

Como ver métricas

É possível conferir as métricas usando o Metrics Explorer no console Google Cloud .

No Metrics Explorer, clique em SELECIONAR UMA MÉTRICA e pesquise Cloud TPU Worker. Se a opção Mostrar apenas recursos e métricas ativos estiver ativada, somente as métricas que estão sendo geradas serão exibidas. Clique em Cloud TPU Worker para mostrar as métricas disponíveis.

Também é possível acessar métricas usando chamadas HTTP do curl:

Use o botão Testar na documentação projects.timeSeries.query para extrair o valor de uma métrica no período especificado.

  1. Preencha o nome no seguinte formato: projects/{project-name}
  2. Adicione uma consulta à seção Corpo da solicitação. Confira a seguir um exemplo de consulta para extrair a métrica de duração de inatividade da zona especificada nos últimos 5 minutos: fetch tpu_worker | filter zone = 'us-central2-b' | metric tpu.googleapis.com/tpu/tensorcore/idle_duration | within 5m"
  3. Clique em Executar para recuperar 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 que informem ao Google Cloud Monitoramento que envie 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 alerta para a métrica TensorCore Idle Duration. Sempre que essa métrica exceder 24 horas, o Cloud Monitoring vai enviar um e-mail para o endereço de e-mail registrado.

  1. Acessar o console de monitoramento
  2. No painel de navegação, clique em Alertas.
  3. Clique em EDITAR CANAIS DE NOTIFICAÇÃO.
  4. Em E-mail, clique em ADICIONAR NOVO.
  5. Digite um endereço de e-mail, um nome de exibição e clique em SALVAR.
  6. Clique em CRIAR POLÍTICA.
  7. Clique em SELECIONAR UMA MÉTRICA, selecione Duração de inatividade do Tensorcore e clique em APLICAR.
  8. Clique em PRÓXIMO e em Limite.
  9. Em Gatilho de alerta, selecione Qualquer série temporal viola.
  10. Em Posição do limite, selecione Acima do limite.
  11. Em Valor do limite, digite 86400000
  12. Clique em PRÓXIMA.
  13. Em Notification Channels, selecione o canal de notificação por e-mail e clique em OK.
  14. Digite um nome para a política de alertas
  15. Clique em PRÓXIMA e em CRIAR POLÍTICA.

Quando a duração inativa do TensorCore ultrapassa 24 horas, um e-mail é enviado para o endereço de e-mail especificado.

Logging

As entradas de registro são gravadas por serviços Google Cloud , serviços de terceiros, frameworks de ML ou seu código. É possível conferir os registros usando o Visualizador de registros ou a API Logs. Para mais informações sobre a geração de registros Google Cloud , consulte Geração de registrosGoogle Cloud .

No Logs Explorer, é possível selecionar um tipo de recurso:

  • Cloud TPU Worker -> Zona -> ID do nó
  • Recurso auditado -> Cloud TPU -> API (google.cloud.tpu.v1.Tpu.CreateNode, google.cloud.tpu.v1.Tpu.DeleteNode, google.cloud.tpu.v1.Tpu.UpdateNode)

Os registros do worker da Cloud TPU contêm informações sobre um worker específico da Cloud TPU em uma zona específica, por exemplo, a quantidade de memória disponível no worker da Cloud TPU (system_available_memory_GiB).

Os registros de recursos auditados contêm informações sobre quando uma API específica do Cloud TPU foi chamada e quem fez a chamada. Por exemplo, CreateNode, UpdateNode e DeleteNode.

Os 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.

Como visualizar registros da Cloud TPU

  1. Acesse o Google Cloud Visualizador de registros
  2. Clique no menu suspenso Recurso.
  3. Clique em Cloud TPU Worker.
  4. Selecione uma zona
  5. Selecione a Cloud TPU de seu interesse
  6. Clique em Aplicar. Os registros são exibidos nos resultados da consulta

Para conferir os registros de recursos auditados:

  1. Acesse o Google Cloud Visualizador de registros
  2. Clique no menu suspenso Recurso.
  3. Clique em Recurso auditado e em Cloud TPU.
  4. Escolha a API Cloud TPU de seu interesse
  5. Clique em Aplicar. Os registros são exibidos nos resultados da consulta
  6. Escolha as APIs que começam com google.cloud.tpu.v1.Tpu

Registros Google Cloud de consulta

Quando você consulta os registros no console do Google Cloud , a página executa uma consulta padrão. Para conferir a consulta, selecione a chave seletora Show query. É possível modificar a consulta padrão ou criar uma nova. Para mais informações, consulte Criar consultas no Explorador de registros.

Como entender a saída de registro dos registros de recursos auditados

Clique em qualquer entrada de registro para expandi-la e encontre um campo chamado protoPayload. Abra protoPayload e você vai encontrar vários subcampos:

  • logName: o nome do registro
  • protoPayload -> @type: o tipo do 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.

Como entender a saída de registro dos logs do worker do Cloud TPU

Clique em qualquer entrada de registro para expandi-la e encontre um campo chamado jsonPayload. Abra jsonPayload e você vai encontrar vários subcampos:

  • accelerator_type: o tipo de acelerador
  • consumer_project: o projeto em que a Cloud TPU está hospedada
  • evententry_timestamp: o horário em que o registro foi gerado
  • system_available_memory_GiB: a memória disponível no worker do Cloud TPU (0 a 350 GB)

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 saber como criar métricas com base em registros de forma 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.

  1. Acesse a Análise de registros
  2. Na caixa de consulta, insira a consulta a seguir para extrair todas as entradas de registro que tiverem system_available_memory_GiB definido para o worker principal do Cloud TPU:

    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:*
    
  3. Clique em Criar métrica para abrir o Editor de métricas.

  4. Em Tipo de métrica, escolha Distribuição.

  5. Digite um nome, uma descrição opcional e a unidade de medida da métrica. Insira "matriz_unit_utilization_percent" e "Utilização de MXU" nos campos Nome e Descrição, respectivamente.

  6. O filtro é preenchido com o script inserido no Explorador de registros.

  7. Clique em CRIAR MÉTRICA.

  8. Clique em Analisar métricas para conferir a nova métrica. Pode levar alguns minutos para que as métricas sejam exibidas.

Como criar métricas com base em registros de forma 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 mais informações, 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 (previsão de cerca de 2 minutos de atraso). 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 baseadas em métricas.

Como criar painéis

Para criar um painel no Cloud Monitoring para a métrica Duração inativa do Tensorcore:

  1. Acessar o console de monitoramento
  2. No painel de navegação, clique em Painéis.
  3. Clique em CRIAR PAINEL e em Adicionar gráfico.
  4. Escolha o tipo de gráfico que você quer adicionar. Neste exemplo, escolha Linha.
  5. Digite um título para o painel
  6. Clique no botão abaixo de Recurso e métrica.
  7. Role a lista de recursos/métricas para baixo e selecione Cloud TPU Worker -> Tpu -> Duração de inatividade do Tensorcore.
  8. Clique em Aplicar.
  9. Para filtrar o conteúdo do painel, clique em CRIAR FILTROS DE PAINEL.
  10. No campo Rótulo, defina project_id como seu projeto.
  11. Clique em ADD e defina zone como a zona em que você criou o TPU.
  12. Adicione outro filtro para node_id e especifique o nome da Cloud TPU.