Cluster pelatihan menjalankan health check otomatis pada node Anda dan melakukan intervensi saat pemeriksaan gagal. Misalnya, setelah mengidentifikasi error XID fatal, skrip ini dapat mengosongkan node, mengantrekan ulang tugas Slurm yang terpengaruh, dan membuat ulang node. Setiap intervensi ini ditulis ke log project Anda sebagai peristiwa ketahanan.
Halaman ini menunjukkan cara membuat dasbor Cloud Monitoring kustom yang memetakan peristiwa ketahanan tersebut di samping status Slurm node komputasi Anda, sehingga Anda dapat melihat tindakan pemulihan yang dilakukan layanan dan hubungannya dengan status cluster Anda. Dasbor memiliki dua diagram:
- Status node Slurm: jumlah node di setiap status Slurm dari waktu ke waktu, yang diambil dari metrik
hypercomputecluster.googleapis.com/slurm/node_state. - Peristiwa ketahanan: jumlah peristiwa ketahanan, yang dikelompokkan berdasarkan jenis peristiwa, yang diambil dari metrik berbasis log yang Anda buat di bagian berikutnya.
Sebelum memulai
Instal dan lakukan inisialisasi pada Google Cloud CLI, lalu tetapkan project yang berisi cluster pelatihan Anda:
gcloud auth login gcloud config set project PROJECT_ID
Ganti PROJECT_ID dengan ID project Anda.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk membuat metrik berbasis log dan dasbor, minta administrator untuk memberi Anda peran IAM berikut pada project:
-
Buat metrik berbasis log:
Logs Configuration Writer (
roles/logging.configWriter) -
Membuat dasbor:
Monitoring Dashboard Configuration Editor (
roles/monitoring.dashboardEditor)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk membuat metrik berbasis log dan dasbor. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat metrik berbasis log dan dasbor:
-
Buat metrik berbasis log:
logging.logMetrics.create -
Buat dasbor:
monitoring.dashboards.create
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Membuat metrik berbasis log
Peristiwa ketahanan dicatat dalam log project Anda, dengan setiap peristiwa membawa label event_type yang diawali dengan RESILIENCE_EVENT_TYPE_. Untuk melihat peristiwa mentah di Logs Explorer, gunakan kueri berikut:
labels.event_type=~"RESILIENCE_EVENT_TYPE_.*"
Cloud Monitoring tidak dapat membuat diagram entri log secara langsung, jadi Anda harus mengubah kueri ini menjadi metrik berbasis log terlebih dahulu.
Simpan konfigurasi berikut ke file bernama
resilience_metric.yaml:name: training_cluster_resilience_events description: "Resilience events on training cluster nodes (VM instances)." filter: 'resource.type="gce_instance" AND labels.event_type=~"RESILIENCE_EVENT_TYPE_.*"' metricDescriptor: metricKind: DELTA valueType: INT64 unit: "1" labels: - key: cluster_id valueType: STRING description: "The ID of the training cluster." - key: event_type valueType: STRING description: "The type of resilience event." - key: slurm_job_name valueType: STRING description: "The name of the Slurm job that triggered the resilience event, if applicable." - key: slurm_job_id valueType: STRING description: "The ID of the Slurm job that triggered the resilience event, if applicable." - key: slurm_job_partition valueType: STRING description: "The partition that the resilience event acts on." labelExtractors: cluster_id: "EXTRACT(labels.cluster_id)" event_type: "EXTRACT(labels.event_type)" slurm_job_name: "EXTRACT(labels.slurm_job_name)" slurm_job_id: "EXTRACT(labels.slurm_job_id)" slurm_job_partition: "EXTRACT(labels.slurm_job_partition)"Kolom
labelExtractorsmenyalin label setiap entri log ke metrik, sehingga Anda dapat mengelompokkan diagram berdasarkan jenis peristiwa, cluster, atau tugas Slurm.Buat metrik:
gcloud logging metrics create training_cluster_resilience_events \ --config-from-file=resilience_metric.yamlPastikan metrik ada:
gcloud logging metrics describe training_cluster_resilience_eventsAnda juga dapat mengonfirmasi metrik di konsol Google Cloud pada halaman Metrik berbasis log.
Membuat dasbor
Simpan konfigurasi berikut ke file bernama
resilience_dashboard.json:{ "displayName": "Training Clusters Resilience Dashboard", "mosaicLayout": { "columns": 48, "tiles": [ { "height": 16, "width": 24, "widget": { "title": "Slurm node states", "xyChart": { "chartOptions": { "mode": "COLOR" }, "dataSets": [ { "minAlignmentPeriod": "60s", "plotType": "LINE", "targetAxis": "Y1", "timeSeriesQuery": { "timeSeriesFilter": { "aggregation": { "alignmentPeriod": "60s", "crossSeriesReducer": "REDUCE_SUM", "groupByFields": [ "metric.label.\"state\"" ], "perSeriesAligner": "ALIGN_MEAN" }, "filter": "metric.type=\"hypercomputecluster.googleapis.com/slurm/node_state\" resource.type=\"gce_instance\"" } } } ], "yAxis": { "scale": "LINEAR" } } } }, { "yPos": 16, "height": 16, "width": 24, "widget": { "title": "Resilience events", "xyChart": { "chartOptions": { "mode": "COLOR" }, "dataSets": [ { "minAlignmentPeriod": "60s", "plotType": "STACKED_BAR", "targetAxis": "Y1", "timeSeriesQuery": { "timeSeriesFilter": { "aggregation": { "alignmentPeriod": "60s", "crossSeriesReducer": "REDUCE_COUNT", "groupByFields": [ "metric.label.\"event_type\"" ], "perSeriesAligner": "ALIGN_COUNT" }, "filter": "metric.type=\"logging.googleapis.com/user/training_cluster_resilience_events\" resource.type=\"gce_instance\"" } } } ], "yAxis": { "scale": "LINEAR" } } } } ] } }Jika Anda memberi nama yang berbeda pada metrik berbasis log di bagian sebelumnya, ubah filter
logging.googleapis.com/user/agar cocok.Buat dasbor:
gcloud monitoring dashboards create \ --config-from-file=resilience_dashboard.jsonDi konsol Google Cloud , buka halaman Dashboards, lalu di bagian My Dashboards, buka Training Clusters Resilience Dashboard. Dasbor mungkin memerlukan waktu sekitar satu menit untuk muncul.
Pemecahan masalah
Bagian berikut menjelaskan masalah yang paling mungkin Anda alami setelah membuat metrik dan dasbor.
Diagram "Peristiwa ketahanan" kosong
Metrik berbasis log tidak diisi ulang. Metrik ini hanya menghitung entri log yang masuk setelah Anda membuat metrik. Seperti yang dijelaskan dalam ringkasan metrik berbasis log, metrik tidak diisi secara retroaktif dengan data dari entri log yang sudah ada di Cloud Logging.
Jika peristiwa ketahanan telah terjadi sejak Anda membuat metrik dan diagram masih kosong, pastikan peristiwa tersebut ada di Logs Explorer dengan menjalankan kueri di Membuat metrik berbasis log.
Diagram "Slurm node states" tidak memiliki beberapa cluster
Metrik hypercomputecluster.googleapis.com/slurm/node_state hanya dilaporkan oleh cluster yang menjalankan versi software cluster yang cukup baru. Jika
cluster tidak ada dalam diagram,
perbarui cluster,
lalu periksa diagram lagi.
Diagram "Slurm node states" tidak menampilkan node login
Hal ini sudah diperkirakan. Node login tidak memiliki status Slurm, seperti idle atau mixed, sehingga tidak melaporkan metrik slurm/node_state.
Diagram "Peristiwa ketahanan" menghitung peristiwa secara berlebihan
Cloud Logging memproses setiap entri log setidaknya sekali, sehingga error internal sementara dapat menyebabkan entri dihitung lebih dari sekali. Untuk mengetahui informasi selengkapnya, lihat Memecahkan masalah metrik berbasis log.
Entri log itu sendiri adalah sumber kebenaran. Untuk mendapatkan jumlah yang tepat untuk rentang waktu, buat kueri peristiwa di Logs Explorer, bukan membacanya dari diagram.
Langkah berikutnya
- Pelajari cara kerja ketahanan cluster
- Melihat dasbor kemampuan observasi bawaan untuk cluster
- Memantau tugas pelatihan di Gemini Enterprise Agent Platform