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 por 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 envía 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 ver el panel de supervisión, ve a la consola de Google Cloud, selecciona Monitoring y, luego, Paneles. Selecciona GCE: Panel de supervisión de TPU en la lista de paneles. El panel de supervisión de Cloud TPU se compone de una serie 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 de promedio y máximo te permiten identificar VMs de TPU atípicas para investigarlas en detalle.
También puedes ver las métricas de TPU con el Explorador de métricas en la consola de Google Cloud de Cloud Monitoring. Para obtener más información, consulta Supervisa las VMs de Cloud TPU.
Panel de Logging
El panel de registros muestra dos secciones:
- Métricas de registro: Muestra el recuento de entradas de seguimiento de pila recopiladas para cada una. Trabajador de VM de TPU.
- 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
oworker_id
. Por ejemplo, si agregas un filtroresource.labels.node_id:"testing"
, se muestran todas las entradas de seguimiento recopiladas para el trabajador de la VM de TPU con el ID establecido en "testing".
Cloud Logging recopila entradas de registro generadas por los servicios de Google Cloud, los servicios de terceros, los frameworks de IA 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
Cómo depurar VMs de Cloud TPU.
Para ver el panel de registros, ve a la consola de Google Cloud, selecciona Monitoring, y, luego, en Paneles. Selecciona GCE: Panel de registro de TPU en 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
- Instala Terraform en tu máquina local.
- Ejecuta
terraform init
para agregar los complementos necesarios y crear la.terraform
. . - Ejecuta
terraform init –upgrade
para instalar las actualizaciones disponibles.
Configura permisos para la supervisión y el registro
Los roles de administrador de supervisión, editor de configuración del panel de supervisión y administrador de registro son obligatorios 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
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 de Google Cloud.
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_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
. 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 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. La 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": <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: {}
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: {}
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": <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: {}
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}
Ejemplo 3
Con esta configuración, se crea un panel que muestra 10 VMs de TPU con valores atípicos que usan "test" como 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": <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: {}
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"}
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": <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: {}
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": <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"}
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": <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}
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: {}