Paneles de supervisión y registro de Cloud TPU
El repositorio de los paneles de supervisión y depuración de Cloud TPU contiene toda la infraestructura y la lógica necesarias para supervisar y depurar los flujos de trabajo que se ejecutan en las VMs de TPU. Requiere Terraform, una herramienta de código abierto que usa archivos de configuración para definir y administrar la infraestructura. 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 por VM de TPU:
memory/usage - Bytes de red recibidos por un Pod a través de la red:
network/received_bytes_count - Bytes de red enviados por un Pod a través de la red:
network/sent_bytes_count - Duración de inactividad de TensorCore del chip de TPU:
tpu/tensorcore/idle_duration
Cloud Monitoring genera automáticamente datos de métricas. Para ver el panel de supervisión, ve a la consola de Google Cloud , selecciona Monitoring y, luego, Paneles. Selecciona GCE - TPU Monitoring Dashboard en la lista de paneles. El panel de supervisión de Cloud TPU se compone de varios paneles, cada uno de los cuales muestra datos de métricas. Para cada métrica de Cloud TPU, el panel muestra los valores actuales, la media y los valores máximos en paneles separados. Los paneles de media y máximo te permiten identificar las VMs de TPU atípicas para una mayor investigación.
También puedes ver las métricas de TPU con el Explorador de métricas en la consola de Cloud Monitoring Google Cloud . Para obtener más información, consulta Supervisa VMs de Cloud TPU.
Panel de Logging
El panel de registros muestra dos secciones:
- Métricas de registros: Muestra el recuento de entradas de seguimiento de pila recopiladas para cada trabajador de la VM de TPU.
- Panel de registros: Muestra todas las entradas del registro de seguimiento de pila con columnas para la gravedad, la marca de tiempo y un resumen de la entrada. Puedes filtrar este panel de registros por una cadena o etiquetas de trabajador TPU, como
node_idoworker_id. Por ejemplo, agregar un filtroresource.labels.node_id:"testing"muestra todas las entradas de registro recopiladas para el trabajador de la VM de TPU con el ID establecido en "testing".
Cloud Logging recopila las entradas de registro generadas por los servicios de Google Cloud , los servicios de terceros, los frameworks de AA y tu código. Puedes instalar el paquete cloud-tpu-diagnostics de PyPi para escribir seguimientos de pila de Python cuando se produce una falla o excepción, o cuando tu carga de trabajo no responde. Para obtener más información, consulta Depura VMs de Cloud TPU.
Para ver el panel de Logging, ve a la consola de Google Cloud , selecciona Monitoring y, luego, Paneles. Selecciona GCE - TPU Logging Dashboard en la lista de paneles.
Configura los paneles de métricas y registros
Sigue estas instrucciones para configurar los paneles de métricas y registros.
Clona el repositorio del panel
Puedes clonar el repositorio directamente desde el repositorio de GitHub de Supervisión y depuración de TPU de Cloud o desde la línea de comandos:
git clone https://github.com/google/cloud-tpu-monitoring-debugging.git
Instala Terraform
- Instala Terraform en tu máquina local.
- Ejecuta
terraform initpara agregar los complementos necesarios y crear el directorio.terraform. - Ejecuta
terraform init -upgradepara instalar las actualizaciones disponibles.
Configura permisos para el registro y la supervisión
Se requieren los roles de administrador de Monitoring, editor de configuración del panel de Monitoring y administrador de Logging para implementar recursos de supervisión en tu proyecto de Google Cloud . Para obtener más información sobre los roles de Monitoring, consulta Cómo otorgar acceso a Cloud Monitoring.
Cree un bucket de Cloud Storage
Crea un bucket de Cloud Storage para almacenar los archivos de estado de Terraform. También puedes usar un bucket de Cloud Storage existente. Usar un bucket de Cloud Storage garantiza que varios usuarios puedan ejecutar Terraform al mismo tiempo y acceder a la misma infraestructura.
En Cloud Shell, crea el bucket de Cloud Storage:
gcloud storage buckets create gs://${GCS_BUCKET_NAME}Habilita el control de versiones de objetos para mantener el historial de tus implementaciones. Habilitar el control de versiones de objetos aumenta los costos de almacenamiento, lo cual se puede mitigar si configuras la Administración del ciclo de vida de los objetos para que borre 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 de un 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 los paneles de supervisión y registro en tu proyecto de Google Cloud . El comando te solicita que proporciones valores para las siguientes variables:
var.monitoring_dashboard_configvar.project_namevar.stack_trace_bucket_config
Si solo deseas implementar el panel de supervisión, ejecuta terraform init y terraform apply dentro del directorio gcp_resources/gce/dashboard/monitoring_dashboard. Del mismo modo, ejecuta estos comandos dentro del directorio gcp_resources/gce/dashboard/logging_dashboard para implementar solo el panel de registro.
Configuración de ejemplo
Cuando ejecutas terraform apply, Terraform te solicita algunos valores de variables de configuración. En esta sección, se proporcionan algunos ejemplos de configuraciones que puedes usar.
Cada ejemplo muestra el resultado que se muestra con el comando terraform apply, así como los valores sugeridos para cada variable de configuración en negrita. La entrada debe estar en formato JSON y entre llaves (“{}”).
Ejemplo 1
En este ejemplo, se especifica el nombre del proyecto Google Cloud y se usan los valores predeterminados para el resto de la configuración.
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": <the number of outliers to show on dashboard, default to 10 if not set>
}
Enter {} to set default configuration for monitoring dashboard.
Enter a value: {}
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": <number of days to retain stack traces, default to 30 days if not set>
}
Enter {} to not create separate bucket for stack traces.
Enter a value: {}
Ejemplo 2
En este ejemplo, se configura el panel para que muestre 5 VMs de TPU atípicas.
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: {"outlier_count":5}
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": <number of days to retain stack traces, default to 30 days if not set>
}
Enter {} to not create separate bucket for stack traces.
Enter a value: {}
Ejemplo 3
Esta configuración crea un panel que muestra 10 VMs de TPU atípicas con "test" como prefijo para los nombres de los nodos que genera el panel:
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"}
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": <number of days to retain stack traces, default to 30 days if not set>
}
Enter {} to not create separate bucket for stack traces.
Enter a value: {}
Ejemplo 4
Esta configuración crea un panel que muestra 5 VMs atípicas con "test" como prefijo para los nombres de los nodos generados por el panel.
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}
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": <number of days to retain stack traces, default to 30 days if not set>
}
Enter {} to not create separate bucket for stack traces.
Enter a value: {}
Ejemplo 5
En este ejemplo, se configura un bucket de Cloud Storage para almacenar seguimientos de pila. Los seguimientos de pila tienen una política de retención predeterminada de 30 días.
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: {}
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": <number of days to retain stack traces, default to 30 days if not set>
}
Enter {} to not create separate bucket for stack traces.
Enter a value: {"bucket_name":"stack_trace_log_bucket"}
Ejemplo 6
En este ejemplo, se configura un bucket de Cloud Storage con un período de retención de 20 días.
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: {}
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": <number of days to retain stack traces, default to 30 days if not set>
}
Enter {} to not create separate bucket for stack traces.
Enter a value: {"bucket_name":"stack_trace_log_bucket", "retention_days":20}