查看執行個體分布記錄

建立區域性代管執行個體群組 (MIG) 或增加目標大小時,Compute Engine 會評估即時資源可用性,在各可用區和機器類型之間分配新的運算執行個體。在這個過程中,Compute Engine 會在 Cloud Logging 中記錄執行個體分布記錄項目。

本文說明如何查看及解讀這些執行個體分布記錄。此外,本文也會說明如何使用這些記錄調查待處理的分配作業,以及設定警告。

如要查看執行中執行個體的實際分布情形,請參閱「監控 MIG 中的執行個體分布情形」。

關於執行個體分布記錄

執行個體分布記錄會提供 MIG 預計分配運算執行個體的一次性快照。在這些記錄中,「allocated」執行個體代表 MIG 找到容量,並計劃在該機型和可用區建立運算執行個體。分配大小並不代表運算執行個體已成功建立。

由於記錄檔提供的是快照,因此當 MIG 稍後建立其餘運算執行個體時,Compute Engine 不會更新這些記錄檔。記錄項目可讓您查看下列詳細資料:

  • 機型分布:MIG 為各機型分配的運算執行個體數量。這項資訊僅適用於使用執行個體彈性的區域 MIG。

  • 可用區分布:MIG 在每個可用區分配的運算執行個體數量。

  • 等待容量的執行個體:MIG 無法立即分配容量,且正在積極尋找容量的執行個體數量。

限制

  • 執行個體分布記錄僅適用於區域性 MIG。

  • 如果區域性 MIG 使用 EVEN 目標分配型態,但未啟用自動調度資源功能,記錄項目只會包含 oldSize、newSize、deltaSize 和 targetShape 欄位,不含任何執行個體分配詳細資料。

  • 只有在建立 MIG 或增加目標大小時,Compute Engine 才會記錄執行個體分布詳細資料。當目標大小縮減,或是在執行個體修復、重新建立和更新作業期間,Compute Engine 不會記錄這些詳細資料。

查看特定 MIG 的執行個體分布記錄

如要查看特定 MIG 的執行個體分配記錄,請使用下列其中一種方法:

控制台

您可以直接從執行個體群組詳細資料頁面,查看特定 MIG 的記錄。

  1. 前往 Cloud de Confiance 控制台的「Instance groups」(執行個體群組) 頁面。

    前往「Instance groups」(執行個體群組)

  2. 按一下要查看的 MIG 名稱。

  3. 按一下「Monitoring」(監控) 分頁標籤。

  4. 選取左側窗格中的「Logs」(記錄檔)。

  5. 在記錄結果篩選器中輸入 instanceDistribution,然後按下 Enter 鍵。

  6. 如要查看執行個體分布資料,請展開記錄項目,然後展開 protoPayload.metadata.details。

gcloud

如要查看特定 MIG 的執行個體分布記錄,請使用 gcloud logging read 指令:

gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
  protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND \
  resource.labels.instance_group_manager_name=\"MIG_NAME\""

更改下列內容:

  • PROJECT_ID:專案 ID。

  • MIG_NAME:MIG 的名稱。

REST

如要查看特定 MIG 的執行個體分布記錄,請向 entries.list 方法發出 POST 要求。

POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
  "projects/PROJECT_ID"
],
"filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND resource.labels.instance_group_manager_name=\"MIG_NAME\""
}

更改下列內容:

  • PROJECT_ID:專案 ID。

  • MIG_NAME:MIG 的名稱。

如要進一步瞭解記錄中的各個欄位,請參閱「執行個體分布記錄項目」。

查看專案中的所有執行個體分布記錄

如要查看專案中的所有執行個體分布記錄,請選取下列其中一個選項:

控制台

  1. 前往 Cloud de Confiance 控制台的「Logs Explorer」頁面。

    前往 Logs Explorer

  2. 輸入查詢。例如:

    • 如要查看專案中的所有執行個體分布記錄,請按照下列步驟操作:

      logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event"
      protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution"
      
    • 如要查看執行個體分布記錄,其中部分調整大小作業仍在等待容量:

      logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event"
      protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution"
      protoPayload.metadata.details.data.activeSeekDeltaSize > 0
      

    將 PROJECT_ID 替換為專案 ID。

  3. 點選「執行查詢」。

  4. 在結果中展開記錄項目。

    • 如要查看摘要和資料,請展開 protoPayload.metadata.details。
    • 如要查看各列的摘要,請按一下 message,然後選取「Add field to summary line」(在摘要行中新增欄位)。

gcloud

如要查看執行個體分布記錄,請使用 gcloud logging read 指令。

  • 如要查看專案中的所有執行個體分布記錄,請按照下列步驟操作:
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
  protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\""
  • 如要查看專案中過去一天的所有記錄,請指定 --freshness=1d 旗標,如下所示:
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
    protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\"" \
    --freshness=1d
  • 如要查看執行個體分布記錄,其中部分調整大小作業仍在等待容量:
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
    protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND \
    protoPayload.metadata.details.data.activeSeekDeltaSize > 0"

將 PROJECT_ID 替換為專案 ID。

REST

如要查看執行個體分布記錄,請向 entries.list 方法發出 POST 要求。

  • 如要查看專案中的所有執行個體分布記錄,請按照下列步驟操作:
POST https://logging.googleapis.com/v2/entries:list
{
  "resourceNames": [
    "projects/PROJECT_ID"
  ],
  "filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\""
}
  • 如要查看專案中過去一天的所有記錄,請在篩選器中新增 timestamp 條件:
POST https://logging.googleapis.com/v2/entries:list
{
  "resourceNames": [
    "projects/PROJECT_ID"
  ],
  "filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND timestamp >= \"YYYY-MM-DDThh:mm:ssZ\""
}
  • 如要查看執行個體分布記錄,其中部分調整大小作業仍在等待容量:
POST https://logging.googleapis.com/v2/entries:list
{
  "resourceNames": [
    "projects/PROJECT_ID"
  ],
  "filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND protoPayload.metadata.details.data.activeSeekDeltaSize > 0"
}

更改下列內容:

  • PROJECT_ID:專案 ID。

  • YYYY-MM-DDThh:mm:ssZ:開始時間的 RFC 3339 時間戳記,例如 2024-10-22T00:00:00Z。

如要進一步瞭解記錄中的各個欄位,請參閱「執行個體分布記錄項目」。

執行個體分布記錄項目

以下是記錄項目範例 (protoPayload.metadata.details)。由於這個事件是一次性快照,因此當後續建立剩餘執行個體時,記錄項目不會更新。記錄項目可讓您查看下列詳細資料:

  • details.data:顯示執行個體分布的結構化詳細資料。

  • details.message:顯示執行個體分布摘要。

在這個範例中,具備執行個體彈性的區域 MIG 會從 0 水平擴展至 100。MIG 會立即在兩個已排名的執行個體選項中,分配 100 個新執行個體中的 80 個 (rank2-c2 選項中的 20 個 c2-standard-4 執行個體,以及 rank3-n2d 選項中的 60 個 n2d-standard-4 執行個體)。項目也會顯示 us-central1-b 和 us-central1-c 各分配了 40 個運算執行個體。對於其餘 20 個執行個體 (activeSeekDeltaSize),MIG 會繼續在所有設定的執行個體選項和可用區中尋找容量。如果區域性 MIG 沒有執行個體彈性,記錄項目會省略 instanceSelections 欄位,只顯示可用區分布。

"metadata": {
  "details": {
    "data": {
      "oldSize": 0,
      "newSize": 100,
      "deltaSize": 100,
      "targetShape": "BALANCED",
      "activeSeekDeltaSize": 20,
      "instanceSelections": {
        "rank1-n2": {
          "rank": 1,
          "machineSelections": [
            {
              "machineType": "n2-standard-4",
              "allocatedSize": 0
            }
          ]
        },
        "rank2-c2": {
          "rank": 2,
          "machineSelections": [
            {
              "machineType": "c2-standard-4",
              "allocatedSize": 20
            }
          ]
        },
        "rank3-n2d": {
          "rank": 3,
          "machineSelections": [
            {
              "machineType": "n2d-standard-4",
              "allocatedSize": 60
            }
          ]
        }
      },
      "zonalDistribution": {
        "us-central1-a": {
          "allocatedSize": 0
        },
        "us-central1-b": {
          "allocatedSize": 40
        },
        "us-central1-c": {
          "allocatedSize": 40
        }
      }
    },
    "message": "Increasing MIG target size from 0 to 100 instances (+100).
    Allocated 80 of 100 new instances. Allocated instances across instance
    selections: rank2-c2 (rank 2; c2-standard-4: 20); rank3-n2d (rank 3;
    n2d-standard-4: 60). Allocated instances across zones based on target
    distribution shape BALANCED: us-central1-a: 0, us-central1-b: 40,
    us-central1-c: 40. MIG continues to allocate the remaining 20 new instances
    across all instance selections and zones. The final distribution across zones
    and machine types may differ as instances are created. View the group's
    instances for the current distribution."
  }
}

下表說明記錄項目中的各個欄位。

欄位 說明
details.data.oldSize 區域 MIG 在調整大小作業前的目標大小。
details.data.newSize 區域性 MIG 的要求目標大小。
details.data.deltaSize 目標大小的變更 (newSize - oldSize)。
details.data.targetShape 區域性 MIG 的目標分配型態。
details.data.activeSeekDeltaSize MIG 仍在已設定的執行個體選項和可用區中,尋找容量的新執行個體數量。如果這個欄位的值為 0,系統會略過這個欄位。
details.data.instanceSelections

分配期間評估的已設定執行個體選項。這個欄位僅適用於使用執行個體彈性的 MIG。每個鍵都是執行個體選項的名稱,其值包含下列欄位:

  • rank:為執行個體選取項目設定的優先順序。
  • machineSelections:所選項目中的機型分配清單,其中每個項目都會指定機型 (machineType) 和使用該機型分配的運算執行個體數量 (allocatedSize)。
details.data.zonalDistribution 已設定的可用區和分配的執行個體分布。每個鍵都是可用區名稱,其值包含在該可用區中分配的運算執行個體數量 (allocatedSize)。
details.message 說明執行個體分布情形的摘要訊息,包括已分配的數量和搜尋容量詳細資料。

解讀執行個體分布記錄

執行個體分布記錄會提供 MIG 建立運算執行個體的計畫摘要。由於記錄指出 MIG 會在成功建立運算執行個體前分配這些執行個體,因此您應搭配運算執行個體狀態和錯誤訊息使用記錄資料,瞭解 MIG 的實際行為。

請參考下表,解讀常見的記錄輸出內容,並判斷是否需要採取行動:

記錄輸出 說明 建議做法
activeSeekDeltaSize 大於 0 MIG 找不到足夠的容量,無法立即完成整個大小調整要求。MIG 會繼續嘗試在所有設定的選項中建立剩餘的執行個體。 查看 MIG 的執行個體錯誤,瞭解執行個體建立失敗的原因。建議您新增其他機器家族的機型、新增可用區,或檢查配額。
偏好程度較高 (排名數字較低) 的選項,其 allocatedSize 為 0 在決策時,MIG 檢查了您最偏好的機型,但發現容量不足。MIG 改用偏好程度較低 (排名數字較高) 的選項。Compute Engine 不會記錄略過選項的執行個體錯誤。 如果 MIG 經常略過您最偏好的選項,建議您在最偏好的選項中新增更多機型,或接受偏好程度較低的選項。
設定區域的 allocatedSize 為 0 MIG 未在這個可用區分配任何新的執行個體。 如果目標型態為 ANY 或 ANY_SINGLE_ZONE,這種不平均分配屬於正常現象。否則,請檢查執行個體範本的配額、預留項目和可用區支援。
message 摘要中缺少機型 MIG 未使用該機型進行分配。 檢查結構化 details.data 區塊。摘要訊息會省略獲得 0 個新執行個體的選項和機器類型,但結構化資料會列出所有評估過的選項。

查看待處理的執行個體分配

如果 MIG 仍在等待容量 (activeSeekDeltaSize > 0),您可以檢查下列項目,瞭解分配作業待處理的原因:

  • 檢查執行個體建立錯誤。如要確認執行個體建立作業是否在 MIG 分配容量後失敗,或運算執行個體是否仍在等待容量,請檢查執行個體錯誤。詳情請參閱「列出執行個體錯誤」。

  • 查看執行個體狀態。如要查看每個執行個體的狀態和目前動作,請列出 MIG 中的執行個體,並檢查其 instanceStatus 欄位。詳情請參閱「查看代管執行個體的狀態」。

  • 檢查設定。如果您在 MIG 中設定了執行個體彈性政策,請查看政策中機器家族的區域配額。此外,請確認所選可用區支援要求的機器類型。詳情請參閱「查看及管理配額」和「適用區域及可用區」。

依據記錄建立警告政策

如要在 MIG 調整大小作業等待容量時收到通知,您可以在Logs Explorer中建立記錄式警告政策。舉例來說,您可以在 activeSeekDeltaSize 大於 0 時觸發警告。

如要建立這項警告,請按照下列步驟操作:

  1. 前往 Cloud de Confiance 控制台的「Logs Explorer」頁面。

    前往 Logs Explorer

  2. 輸入下列查詢:

    logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event"
    protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution"
    protoPayload.metadata.details.data.activeSeekDeltaSize > 0
    

    將 PROJECT_ID 替換為專案 ID。

  3. 按一下「執行查詢」來驗證查詢。

  4. 請按照 Cloud Logging 說明文件「建立記錄檔警告政策」一節中的操作說明,建立警告政策。

後續步驟