Paneles de supervisión y registro de Cloud TPU

Los paneles de supervisión y depuración de Cloud TPU de datos contiene toda la infraestructura y la lógica necesarias depurar flujos de trabajo que se ejecutan en VMs de TPU. Requiere Terraform, una herramienta de código abierto que usa archivos de configuración para definir y administrar Google Cloud de Google Cloud.

Panel de supervisión

En el panel de supervisión, se muestran las siguientes métricas de Cloud TPU:

  • Uso de CPU en el trabajador TPU: cpu/utilization
  • Uso de memoria de la VM de TPU: memory/usage
  • Bytes de red que recibió un Pod a través de la red: network/received_bytes_count
  • Bytes de red que envió un Pod a través de la red: network/sent_bytes_count
  • Duración de inactividad de TensorCore del chip TPU: tpu/tensorcore/idle_duration

Cloud Monitoring genera automáticamente datos de métricas. Para visualizar la configuración ve a la consola de Google Cloud, selecciona Monitoring y, luego, Paneles. Selecciona GCE - TPU Monitoring Dashboard en la sección una lista de paneles. El panel de supervisión de Cloud TPU se compone de un la cantidad de paneles, cada uno de los cuales muestra datos de métricas. Para cada métrica de Cloud TPU, El panel muestra los valores actuales de las métricas, la media y los valores máximos. en paneles separados. Los paneles promedio y máximo te permiten identificar valores atípicos VMs de TPU para una investigación más detallada.

También puedes ver las métricas de TPU con el Explorador de métricas en Cloud Monitoring Consola de Google Cloud Para obtener más información, consulta Supervisa las VMs de Cloud TPU.

Panel de registros

El panel de registros muestra dos secciones:

  1. Métricas de registro: Muestra el recuento de entradas de seguimiento de pila recopiladas para cada una. Trabajador de VM de TPU.
  2. Panel de registros: Muestra todas las entradas de seguimiento de pila con columnas para la gravedad. una marca de tiempo y un resumen de la entrada. Puedes filtrar este panel de registros por un o etiquetas de trabajador TPU, como node_id o worker_id. Por ejemplo: agregar un filtro resource.labels.node_id:"testing" muestra todo el seguimiento entradas recopiladas para el trabajador de la VM de TPU con el ID configurado como “testing”.

Cloud Logging recopila entradas de registro generadas por servicios de Google Cloud, tercero servicios de terceros, frameworks de AA y tu código. Puedes instalar el cloud-tpu-diagnostics PyPi paquete para escribir seguimientos de pila de Python cuando se produce una falla o excepción, o cuando si tu carga de trabajo no responde. Para obtener más información, consulta Depuración de las VM de Cloud TPU.

Para ver el panel de registros, ve a la consola de Google Cloud, selecciona Monitoring. y, luego, en Paneles. Selecciona GCE - TPU Logging Dashboard. la lista de paneles.

Configura los paneles de métricas y registros

Sigue estas instrucciones para configurar las métricas y los paneles de registro.

Clona el repositorio del panel

Puedes clonar el repositorio directamente desde el repositorio de GitHub de supervisión y depuración de Cloud TPU. o desde la línea de comandos:

git clone https://github.com/google/cloud-tpu-monitoring-debugging.git

Instalación de Terraform

  1. Instala Terraform. en tu máquina local.
  2. Ejecuta terraform init para agregar los complementos necesarios y crear la .terraform. .
  3. Ejecuta terraform init –upgrade para instalar las actualizaciones disponibles.

Configura permisos para la supervisión y el registro

Administrador de Monitoring, editor de configuración del panel de Monitoring y administrador de Logging roles para implementar recursos de supervisión en tu proyecto de Google Cloud. Para obtener más información sobre los roles de supervisión, consulta Otorga acceso a Cloud Monitoring.

Cree un bucket de Cloud Storage

Crear un bucket de Cloud Storage para almacenar archivos de estado de Terraform También puedes usar un bucket existente de Cloud Storage. Usar un bucket de Cloud Storage garantiza que varios usuarios puedan ejecutar Terraform al mismo tiempo y acceder a la misma de Google Cloud.

  1. En Cloud Shell, crea el bucket de Cloud Storage:

    gcloud storage buckets create gs://${GCS_BUCKET_NAME}
    
  2. Habilita el control de versiones de objetos para mantener el historial de tus implementaciones. Habilitando El control de versiones de objetos aumenta los costos de almacenamiento, que puedes mitigar con y configura la Administración del ciclo de vida de los objetos para borrar versiones de estado antiguas.

    gcloud storage buckets update gs://${GCS_BUCKET_NAME} --versioning
    

Inicializa Terraform

Ejecuta terraform init dentro del directorio gcp_resources/gce del repositorio. El comando te solicita que ingreses el nombre del bucket de Cloud Storage para almacenar los archivos de estado de Terraform.

Implementa los paneles de supervisión y registro

Ejecuta terraform apply dentro del directorio gcp_resources/gce para implementar el y paneles de registro y supervisión en tu proyecto de Google Cloud. El comando Se te solicitará que proporciones valores para las siguientes variables:

  • var.monitoring_dashboard_config
  • var.project_name
  • var.stack_trace_bucket_config

Si solo quieres implementar el panel de supervisión, ejecuta terraform init. y terraform apply dentro de gcp_resources/gce/dashboard/monitoring_dashboard . De manera similar, ejecuta estos comandos dentro del gcp_resources/gce/dashboard/logging_dashboard para implementar solo el panel de control de registros.

Configuración de ejemplo

Cuando ejecutas terraform apply, Terraform te solicita cierta configuración de variables categóricas. En esta sección, se proporcionan algunos ejemplos de configuraciones que puedes usar. En cada ejemplo, también se muestra el resultado que muestra el comando terraform apply como valores sugeridos para cada variable de configuración en negrita. Entrada debe estar en formato JSON entre llaves ("{}").

Ejemplo 1

En este ejemplo, se especifica el nombre del proyecto de Google Cloud y se usan los valores predeterminados para el resto de la configuración.

var.project_name
  Name of gcp project

  Enter a value: <gcp_project_name>

var.stack_trace_bucket_config
    Configuration to create a log bucket to store stack traces:
    {
      "bucket_name": "name of log bucket to create",
      "retention_days": &lt;number of days to retain stack traces, default to 30 days if not set&gt;
    }
    Enter {} to not create separate bucket for stack traces.

  Enter a value: {}

var.monitoring_dashboard_config
    Configuration for monitoring dashboard:
    {
      "node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
      "outlier_count": &lt;the number of outliers to show on dashboard, default to 10 if not set&gt;
    }
    Enter {} to set default configuration for monitoring dashboard.

  Enter a value: {}

Ejemplo 2

En este ejemplo, se configura el panel para que muestre 5 VMs de TPU con valores atípicos.

var.project_name
  Name of gcp project

  Enter a value: <gcp_project_name>

var.stack_trace_bucket_config
    Configuration to create a log bucket to store stack traces:
    {
      "bucket_name": "name of log bucket to create",
      "retention_days": &lt;number of days to retain stack traces, default to 30 days if not set&gt;
    }
    Enter {} to not create separate bucket for stack traces.

  Enter a value: {}

var.monitoring_dashboard_config
    Configuration for monitoring dashboard:
    {
    "node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
      "outlier_count": &lt;number of outliers to show on dashboard, default to 10 if not set&gt;
    }
    Enter {} to set default configuration for monitoring dashboard.

  Enter a value: {"outlier_count":5}

Ejemplo 3

Esta configuración crea un panel que muestra 10 VMs de TPU con valores atípicos mediante “probar” como prefijo para los nombres de nodos que genera el panel:

var.project_name
  Name of gcp project

  Enter a value: <gcp_project_name>

var.stack_trace_bucket_config
    Configuration to create a log bucket to store stack traces:
    {
      "bucket_name": "name of log bucket to create",
      "retention_days": &lt;number of days to retain stack traces, default to 30 days if not set&gt;
    }
    Enter {} to not create separate bucket for stack traces.

  Enter a value: {}

var.monitoring_dashboard_config
    Configuration for monitoring dashboard:
    {
      "node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
      "outlier_count": &ltnumber of outliers to show on dashboard, default to 10 if not set&gt;
    }
    Enter {} to set default configuration for monitoring dashboard.

  Enter a value: {"node_prefix":"test"}

Ejemplo 4

Esta configuración crea un panel en el que se muestran 5 VMs con valores atípicos que usan “test” como el prefijo para los nombres de los nodos que genera el panel.

var.project_name
  Name of gcp project

  Enter a value: <gcp_project_name>

var.stack_trace_bucket_config
    Configuration to create a log bucket to store stack traces:
    {
      "bucket_name": "name of log bucket to create",
      "retention_days": &lt;number of days to retain stack traces, default to 30 days if not set&gt;
    }
    Enter {} to not create separate bucket for stack traces.

  Enter a value: {}

var.monitoring_dashboard_config
    Configuration for monitoring dashboard:
    {
    "node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
      "outlier_count": "number of outliers to show on dashboard, default to 10 if not set"
    }
    Enter {} to set default configuration for monitoring dashboard.

  Enter a value: {"node_prefix":"test", "outlier_count":5}

Ejemplo 5

En este ejemplo, se configura un bucket de Cloud Storage para almacenar seguimientos de pila. El Los seguimientos de pila tienen una política de retención predeterminada de 30 días.

var.project_name
  Name of gcp project

  Enter a value: <gcp_project_name>

var.stack_trace_bucket_config
    Configuration to create a log bucket to store stack traces:
    {
      "bucket_name": "name of log bucket to create",
      "retention_days": &lt;number of days to retain stack traces, default to 30 days if not set&gt;
    }
    Enter {} to not create separate bucket for stack traces.

  Enter a value: {"bucket_name":"stack_trace_log_bucket"}

var.monitoring_dashboard_config
    Configuration for monitoring dashboard:
    {
    "node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
      "outlier_count": "number of outliers to show on dashboard, default to 10 if not set"
    }
    Enter {} to set default configuration for monitoring dashboard.

  Enter a value: {}

Ejemplo 6

En este ejemplo, se configura un bucket de Cloud Storage con un período de retención de 20 días.

var.project_name
  Name of gcp project

  Enter a value: <gcp_project_name>

var.stack_trace_bucket_config
    Configuration to create a log bucket to store stack traces:
    {
      "bucket_name": "name of log bucket to create",
      "retention_days": &lt;number of days to retain stack traces, default to 30 days if not set&gt;
    }
    Enter {} to not create separate bucket for stack traces.

  Enter a value: {"bucket_name":"stack_trace_log_bucket", "retention_days":20}

var.monitoring_dashboard_config
    Configuration for monitoring dashboard:
    {
    "node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
      "outlier_count": "number of outliers to show on dashboard, default to 10 if not set"
    }
    Enter {} to set default configuration for monitoring dashboard.

  Enter a value: {}