Cluster pelatihan menjalankan health check otomatis pada node Anda dan melakukan intervensi saat pemeriksaan gagal. Misalnya, setelah mengidentifikasi error XID fatal, cluster pelatihan dapat menguras 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 korelasinya dengan status cluster Anda. Dasbor ini memiliki dua diagram:
- Status node Slurm: jumlah node dalam setiap status Slurm dari waktu ke waktu,
yang diambil dari metrik
hypercomputecluster.googleapis.com/slurm/node_state. - Peristiwa ketahanan: jumlah peristiwa ketahanan, yang dipecah menurut jenis peristiwa, yang diambil dari metrik berbasis log yang Anda buat di bagian berikutnya.
Sebelum memulai
Instal dan inisialisasi 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 diperlukan untuk membuat metrik berbasis log dan dasbor, minta administrator Anda untuk memberi Anda peran IAM berikut di project:
-
Membuat 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:
-
Membuat metrik berbasis log:
logging.logMetrics.create -
Membuat 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 memetakan 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, yang memungkinkan Anda memecah diagram menurut jenis peristiwa, menurut cluster, atau menurut 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 Cloud de Confiance konsol pada halaman **Log-based metrics**.
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 metrik berbasis log nama yang berbeda di bagian sebelumnya, ubah filter
logging.googleapis.com/user/agar sesuai.Buat dasbor:
gcloud monitoring dashboards create \ --config-from-file=resilience_dashboard.jsonDi Cloud de Confiance konsol, 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 temui setelah membuat metrik dan dasbor.
Diagram "Resilience events" kosong
Metrik berbasis log tidak diisi ulang. Metrik ini hanya menghitung entri log yang tiba setelah Anda membuat metrik. Seperti yang dijelaskan dalam ringkasan metrik berbasis log, metrik tidak diisi ulang 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 menampilkan beberapa cluster
Metrik hypercomputecluster.googleapis.com/slurm/node_state hanya dilaporkan oleh cluster yang menjalankan software cluster versi terbaru. Jika a
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 "Resilience events" 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 tepercaya. Untuk mendapatkan jumlah yang tepat untuk rentang waktu, kueri peristiwa di Logs Explorer, bukan membacanya dari diagram.