Memantau peristiwa ketahanan dengan dasbor

Jika Anda tertarik dengan cluster pelatihan Gemini Enterprise Agent Platform, hubungi perwakilan penjualan Anda untuk mendapatkan akses.

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.
Dasbor dengan dua diagram: node dalam setiap status Slurm dari waktu ke waktu, dan diagram batang bertumpuk yang menghitung peristiwa ketahanan menurut jenis peristiwa.
Gambar 1. Membaca kedua diagram bersama-sama akan menunjukkan efek pemulihan: jumlah node yang tidak ada aktivitasnya akan menurun saat layanan mengganti node yang gagal dalam health check prolog, dan peristiwa yang menyebabkannya akan muncul di bawahnya.

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:

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.

  1. 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 labelExtractors menyalin label setiap entri log ke metrik, yang memungkinkan Anda memecah diagram menurut jenis peristiwa, menurut cluster, atau menurut tugas Slurm.

  2. Buat metrik:

    gcloud logging metrics create training_cluster_resilience_events \
        --config-from-file=resilience_metric.yaml
    
  3. Pastikan metrik ada:

    gcloud logging metrics describe training_cluster_resilience_events
    

    Anda juga dapat mengonfirmasi metrik di Cloud de Confiance konsol pada halaman **Log-based metrics**.

Membuat dasbor

  1. 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.

  2. Buat dasbor:

    gcloud monitoring dashboards create \
        --config-from-file=resilience_dashboard.json
    
  3. Di 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.

Langkah berikutnya