Dasbor pemantauan dan logging Cloud TPU
Repositori dasbor pemantauan dan proses debug Cloud TPU berisi semua infrastruktur dan logika yang diperlukan untuk memantau dan men-debug alur kerja yang berjalan di VM TPU. Alat ini memerlukan Terraform, alat open source yang menggunakan file konfigurasi untuk menentukan dan mengelola infrastruktur Google Cloud.
Dasbor pemantauan
Dasbor pemantauan menampilkan metrik Cloud TPU berikut:
- Pemakaian CPU pada TPU worker:
cpu/utilization
- Penggunaan memori oleh VM TPU:
memory/usage
- Byte jaringan yang diterima oleh Pod melalui jaringan:
network/received_bytes_count
- Byte jaringan yang dikirim oleh Pod melalui jaringan:
network/sent_bytes_count
- Durasi tidak ada aktivitas TensorCore dari chip TPU:
tpu/tensorcore/idle_duration
Cloud Monitoring otomatis menghasilkan data metrik. Untuk melihat dasbor pemantauan, buka Konsol Google Cloud, pilih Monitoring, lalu Dashboard. Pilih GCE - TPU Monitoring Dashboard di daftar dasbor. Dasbor pemantauan Cloud TPU terdiri dari sejumlah panel, yang masing-masing menampilkan data metrik. Untuk setiap metrik Cloud TPU, dasbor menampilkan nilai metrik saat ini, rata-rata, dan nilai maksimum di panel terpisah. Panel rata-rata dan maksimum memungkinkan Anda mengidentifikasi VM TPU pencilan untuk penyelidikan lebih lanjut.
Anda juga dapat melihat metrik TPU menggunakan Metrics Explorer di Konsol Google Cloud Cloud Monitoring. Untuk mengetahui informasi selengkapnya, lihat Memantau VM Cloud TPU.
Dasbor logging
Dasbor logging menampilkan dua bagian:
- Metrik Log: menampilkan jumlah entri pelacakan tumpukan yang dikumpulkan untuk setiap pekerja VM TPU.
- Panel Logs: menampilkan semua entri stack trace dengan kolom untuk tingkat keparahan,
stempel waktu, dan ringkasan entri. Anda dapat memfilter panel log ini menurut string, atau label pekerja TPU seperti
node_id
,worker_id
. Misalnya, menambahkan filterresource.labels.node_id:"testing"
akan menampilkan semua entri rekaman aktivitas yang dikumpulkan untuk pekerja VM TPU dengan ID yang ditetapkan ke "testing".
Cloud Logging mengumpulkan entri log yang dihasilkan oleh layanan Google Cloud, layanan pihak ketiga, framework ML, dan kode Anda. Anda dapat menginstal
paket PyPi cloud-tpu-diagnostics
untuk menulis stack trace Python saat terjadi kesalahan atau pengecualian atau saat
beban kerja Anda tidak responsif. Untuk mengetahui informasi selengkapnya, lihat
Men-debug VM Cloud TPU.
Untuk melihat dasbor logging, buka Konsol Google Cloud, pilih Monitoring, lalu Dashboard. Pilih GCE - Dasbor Logging TPU di daftar dasbor.
Mengonfigurasi dasbor logging dan metrik
Ikuti petunjuk ini untuk mengonfigurasi metrik dan dasbor logging.
Meng-clone repositori dasbor
Anda dapat meng-clone repositori langsung dari repositori Cloud TPU Monitoring dan Debugging GitHub atau dari command line:
git clone https://github.com/google/cloud-tpu-monitoring-debugging.git
Instal Terraform
- Instal Terraform di komputer lokal Anda.
- Jalankan
terraform init
untuk menambahkan plugin yang diperlukan dan membuat direktori.terraform
. - Jalankan
terraform init –upgrade
untuk menginstal update yang tersedia.
Konfigurasi izin untuk pemantauan dan logging
Peran Admin Monitoring, Editor Konfigurasi Dasbor Monitoring, dan Admin Logging diperlukan untuk men-deploy resource pemantauan ke project Google Cloud Anda. Untuk mengetahui informasi selengkapnya tentang peran pemantauan, lihat Memberikan akses ke Cloud Monitoring.
Membuat bucket Cloud Storage
Membuat bucket Cloud Storage untuk menyimpan file status Terraform. Anda juga dapat menggunakan bucket Cloud Storage yang sudah ada. Penggunaan bucket Cloud Storage memastikan bahwa beberapa pengguna dapat menjalankan Terraform secara bersamaan dan mengakses infrastruktur yang sama.
Di Cloud Shell, buat bucket Cloud Storage:
gsutil mb gs://${GCS_BUCKET_NAME}
Aktifkan Pembuatan Versi Objek untuk menyimpan histori deployment Anda. Mengaktifkan Pembuatan Versi Objek akan meningkatkan biaya penyimpanan, yang dapat Anda kurangi dengan mengonfigurasi Object Lifecycle Management untuk menghapus versi status lama.
gsutil versioning set on gs://${GCS_BUCKET_NAME}
Lakukan inisialisasi Terraform
Jalankan terraform init
di dalam direktori gcp_resources/gce
repositori.
Perintah ini meminta Anda memasukkan nama bucket Cloud Storage untuk menyimpan file status Terraform.
Men-deploy dasbor pemantauan dan logging
Jalankan terraform apply
di dalam direktori gcp_resources/gce
untuk men-deploy dasbor pemantauan dan logging di project Google Cloud Anda. Perintah ini akan meminta Anda memberikan nilai untuk variabel berikut:
var.monitoring_dashboard_config
var.project_name
var.stack_trace_bucket_config
Jika Anda hanya ingin men-deploy dasbor pemantauan, jalankan terraform init
dan terraform apply
di dalam direktori gcp_resources/gce/dashboard/monitoring_dashboard
. Demikian pula, jalankan perintah ini di dalam direktori gcp_resources/gce/dashboard/logging_dashboard
untuk men-deploy dasbor logging saja.
Contoh konfigurasi
Saat Anda menjalankan terraform apply
, Terraform akan meminta Anda untuk memasukkan beberapa nilai variabel konfigurasi. Bagian ini menyediakan beberapa contoh konfigurasi yang dapat Anda gunakan.
Setiap contoh menunjukkan output yang ditampilkan oleh perintah apply terraform serta
nilai yang disarankan untuk setiap variabel konfigurasi dalam huruf tebal. Input
harus dalam format JSON yang diapit tanda kurung kurawal ("{}").
Contoh 1
Contoh ini menetapkan nama project Google Cloud dan menggunakan nilai default untuk konfigurasi lainnya.
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: {}
Contoh 2
Contoh ini mengonfigurasi dasbor untuk menampilkan 5 VM TPU pencilan.
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}
Contoh 3
Konfigurasi ini membuat dasbor yang menampilkan 10 VM TPU pencilan menggunakan "test" sebagai awalan untuk nama node yang dihasilkan oleh dasbor:
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"}
Contoh 4
Konfigurasi ini membuat dasbor yang menampilkan 5 VM pencilan yang menggunakan "test" sebagai awalan untuk nama node yang dihasilkan oleh dasbor.
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}
Contoh 5
Contoh ini mengonfigurasi bucket Cloud Storage untuk menyimpan pelacakan tumpukan. Pelacakan tumpukan memiliki kebijakan retensi default 30 hari.
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: {}
Contoh 6
Contoh ini mengonfigurasi bucket Cloud Storage dengan periode retensi data 20 hari.
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: {}