查看自動配置器記錄

啟用自動調度資源時,自動配置器會根據您指定的選項進行資源調度決策。Stackdriver Logging 會記錄每個調度決策。您可以在記錄檢視器中閱讀這些記錄,進一步瞭解自動配置器進行的資源調度決策。

透過記錄檢視器,您可以查看與以下內容相關的事件:

  • 調整執行個體群組的大小。如果自動配置器調整執行個體群組的大小,自動配置器記錄中便會描述這項大小調整作業。
  • 自動配置器狀態的變更。舉例來說,假設自動配置器原本能正常運作,但後來遇到問題,自動配置器記錄中便會描述此狀態變更。如需部分常見狀態訊息的說明,請參閱常見的傳回狀態訊息一節。

事前準備

查看自動配置器記錄

如要查看自動配置器記錄,請使用 Google Cloud Platform Consolegcloud 指令列工具或 Stackdriver Logging API。

Console

  1. 前往「Logs Viewer」(記錄檢視器) 頁面。

    前往「Logs Viewer」(記錄檢視器) 頁面

  2. 將資源下拉式選單往下拉,然後選取 [GCE Autoscaler] (GCE 自動配置器)
  3. 接著,展開「All logs」(所有記錄) 下拉式選單。選擇 [autoscaler] (自動配置器) 以查看自動調度資源的記錄。

gcloud

使用 gcloud 工具,執行 Beta 版 logging read 指令來查詢所有與自動調度資源有關的記錄 (包含活動稽核記錄)。例如:

gcloud beta logging read "resource.type=gce_autoscaler" --limit 10 \
    --format json

如果要將項目設為僅限與自動配置器大小調整操作有關的記錄,請指定 logName 參數並依照 jsonPayload.newSize 欄位篩選。將 logName 設為:

`projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler`

例如:

gcloud beta logging read 'logName="projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler" AND jsonPayload.newSize:*' \
    --limit 10 --format json

如要查看自動配置器的狀態變更,請使用 logName 參數並依照 jsonPayload.new_status 欄位篩選。將 logName 設為:

`projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler`

例如:

gcloud beta logging read 'logName="projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler" AND jsonPayload.new_status:*' \
    --limit 10 --format json

API

Logging V2 API 發出要求。要求主體必須包含搜尋記錄時要使用的 filter 參數,以及您想要查看記錄的 project。舉例來說,如要發出取得大小調整操作清單的要求:

POST https://logging.googleapis.com/v2/entries:list

{
  "filter": "logName=\"projects\/[PROJECT_ID]\/logs\/compute.googleapis.com%2Fautoscaler\" AND jsonPayload.new_size:*",
  "pageSize": 10,
  "resourceNames": [
    "projects\/[PROJECT_ID]"
  ]
}

如要發出取得狀態變更清單的要求:

POST https://logging.googleapis.com/v2/entries:list

{
  "filter": "logName=\"projects\/[PROJECT_ID]\/logs\/compute.googleapis.com%2Fautoscaler\" AND jsonPayload.new_status:*",
  "pageSize": 10,
  "resourceNames": [
    "projects\/[PROJECT_ID]"
  ]
}

調整大小的記錄

與調整大小操作有關的記錄,說明執行個體群組的調整前與調整後的大小。這些記錄項目可透過以下 JSON 酬載中的現有欄位識別:

jsonPayload.new_size
jsonPayload.old_size

舉例來說,在以下項目中,記錄描述舊執行個體群組從大小為 8 變更到大小為 10 的新執行個體群組。

{
"insertId": "1l68z7sg4jw7kzo",
"jsonPayload": {
  "autoscaler_name": "example-autoscaler",
  "instance_group_name": "example-igm",
  "new_size": 10,
  "old_size": 8,
  "project_id": "myproject",
  "zone_name": "europe-west1-b"
},
"logName": "projects/myproject/logs/compute.googleapis.com%2Fautoscaler",
"receiveTimestamp": "2017-10-24T16:12:08.294439822Z",
"resource": {
  "labels": {
    "autoscaler_id": "1234567890123456789",
    "location": "europe-west1-b",
    "project_id": "myproject"
  },
  "type": "gce_autoscaler"
},
"severity": "INFO",
"timestamp": "2017-10-24T16:12:07.715125478Z"

}

記錄中各個欄位的說明如下:

屬性
insertId 記錄項目的專屬 ID。
jsonPayload 記錄項目酬載,以一個呈現為 JSON 物件的結構表示。
new_size 群組在進行自動調度資源後的新大小。假如群組是向上調度資源規模,新的大小將大於舊的大小。如果向下調度資源規模,新的大小將小於舊的大小。
old_size 群組在變更之前的舊大小。
instance_group_name 適用這個記錄項目的代管執行個體群組名稱。
project_id 執行個體群組的專案 ID,這應一律是目前專案的 ID。
autoscaler_name 負責此操作的自動配置器名稱。
zone_name 自動配置器和執行個體群組的區域。
resource 自動配置器的詳細資料。
type 這個項目的資源類型。對自動配置器而言,此欄位應一律為 gce_autoscaler
labels 自動配置器的中繼資料。
location 自動配置器的區域。
autoscaler_id 由伺服器產生的自動配置器數字 ID。
project_id 自動配置器所屬的專案 ID
timestamp 記錄項目描述的事件發生的時間。這是採用 RFC 3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位。
severity 這個記錄的嚴重性。對自動配置器記錄而言,這個項目一律為 "INFO"
logName 此記錄項目所屬記錄的資源名稱。對自動配置器大小調整記錄而言,這個項目一律為 projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler
receiveTimestamp Stackdriver Logging 收到記錄項目的時間。這是採用 RFC 3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位。

狀態變更記錄

當自動配置器的狀態變更時,Compute Engine 會建立一個擷取狀態變更的記錄項目。這些記錄項目可透過以下 JSON 酬載中的現有欄位識別:

jsonPayload.old_status
jsonPayload.new_status

舉例來說,以下項目描述從 OK 變為新狀態的狀態變更:

The autoscaler is configured to scale based on a load balancing signal but
the instance group has not received any utilization data from the load
balancer or the utilization is constantly 0. Check that the load balancing
configuration is working

您可以使用這些狀態訊息來找出自動配置器未按預期方式運作的原因,或針對您注意到的先前問題進行除錯。在這種情況下,您可能會注意到新的狀態訊息,並檢查負載平衡設定是否已正確設置。

{
"insertId": "ivho6kg4icqfio",
"jsonPayload": {
  "autoscaler_name": "example-autoscaler",
  "instance_group_name": "example-igm",
  "new_status": {
    "details": "The autoscaler is configured to scale based on a load
        balancing signal but the instance group has not received any
        utilization data from the load balancer or the utilization is
        constantly 0. Check that the load balancing configuration is working."
  },
  "old_status": {
    "details": "OK"
  },
  "project_id": "myproject",
  "zone_name": "us-east1-b"
},
"logName": "projects/myproject/logs/compute.googleapis.com%2Fautoscaler",
"receiveTimestamp": "2017-10-24T15:11:58.076196762Z",
"resource": {
  "labels": {
    "autoscaler_id": "1234567890123456789",
    "location": "us-east1-b",
    "project_id": "myproject"
  },
  "type": "gce_autoscaler"
},
"severity": "INFO",
"timestamp": "2017-10-24T15:11:57.619997893Z"

}

記錄中各個欄位的說明如下:

屬性
insertId 記錄項目的專屬 ID。
jsonPayload 記錄項目酬載,以一個呈現為 JSON 物件的結構表示。
new_status 新的自動配置器狀態。請參閱一些常見的傳回狀態訊息
old_status 舊的自動配置器在變更之前的狀態。
instance_group_name 適用這個記錄項目的代管執行個體群組名稱。
project_id 執行個體群組的專案 ID
autoscaler_name 負責此操作的自動配置器名稱。
zone_name 自動配置器和執行個體群組的區域。
resource 自動配置器的詳細資料。
type 這個項目的資源類型。對自動配置器而言,此欄位應一律為 gce_autoscaler
labels 自動配置器的中繼資料。
location 自動配置器的區域。
autoscaler_id 由伺服器產生的自動配置器數字 ID。
project_id 自動配置器所屬的專案 ID。這一律會是目前的專案。
timestamp 記錄項目描述的事件發生的時間。這是採用 RFC 3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位。
severity 這個記錄的嚴重性。對自動配置器記錄而言,這個項目一律為 "INFO"
logName 此記錄項目所屬記錄的資源名稱。對狀態變更記錄而言,這個項目一律會是 projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler
receiveTimestamp Stackdriver Logging 收到記錄項目的時間。這是採用 RFC 3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件