Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

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.

image

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.

  1. Preencha o nome neste formato: projects/{project-name}.
  2. 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
  3. 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.

  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. Digite um endereço de e-mail e um nome de exibição e clique em SALVAR.
  5. Clique em CRIAR POLÍTICA.
  6. Clique em SELECIONAR UMA MÉTRICA, selecione Duração ociosa do TensorCore e clique em APLICAR.
  7. Clique em PRÓXIMA e em Limite.
  8. Em Acionador de alerta, selecione Qualquer série temporal viola.
  9. Em Posição do limite, selecione Acima do limite.
  10. Em Valor do limite, digite 86400000.
  11. Clique em PRÓXIMA.
  12. Em Canais de notificação, selecione o canal de notificação por e-mail e clique em OK.
  13. Digite um nome para a política de alertas
  14. 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:

  1. Acessar o visualizador de registros do Google Cloud
  2. Clique na lista suspensa Recurso.
  3. Clique em Worker do Cloud TPU
  4. Selecione uma zona
  5. Selecione o Cloud TPU do seu interesse
  6. Clique em Aplicar. Os registros são exibidos nos resultados da consulta.

Para ver 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. 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.

  1. Navegue até o Explorador de registros
  2. 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:*
    
  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. digite "matriz_unit_utilization_percent" e "utilização de MXU" nos campos Name e Description, respectivamente

  6. O filtro é pré-preenchido com o script que você inseriu no Explorador de registros.

  7. Clique em CRIAR MÉTRICA.

  8. 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:

  1. Acessar o console do Monitoring
  2. No painel de navegação, clique em Painéis.
  3. Clique em CRIAR PAINEL e 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 a lista de recursos/métricas para baixo e selecione Cloud TPU Worker -> Tpu -> Duração do tempo 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 Label, defina project_id como seu projeto.
  11. Clique em ADICIONAR e defina zona como a zona em que você criou a TPU
  12. Adicione outro filtro para o node_id e especifique o nome do Cloud TPU