Como monitorar nós da Cloud TPU

Neste guia, explicamos como usar o Google Cloud Monitoring para monitorar os nós do Cloud TPU. O Google Cloud Monitoring coleta automaticamente metrics e registros do Cloud TPU e do Compute Engine host. Esses dados podem ser usados para monitorar a integridade do Cloud TPU e do Compute Engine.

As métricas permitem que você acompanhe uma quantidade numérica ao longo do tempo, por exemplo, utilização de CPU, uso de rede ou utilização de MXU. Os registros capturam eventos em um momento específico. As entradas de registro são escritas pelo próprio código, por serviços do Google Cloud, por aplicativos de terceiros e pela infraestrutura do Google Cloud. Também é possível gerar métricas a partir dos 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.

Neste guia, abordamos o Google Cloud Monitoring e mostramos como:

  • Ver métricas da 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

Para seguir este documento, é necessário ter algum conhecimento básico do Google Cloud Monitoring. Você precisa ter uma VM do Compute Engine e recursos do Cloud TPU criados antes de começar a gerar e trabalhar com o Google Cloud Monitoring. Consulte o guia de início rápido do Cloud TPU para ver mais detalhes.

Métricas

As métricas do Google Cloud são geradas automaticamente pelas VMs do Compute Engine e pelo ambiente de execução do Cloud TPU. As métricas a seguir 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

Utilização de CPU

A métrica cpu/utilization rastreia a utilização atual da CPU no worker do Cloud TPU, representada em porcentagem. Os valores geralmente ficam 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 atualmente em uso 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 da 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 que o TensorCore de cada chip da TPU permanece 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 como zero. Quando o TensorCore não está mais em uso, 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 do Cloud TPU v2-8 com um worker. Cada worker tem quatro ícones. Neste exemplo, os quatro chips têm os mesmos valores para tpu/tensorcore/idle_duration, então os gráficos são sobrepostos uns aos outros.

imagem

Utilização de MXU

A métrica tpu/mxu/utilization rastreia a utilização atual de MXU no worker da TPU, representada como uma porcentagem. Os valores normalmente 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 ver uma lista completa de métricas geradas pelo Cloud TPU, consulte Métricas do Cloud TPU.

Como ver métricas

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

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

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

Use o botão Faça um teste! na documentação de projects.timeSeries.query para recuperar 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 recuperar 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 Execute para recuperar os resultados da mensagem HTTP POST.

O documento Referência da linguagem de consulta do Monitoring tem mais informações sobre como personalizar essa consulta.

É possível criar políticas de alerta que instruem 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 de inatividade do TensorCore. Sempre que essa métrica exceder 24 horas, o Cloud Monitoring vai enviar um e-mail para o endereço registrado.

  1. Acessar o console do Monitoring
  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 e 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ÓXIMA 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 de limite, digite 86400000
  12. Clique em PRÓXIMA.
  13. Em Canais de notificação, selecione seu 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 depois em CRIAR POLÍTICA.

Quando a duração de inatividade do TensorCore ultrapassa 24 horas, um e-mail é enviado para o endereço 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. Para acessar os registros, use o visualizador de registros ou a API Logs. Para mais informações sobre a geração de registros do Google Cloud, consulte Google Cloud Logging.

Na Análise de registros, é possível selecionar um tipo de recurso:

  • Trabalhador da Cloud TPU -> 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 de workers 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.

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. Acessar o visualizador de registros do Google Cloud
  2. Clique na lista suspensa Recurso.
  3. Clique em Cloud TPU Worker.
  4. Selecione uma zona
  5. Selecione a Cloud TPU que você quer usar
  6. Clique em Aplicar. Os registros são exibidos nos resultados da consulta

Para acessar os registros de recursos auditados:

  1. Acessar o visualizador de registros do Google Cloud
  2. Clique na lista suspensa Recurso.
  3. Clique em Recurso auditado e em Cloud TPU.
  4. Escolha a API Cloud TPU do seu interesse
  5. Clique em Aplicar. Os registros são exibidos nos resultados da consulta
  6. Escolher as APIs que começam com google.cloud.tpu.v1.Tpu

Consultar os registros do Google Cloud

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

Noções básicas sobre a saída de registros de recursos auditados

Clique em qualquer entrada de registro para expandi-la. Um campo chamado protoPayload será exibido. Expanda protoPayload para ver 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 (apenas registros de auditoria)
  • request -> @type: o tipo da solicitação.
  • request -> node: detalhes sobre o nó da Cloud TPU
  • request -> node_id: o nome da TPU
  • severity: a gravidade do registro

Noções básicas sobre a saída de registros de workers do Cloud TPU

Clique em qualquer entrada de registro para expandi-la. Um campo chamado jsonPayload será exibido. Expanda jsonPayload para ver vários subcampos:

  • accelerator_type: o tipo de acelerador.
  • consumer_project: o projeto em que a 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 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 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 maneira 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. Navegue até a Análise de registros
  2. Na caixa de consulta, insira a seguinte consulta para extrair todas as entradas de registro com 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 exibir o Editor de métricas.

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

  5. Digite um nome, uma descrição opcional e uma unidade de medida para a métrica. insira "matrix_unit_utilization_percent" e "MXU usage" nos campos Nome e Descrição, respectivamente

  6. O filtro é pré-preenchido com o script que você inseriu na Análise de registros

  7. Clique em CRIAR MÉTRICA.

  8. Clique em Explorar métricas para conferir 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 com 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 (espera-se um atraso de cerca de dois 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 de inatividade do Tensorcore, faça o seguinte:

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