透過資訊主頁監控復原事件

如要使用 Gemini Enterprise Agent Platform 訓練叢集,請與業務代表聯絡以取得存取權。

訓練叢集會對節點執行自動健康狀態檢查,並在檢查失敗時介入處理。舉例來說,如果偵測到致命的 XID 錯誤,可能會排空節點、重新排隊受影響的 Slurm 工作,並重新建立節點。這些干預措施都會以復原事件的形式,寫入專案記錄。

本頁說明如何建構自訂 Cloud Monitoring 資訊主頁,在運算節點的 Slurm 狀態旁繪製這些復原事件的圖表,方便您查看服務採取的復原動作,以及這些動作與叢集狀態的關聯。這個資訊主頁包含兩種圖表:

  • Slurm 節點狀態:各 Slurm 狀態的節點數量 (隨時間變化),取自 hypercomputecluster.googleapis.com/slurm/node_state 指標。
  • 韌性事件:韌性事件的計數,依事件類型細分,取自您在下一節建立的記錄式指標。
資訊主頁包含兩個圖表:各個 Slurm 狀態的節點隨時間變化,以及依事件類型計算的復原事件堆疊長條圖。
圖 1. 同時查看這兩張圖表,即可瞭解復原作業的影響:閒置節點數量會減少,而服務會取代未通過序言健康狀態檢查的節點,且下方會顯示導致該節點未通過檢查的事件。

事前準備

安裝並初始化 Google Cloud CLI,然後設定包含訓練叢集的專案:

gcloud auth login
gcloud config set project PROJECT_ID

將 PROJECT_ID 替換為專案 ID。

必要的角色

如要取得建立記錄檔指標和資訊主頁所需的權限,請要求管理員授予您專案的下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這些預先定義的角色具備建立記錄指標和資訊主頁所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要建立記錄指標和資訊主頁,您必須具備下列權限:

  • 建立記錄指標: logging.logMetrics.create
  • 建立資訊主頁: monitoring.dashboards.create

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

建立記錄指標

復原事件會記錄在專案的記錄中,每個事件都帶有以 RESILIENCE_EVENT_TYPE_ 為前置字元的 event_type 標籤。如要在 Logs Explorer 中查看原始事件,請使用下列查詢:

labels.event_type=~"RESILIENCE_EVENT_TYPE_.*"

Cloud Monitoring 無法直接繪製記錄項目圖表,因此您必須先將這項查詢轉換為記錄指標。

  1. 將下列設定儲存至名為 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)"
    

    labelExtractors 欄位會將每個記錄項目的標籤複製到指標上,方便您依事件類型、叢集或 Slurm 工作細分圖表。

  2. 建立指標:

    gcloud logging metrics create training_cluster_resilience_events \
        --config-from-file=resilience_metric.yaml
    
  3. 確認指標是否存在:

    gcloud logging metrics describe training_cluster_resilience_events
    

    您也可以在 Cloud de Confiance 控制台的「記錄指標」頁面中確認指標。

建立資訊主頁

  1. 將下列設定儲存至名為 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"
                }
              }
            }
          }
        ]
      }
    }
    

    如果您在上一節中為記錄型指標指定了其他名稱,請變更 logging.googleapis.com/user/ 篩選器以符合該名稱。

  2. 建立資訊主頁:

    gcloud monitoring dashboards create \
        --config-from-file=resilience_dashboard.json
    
  3. 在 Cloud de Confiance 控制台中,前往 「資訊主頁」頁面,然後在 「我的資訊主頁」下方開啟「訓練叢集復原資訊主頁」。資訊主頁可能需要約一分鐘才會顯示。

疑難排解

下列各節說明建立指標和資訊主頁後,最有可能遇到的問題。

「韌性事件」圖表為空白

系統不會回填記錄指標。系統只會計算之後收到的記錄項目。如記錄指標總覽所述,系統不會將已在 Cloud Logging 中的記錄項目資料填入指標。

如果自您建立指標後發生過復原事件,但圖表仍為空白,請在「記錄檔總管」中執行「建立記錄指標」中的查詢,確認事件是否在其中。

「Slurm 節點狀態」圖表缺少部分叢集

只有執行最新叢集軟體版本的叢集,才會回報 hypercomputecluster.googleapis.com/slurm/node_state 指標。如果圖表中缺少叢集,請更新叢集,然後再次檢查圖表。

「Slurm 節點狀態」圖表不會顯示登入節點

這是可預期的情況,登入節點沒有 Slurm 狀態 (例如 idle 或 mixed),因此不會回報 slurm/node_state 指標。

「韌性事件」圖表會多算事件

Cloud Logging 至少會處理每個記錄項目一次,因此暫時性的內部錯誤可能會導致項目重複計算。詳情請參閱「排解記錄指標問題」。

記錄項目本身就是準確來源。如要取得特定時間範圍的確切計數,請在 Logs Explorer 中查詢事件,而非從圖表讀取。

後續步驟