Supervisa los nodos de Cloud TPU

En esta guía, se explica cómo usar Google Cloud Monitoring para supervisar tu nodo de Cloud TPU. Google Cloud Monitoring recopila automáticamente métricas y registros de tu Cloud TPU y su host de Compute Engine. Estos datos se pueden usar para supervisar el estado de tus Cloud TPU y Compute Engine.

Las métricas te permiten hacer un seguimiento de una cantidad numérica a lo largo del tiempo, por ejemplo, el uso de la CPU, el uso de la red o el uso de la MXU. Los registros capturan eventos en un momento específico. Tu propio código, Google Cloud servicios, aplicaciones de terceros y la Google Cloud infraestructura escriben las entradas de registro. También puedes generar métricas a partir de los datos presentes en una entrada de registro si creas una métrica basada en registros. También puedes establecer políticas de alertas según los valores de las métricas o las entradas de registro.

En esta guía, se analiza la Google Cloud supervisión y se muestra cómo hacer lo siguiente:

  • Cómo ver las métricas de Cloud TPU
  • Configura políticas de alertas de métricas de Cloud TPU
  • Cómo consultar los registros de Cloud TPU
  • Crear métricas basadas en registros para configurar alertas y visualizar paneles

Requisitos previos

En este documento, se supone que tienes conocimientos básicos de Google Cloud Supervisión. Debes tener creados recursos de VM de Compute Engine y Cloud TPU para poder comenzar a generar Google Cloud Supervisión y trabajar con ella. Consulta la Guía de inicio rápido de Cloud TPU para obtener más detalles.

Métricas

Las métricas deGoogle Cloud se generan automáticamente con las VMs de Compute Engine y el entorno de ejecución de Cloud TPU. Los nodos de Cloud TPU generan las siguientes métricas:

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

Uso de CPU

La métrica cpu/utilization realiza un seguimiento del uso de CPU actual en el trabajador de Cloud TPU, representado como un porcentaje. Los valores suelen estar entre 0.0 y 100.0, pero pueden superar los 100.0. Se hace un muestreo cada 60 segundos. Pueden transcurrir hasta 180 segundos entre el momento en que se genera un valor y el momento en que se muestra.

Uso de memoria

La métrica memory/usage realiza un seguimiento de la memoria que usa actualmente la VM de Cloud TPU en bytes. Esta métrica se muestrea cada 60 segundos. Pueden transcurrir hasta 180 segundos entre el momento en que se genera un valor y el momento en que se muestra.

Recuento de bytes recibidos de red

La métrica network/received_bytes_count realiza un seguimiento de la cantidad de bytes acumulados de datos que la VM de Cloud TPU recibió a través de la red en un momento determinado. El tiempo que transcurre entre el momento en que se genera un valor y el momento en que se muestra puede ser de hasta 180 segundos.

Recuento de bytes enviados de red

La métrica network/sent_bytes_count realiza un seguimiento de la cantidad de bytes acumulados que la VM de Cloud TPU envió a través de la red en un momento determinado. Pueden transcurrir hasta 180 segundos entre el momento en que se genera un valor y el momento en que se muestra.

Duración inactiva de TensorCore

La métrica tpu/tensorcore/idle_duration realiza un seguimiento de la cantidad de segundos que el TensorCore de cada chip TPU estuvo inactivo. Esta métrica está disponible para cada chip en todas las TPU en uso. Si se está usando un TensorCore, el valor de la duración inactiva se restablece a cero. Cuando el TensorCore ya no está en uso, el valor de la duración inactiva comienza a aumentar.

En el siguiente gráfico, se muestra la métrica tpu/tensorcore/idle_duration de una VM de Cloud TPU v2-8 que tiene un trabajador. Cada trabajador tiene cuatro chips. En este ejemplo, los cuatro chips tienen los mismos valores para tpu/tensorcore/idle_duration, por lo que los gráficos se superponen entre sí.

imagen

Uso de MXU

La métrica tpu/mxu/utilization realiza un seguimiento del uso actual de MXU en el trabajador de TPU, representado como un porcentaje. Los valores suelen ser números entre 0.0 y 100.0. Se hace un muestreo cada 60 segundos. Después del muestreo, los datos no se podrán ver durante un máximo de 180 segundos.

Para obtener una lista completa de las métricas que genera Cloud TPU, consulta Métricas de Cloud TPU.

Cómo ver métricas

Puedes ver las métricas con el Explorador de métricas en la Google Cloud consola.

En el Explorador de métricas, haz clic en SELECCIONAR UNA MÉTRICA y busca Cloud TPU Worker. Si la opción Mostrar solo recursos y métricas activos está activada, solo se mostrarán las métricas que se están generando actualmente. Haz clic en Trabajador de Cloud TPU para mostrar las métricas disponibles.

También puedes acceder a las métricas con llamadas HTTP de curl:

Usa el botón Probar en la documentación de projects.timeSeries.query para recuperar el valor de una métrica dentro del período especificado.

  1. Completa el nombre con el siguiente formato: projects/{project-name}
  2. Agrega una consulta a la sección Cuerpo de la solicitud. La siguiente es una consulta de muestra para recuperar la métrica de duración inactiva de la zona especificada durante los últimos 5 minutos.fetch tpu_worker | filter zone = 'us-central2-b' | metric tpu.googleapis.com/tpu/tensorcore/idle_duration | within 5m"
  3. Haz clic en Ejecutar para recuperar los resultados del mensaje HTTP POST.

El documento Referencia del lenguaje de consulta de Monitoring contiene más información para personalizar esta consulta.

Puedes crear políticas de alertas que le indiquen a Google Cloud Monitoring que envíe una alerta cuando se cumpla una condición.

Crea alertas

En los pasos de esta sección, se muestra un ejemplo de cómo agregar una política de alertas para la métrica TensorCore Idle Duration. Cuando esta métrica supera las 24 horas, Cloud Monitoring envía un correo electrónico a la dirección de correo electrónico registrada.

  1. Ve a la consola de Monitoring
  2. En el panel de navegación, haz clic en Alertas.
  3. Haz clic en EDITAR CANALES DE NOTIFICACIONES.
  4. En Correo electrónico, haz clic en AGREGAR UNO NUEVO.
  5. Escribe una dirección de correo electrónico, un nombre visible y haz clic en GUARDAR.
  6. Haz clic en CREAR POLÍTICA.
  7. Haz clic en SELECT A METRIC, selecciona Tensorcore Idle Duration y haz clic en APPLY.
  8. Haz clic en NEXT y, luego, en Threshold.
  9. En Activador de alertas, selecciona Cualquier serie temporal es una infracción.
  10. En Posición del umbral, selecciona Umbral superior.
  11. En Threshold Value, escribe 86400000.
  12. Haz clic en SIGUIENTE.
  13. En Canales de notificaciones, selecciona tu canal de notificaciones por correo electrónico y haz clic en Aceptar.
  14. Escribe un nombre para la política de alertas
  15. Haz clic en NEXT y, luego, en CREATE POLICY.

Cuando la duración inactiva de TensorCore supera las 24 horas, se envía un correo electrónico a la dirección de correo electrónico que especificaste.

Logging

Los servicios de Google Cloud , los servicios de terceros, los frameworks de ML o tu código escriben las entradas de registro. Puedes ver los registros con el visor de registros o la API de registros. Para obtener más información sobre el Google Cloud registro, consulta Google Cloud Registro.

En el Explorador de registros, puedes seleccionar un tipo de recurso:

  • Trabajador de Cloud TPU -> Zona -> ID del nodo
  • Recurso auditado -> Cloud TPU -> API (google.cloud.tpu.v1.Tpu.CreateNode, google.cloud.tpu.v1.Tpu.DeleteNode, google.cloud.tpu.v1.Tpu.UpdateNode)

Los registros de los trabajadores de Cloud TPU contienen información sobre un trabajador de Cloud TPU específico en una zona específica, por ejemplo, la cantidad de memoria disponible en el trabajador de Cloud TPU (system_available_memory_GiB).

Los registros de recursos auditados contienen información sobre cuándo se llamó a una API de Cloud TPU específica y quién realizó la llamada. Por ejemplo, CreateNode, UpdateNode y DeleteNode.

Los frameworks de AA pueden generar registros en stdout y stderr. Estos registros están controlados por variables de entorno y los lee tu secuencia de comandos de entrenamiento.

Tu código puede escribir registros en Google Cloud Registro. Para obtener más información, consulta Cómo escribir registros estándar y Cómo escribir registros estructurados.

Cómo ver los registros de Cloud TPU

  1. Ve al Google Cloud Visor de registros
  2. Haz clic en el menú desplegable Recurso.
  3. Haz clic en Trabajador de Cloud TPU.
  4. Selecciona una zona
  5. Selecciona la Cloud TPU que te interesa
  6. Haz clic en Aplicar. Los registros se muestran en los resultados de la consulta

Para ver los registros de recursos auditados, haz lo siguiente:

  1. Ve al Google Cloud Visor de registros
  2. Haz clic en el menú desplegable Recurso.
  3. Haz clic en Recurso auditado y, luego, en Cloud TPU.
  4. Elige la API de Cloud TPU que te interesa
  5. Haz clic en Aplicar. Los registros se muestran en los resultados de la consulta
  6. Elige las APIs que comienzan con google.cloud.tpu.v1.Tpu.

Consulta Google Cloud registros

Cuando ves los registros en la Google Cloud consola, la página realiza una consulta predeterminada. Para ver la consulta, selecciona el interruptor de activación Show query. Puedes modificar la consulta predeterminada o crear una nueva. Para obtener más información, consulta Compila consultas en el Explorador de registros.

Información sobre el resultado del registro de los registros de recursos auditados

Haz clic en cualquier entrada de registro para expandirla y encontrarás un campo llamado protoPayload. Expande protoPayload y verás varios subcampos:

  • logName: El nombre del registro
  • protoPayload -> @type: Es el tipo del registro.
  • resourceName: Es el nombre de tu Cloud TPU.
  • methodName: Es el nombre del método llamado (solo para registros de auditoría).
  • request -> @type: Es el tipo de solicitud.
  • request -> node: Detalles sobre el nodo de Cloud TPU
  • request -> node_id: El nombre de la TPU
  • severity: La gravedad del registro

Comprende el resultado del registro de los registros de Cloud TPU Worker

Haz clic en cualquier entrada de registro para expandirla y encontrarás un campo llamado jsonPayload. Expande jsonPayload y verás varios subcampos:

  • accelerator_type: Es el tipo de acelerador.
  • consumer_project: Es el proyecto en el que reside la Cloud TPU.
  • evententry_timestamp: La hora en que se generó el registro
  • system_available_memory_GiB: La memoria disponible en el trabajador de Cloud TPU (de 0 a 350 GB)

Crea métricas basadas en registros

En esta sección, se describe cómo crear métricas basadas en registros que se usan para configurar alertas y paneles de supervisión. Para obtener información sobre cómo crear métricas basadas en registros de forma programática, consulta Crea métricas basadas en registros de forma programática con la API de REST de Cloud Logging.

En el siguiente ejemplo, se usa el subcampo system_available_memory_GiB para demostrar cómo crear una métrica basada en registros para supervisar la memoria disponible del trabajador de Cloud TPU.

  1. Navega al Explorador de registros
  2. En el cuadro de búsqueda, ingresa la siguiente búsqueda para extraer todas las entradas de registro que tengan system_available_memory_GiB definida para el trabajador principal de 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. Haz clic en Crear métrica para mostrar el Editor de métricas.

  4. En Tipo de métrica, elige Distribución.

  5. Escribe un nombre, una descripción opcional y una unidad de medida para tu métrica. Ingresa “matrix_unit_utilization_percent” y “Uso de MXU” en los campos Nombre y Descripción, respectivamente.

  6. El filtro se prepropaga con la secuencia de comandos que ingresaste en el Explorador de registros.

  7. Haz clic en CREAR MÉTRICA.

  8. Haz clic en Explorar métricas para ver la métrica nueva. Es posible que tus métricas tarden unos minutos en mostrarse

Crea métricas basadas en registros de forma programática con la API de REST de Cloud Logging

También puedes crear métricas basadas en registros a través de la API de Cloud Logging. Para obtener más información, consulta Cómo crear una métrica de distribución.

Crea paneles y alertas con métricas basadas en registros

Los paneles son útiles para visualizar métricas (espera un retraso de aproximadamente 2 minutos). Las alertas son útiles para enviar notificaciones cuando se producen errores. Para obtener más información, consulta Administra paneles personalizados y Crea políticas de alertas basadas en métricas.

Crea paneles

Para crear un panel en Cloud Monitoring para la métrica Duración inactiva de Tensorcore, haz lo siguiente:

  1. Ve a la consola de Monitoring
  2. En el panel de navegación, haz clic en Paneles.
  3. Haz clic en CREAR PANEL y, luego, en Agregar gráfico.
  4. Elige el tipo de gráfico que deseas agregar. Para este ejemplo, elige Línea.
  5. Escribe un título para el panel
  6. Haz clic en el botón debajo de Recurso y métrica.
  7. Desplázate hacia abajo en la lista de recursos o métricas y selecciona Trabajador de Cloud TPU -> Tpu -> Duración inactiva de Tensorcore.
  8. Haz clic en Apply.
  9. Para filtrar el contenido del panel, haz clic en CREAR FILTROS DE PANEL.
  10. En el campo Etiqueta, establece project_id en tu proyecto.
  11. Haz clic en AGREGAR y establece zona en la zona en la que creaste la TPU.
  12. Agrega otro filtro para node_id y especifica el nombre de tu Cloud TPU.