建議
推薦功能
建議工具是 Google Cloud 上的服務,可針對 Google Cloud 產品和資源提供最佳化建議。
您可以使用下列一或多個用戶端,查看及管理每個建議事項的建議和洞察資料:
- 建議中心
- 在情境中使用 Google Cloud 控制台中的服務使用者介面 (UI)
- REST API 或 Google Cloud CLI
如要進一步瞭解推薦者和支援的用戶端,請參閱「推薦者」。
每個推薦工具都有專屬的推薦工具 ID,用於識別服務。使用 Recommender gcloud
指令或 REST/RPC API 與建議互動時,您會使用建議工具 ID。
詳情請參閱「建議工具」。
建議
建議是機器生成的建議,可協助您最佳化雲端資源的使用方式。其中包含對建議採取行動的必要步驟。推薦工具會根據資源用量,使用機器學習或啟發式方法提供建議。Recommender 會使用 Recommendation
實體儲存建議。
最佳化建議具有下列核心屬性:
名稱
建議名稱會儲存在 Recommendation
實體的 name
欄位中。這是建議的名稱,格式如下:
projects/TARGET_PROJECT_ID/locations/LOCATION/recommenders/RECOMMENDER_ID/recommendations/RECOMMENDATION_ID
其中:
- TARGET_PROJECT_ID 是建議所屬專案的 ID。
- LOCATION 是與建議相關聯的資源所在 Google Cloud
位置 (例如
global
或us-central1-a
)。 - RECOMMENDER_ID 是完整的推薦工具 ID (例如
google.compute.instance.MachineTypeRecommender
)。 - RECOMMENDATION_ID 是建議的專屬 ID。
說明
建議說明會儲存在 Recommendation
實體的 description
欄位中。這項範例的內容僅提供英文版。這是使用者可自然閱讀的建議說明文字。在 Google Cloud 控制台中,按一下即可查看其他建議詳細資料,並顯示說明。
推薦子類型
推薦者可能會有特定類型建議的子類型。舉例來說,Identity and Access Management 角色建議工具的子類型為 REPLACE_ROLE
和 REMOVE_ROLE
。隨著時間推移,現有推薦工具可能會推出新的子類型。這份總覽列出所有可用的推薦工具。如要進一步瞭解可用的建議子類型,請參閱建議工具說明文件。
推薦功能影響
影響程度會量化執行建議動作後預期可獲得的效益。每項最佳化建議都可能產生下列類型的影響,代表套用最佳化建議後可能發生的結果:
主要影響為必填欄位,會儲存在
Recommendation
實體的primaryImpact
欄位中。次要影響為選填,並儲存在
additionalImpact
欄位中。
主要和次要影響類型如下:
COST
:套用特定建議後,預計可節省 (或產生) 的金額。詳情請參閱「CostProjection」下的cost
欄位。PERFORMANCE
:預估成效增幅或減幅。請注意,部分最佳化建議可能會產生額外費用 (例如,建議增加 VM 的 CPU 或記憶體配置,以解決資源過度使用問題)。SECURITY
:預估安全防護機制改善幅度。詳情請參閱 SecurityProjection 下的details
欄位。MANAGEABILITY
:預估可減少的手動作業。SUSTAINABILITY
:預估減少的碳排放量。詳情請參閱「SustainabilityProjection」下的carbon_footprint_kg_co2
欄位和「碳足跡報告方法」。
作業
Operation
是建議最佳化措施中的原子步驟之一,必須單獨執行。作業可代表下列變更:
- 在 Google Cloud 資源中新增、移除或取代 JSON 物件欄位。
- 在 Google Cloud 資源中新增、移除或取代 JSON 陣列欄位。 只要在路徑上定義篩選條件,即可識別 JSON 陣列元素。
- 新增 Google Cloud 資源。
- 刪除 Google Cloud 資源。
- 測試作業,指出資源的原始狀態。您也可以使用測試作業,在套用建議前驗證資源的目前狀態。
- 複製及移動 Google Cloud 資源和欄位。
每個 Operation
都是以修補程式的 JSON 路徑 (RFC 6902) 格式為基礎。我們選擇這個 RFC,是因為它能以更一致的方式反映資源變化,包括 Google Cloud中常見的複雜情境。舉例來說,IAM 建議會使用巢狀陣列,反映主體的角色繫結已移至其他角色。
您可以透過下列方式,為每個資源產生變更清單 (以差異為準的檢視畫面):
- 原始狀態:測試作業代表欄位的原始值。 這代表差異比較檢視畫面的左側。
- 建議狀態:非測試作業代表每個欄位的建議變更。這代表差異比較檢視畫面的右側。
作業群組
作業群組是一或多個作業的集合,套用建議時必須按照特定順序執行。建議可以有一或多個作業群組。作業群組會儲存在 Recommendation
實體的 operationGroups
欄位中。
舉例來說,如果建議您變更 Compute Engine 執行個體群組的 VM 執行個體機器類型,則會有兩組作業:一組用於變更執行個體範本中的機器類型,另一組則用於將變更套用至特定執行個體群組。
由於第一組作業必須完成,第二組作業才能開始,因此建議中會將這些作業定義為兩個不同的執行個體群組。
作業群組可以包含測試作業。測試作業會執行檢查,確保建議仍有效。建議變更 VM 執行個體機器類型的建議事項,會進行測試作業,檢查目前的機器類型是否與建議事項提出時相同。
狀態
建議提出後,會經歷許多狀態轉換。 最佳化建議可能處於下列狀態:
ACTIVE
,表示系統已提出建議,但您尚未採取任何行動。您可以透過聲明擁有權來套用這項建議。資源變更時,系統會更新有效建議。CLAIMED
,表示你或其他程序已聲明擁有建議,且正在處理回覆。聲明建議後,Recommender 不會在資源變更時更新建議。SUCCEEDED
,表示您或其他程序已將建議套用至相關聯的資源。FAILED
,表示套用最佳化建議的嘗試失敗。DISMISSED
,表示您或其他程序已關閉建議,但未將建議套用至相關聯的資源。這個狀態會防止建議顯示在建議清單中,通常是由管理員套用,因為管理員基於各種原因將建議設為無效。這也能避免建議移至CLAIMED
狀態。
建議狀態的相關資訊會儲存在 Recommendation
實體的 stateInfo
欄位。包括建議本身的狀態,以及任何額外的建議者狀態中繼資料。
如果建議變更為「已接受」、「已拒絕」或「已忽略」狀態,建議內容不會更新,且建議的有效期限為 90 天 (自狀態變更時起算)。CLAIMED
SUCCEEDED
FAILED
etag
etag 是用來識別建議目前狀態的專屬指紋。每次建議變更時,系統都會指派新的 etag 值。這個值會儲存在 Recommender
實體的 etag
欄位中。
使用 gcloud
指令或 API 呼叫從 Recommender 擷取建議後,您可以在後續作業中同時參考建議 ID 和 etag。這可確保只有在建議自上次擷取後未變更時,才會執行任何作業。
優先順序
最佳化建議的優先順序可協助您判斷應優先採取哪些行動。這個欄位會提供 P1
、P2
、P3
和 P4
值,其中 P4
會設為預設優先順序。每個推薦工具都可以定義自己的優先順序策略。
狀態中繼資料
認領建議或將建議標示為成功或失敗時,您可以透過狀態中繼資料,加入作業的其他中繼資料。
中繼資料會指定為 key:value
配對。例如:
{
"stateMetadata": {
"priority" : "high",
"tracking_number": "12345" }
}
更新「stateMetadata
」欄位會覆寫現有的狀態中繼資料。
上次重新整理的時間
「上次重新整理的時間」表示系統上次透過生成程序重新整理建議的時間。建議內容會反映上次重新整理時的資源狀態。
範例
以下範例顯示 Compute Engine 中 VM 執行個體的規模調整建議。
{
"content": {
"operationGroups": [
{
"operations": [
{
"action": "test",
"path": "/machineType",
"resource": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/instance-rightsizing-2",
"resourceType": "compute.googleapis.com/Instance",
"valueMatcher": {
"matchesPattern": ".*zones/us-central1-a/machineTypes/n1-standard-4"
}
},
{
"action": "replace",
"path": "/machineType",
"resource": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/instance-rightsizing-2",
"resourceType": "compute.googleapis.com/Instance",
"value": "zones/us-central1-a/machineTypes/custom-2-5120"
}
]
}
]
},
"description": "Save cost by changing machine type from n1-standard-4 to custom-2-5120.",
"etag": "\"923daeebe926c12f\"",
"recommenderSubtype": "CHANGE_MACHINE_TYPE",
"lastRefreshTime": "2019-06-13T06:44:58Z",
"name": "projects/32428390823/locations/us-central1-a/recommenders/google.compute.instance.MachineTypeRecommender/recommendations/a523ff7e-ed03-4143-a3a5-5b396b99cba9",
"primaryImpact": {
"category": "COST",
"costProjection": {
"cost": {
"currencyCode": "USD",
"units": "-73"
},
"duration": "2592000s"
}
},
"stateInfo": {
"state": "ACTIVE"
}
}
如需更多建議範例,請參閱「建議工具」中個別建議工具的說明文件。
深入分析參考資料
參照相關聯的洞察。 參考資料會將建議連結至相關聯的洞察資料 (如有)。
設定
您可以透過推薦工具設定執行下列操作:
- 自訂產生洞察資料和建議的方式。 方法是修改用於產生這些洞察資料和建議的部分設定參數。
- 每個建議工具設定都會為每個參數提供一些預設值。每個參數都有一定範圍的值,可用於自訂設定。
- 有效設定是您上次修改的設定。每次變更設定後,最多可能需要 48 小時才會生效。
舉例來說,您可以設定預設 CPU 門檻或觀察期,建立更符合工作負載、應用程式和基礎架構需求的建議。
您可以使用設定 API 擷取建議或洞察類型的設定。您可以選擇更新單一專案的設定參數。如要查看及修改設定參數,您必須具備特定權限,才能存取各項建議設定或洞察類型。
以下是包含閒置 VM 建議設定參數的回應範例:
{
"name": "projects/project-number/locations/global/recommenders/google.iam.policy.Recommender/config",
"recommenderGenerationConfig": {
"params": {
"minimum_observation_period": "P90D",
}
},
"etag": "\"2f3c9b65cda6a4ba\"",
"updateTime": "2020-11-03T04:41:15.330351Z"
}