Supervisa las VMs de Cloud TPU

En esta guía, se explica cómo usar Google Cloud Monitoring para supervisar tus VM de Cloud TPU. Google Cloud Monitoring recopila automáticamente las metrics y los registros de Cloud TPU y su host de Compute Engine. Puedes usar estos datos para supervisar el estado de Cloud TPU y Compute Engine.

Las métricas te permiten realizar un seguimiento de una cantidad numérica a lo largo del tiempo, por ejemplo, el uso de CPU, el uso de red o la duración de inactividad de TensorCore. Los registros capturan eventos en un momento específico. Las entradas de registro se escriben con tu propio código, servicios de Google Cloud, aplicaciones de terceros y la infraestructura de Google Cloud. También puedes generar métricas a partir de los datos presentes en una entrada de registro mediante la creación de una métrica basada en registros. También puedes configurar políticas de alertas basadas en valores de métricas o entradas de registro.

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

  • Ver las métricas de Cloud TPU
  • Configura políticas de alertas de métricas de Cloud TPU
  • Consulta registros de Cloud TPU
  • Crear métricas basadas en registros para configurar alertas y visualizar paneles

Requisitos previos

En este documento, se asume que tienes conocimientos básicos sobre Google Cloud Monitoring. Debes tener una VM de Compute Engine y recursos de Cloud TPU creados antes de que puedas comenzar a generar y trabajar con Google Cloud Monitoring. Consulta la Guía de inicio rápido de Cloud TPU para obtener más detalles.

Métricas

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

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

Pueden pasar hasta 180 segundos entre el momento en que se genera un valor de métrica y el momento en que se muestra en el Explorador de métricas.

Para obtener más información sobre las métricas relacionadas con TPU, consulta Métricas de TPU.

Uso de memoria

La métrica memory/usage hace un seguimiento de la memoria que usa la VM de TPU en bytes. Esta métrica se muestrea cada 60 segundos.

Recuento de bytes recibidos de red

La métrica network/received_bytes_count hace un seguimiento de la cantidad de bytes acumulados de datos que la VM de TPU recibió a través de la red en un momento determinado.

Recuento de bytes enviados a la red

La métrica network/sent_bytes_count rastrea la cantidad de bytes acumulados que la VM de TPU envió por la red en un momento determinado.

Uso de CPU

La métrica cpu/utilization hace un seguimiento del uso actual de CPU en el trabajador TPU, representado como porcentaje, muestreado una vez por minuto. Los valores suelen estar entre 0.0 y 100.0, pero pueden superar 100.0.

Duración de la inactividad de TensorCore

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

En el siguiente gráfico, se muestra la métrica tpu/tensorcore/idle_duration para una VM de 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

Para obtener una lista completa de las métricas generadas por Cloud TPU, consulta Métricas de Google Cloud Cloud TPU.

Cómo ver métricas

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

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

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

Usa el botón Try it! 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 de inactividad de la zona especificada durante los últimos cinco 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 realizar la llamada y ver los resultados del mensaje HTTP POST.

En el documento de referencia del Lenguaje de consulta de Monitoring, encontrarás más información para personalizar esta consulta.

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

Crear 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 Duración de inactividad de TensorCore. 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 NUEVO. Escribe una dirección de correo electrónico, un nombre visible y haz clic en GUARDAR.
  5. Haz clic en CREAR POLÍTICA.
  6. Haz clic en SELECCIONAR UNA MÉTRICA, selecciona Duración de inactividad de Tensorcore y haz clic en APLICAR.
  7. Haz clic en SIGUIENTE y, luego, en Umbral.
  8. En Activador de alerta, selecciona Cualquier serie temporal es una infracción.
  9. En Posición del umbral, selecciona Por encima del umbral.
  10. En Valor del umbral, escribe 86400000.
  11. Haga clic en SIGUIENTE.
  12. En Canales de notificaciones, selecciona tu canal de notificaciones por correo electrónico y haz clic en Aceptar.
  13. Escribe un nombre para la política de alertas.
  14. Haz clic en SIGUIENTE y, luego, en CREAR POLÍTICA.

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

Logging

Las entradas de registro se escriben con servicios de Google Cloud, servicios de terceros, frameworks de AA o tu código. Puedes ver los registros con el Explorador de registros o la API de registros. Para obtener más información sobre Google Cloud Logging, consulta Google Cloud Logging.

En el Explorador de registros, selecciona un tipo de recurso:

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

Los registros de 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 específica de Cloud TPU y quién la realizó. Por ejemplo, CreateNode, UpdateNode y DeleteNode.

Los frameworks de AA pueden generar registros a stdout y stderr. Estos registros se controlan mediante variables de entorno y los lee tu secuencia de comandos de entrenamiento.

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

Para ver los registros de Cloud TPU, sigue estos pasos:

  1. Ir al visor de registros de Google Cloud
  2. Haz clic en el menú desplegable Recurso.
  3. Haz clic en Trabajador de Cloud TPU.
  4. Selecciona una zona
  5. Selecciona el 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, sigue estos pasos:

  1. Ir al visor de registros de Google Cloud
  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 comiencen con google.cloud.tpu.v2alpha1.Tpu

Consulta los registros de Google Cloud

Cuando ves registros en la consola de Google Cloud, 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. Si deseas obtener más información, consulta Cómo compilar consultas en el Explorador de registros.

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 una serie de subcampos:

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

Registros de trabajadores de TPU

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

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

Crea métricas basadas en registros

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

En el siguiente ejemplo, se usa el subcampo system_available_memory_GiB a fin de 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 consulta, ingresa la siguiente consulta para extraer todas las entradas de registro que tengan system_available_memory_GiB definidas 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. Escribe "matrix_unit_utilization_percent" y "MXU usage" en los campos Name y Description, 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 tu métrica nueva. Las métricas pueden tardar unos minutos en aparecer

Crea métricas basadas en registros 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 Crea una métrica de distribución.

Crea paneles y alertas con métricas basadas en registros

Los paneles son útiles para visualizar las métricas (se 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:

Crea paneles

A fin de crear un panel en Cloud Monitoring para la métrica de duración de inactividad de Tensorcore, haz lo siguiente:

  1. Ir 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 widget.
  4. Elige el tipo de gráfico que quieres agregar. Para este ejemplo, elige Línea.
  5. Escribe un título para el widget
  6. Haz clic en el menú desplegable Seleccionar una métrica y escribe “Duración de inactividad de Tensorcore” en el campo de filtro.
  7. En la lista de métricas, selecciona TPU Worker -> Tpu -> Duración de inactividad de Tensorcore.
  8. Para filtrar el contenido del panel, haz clic en el menú desplegable Filtrar.
  9. En Etiquetas de recursos, selecciona project_id.
  10. Elige un comparador y escribe un valor en el campo Valor.
  11. Haz clic en Apply.