建議

推薦功能

建議工具是 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 位置 (例如 globalus-central1-a)。
  • RECOMMENDER_ID 是完整的推薦工具 ID (例如 google.compute.instance.MachineTypeRecommender)。
  • RECOMMENDATION_ID 是建議的專屬 ID。

說明

建議說明會儲存在 Recommendation 實體的 description 欄位中。這項範例的內容僅提供英文版。這是使用者可自然閱讀的建議說明文字。在 Google Cloud 控制台中,按一下即可查看其他建議詳細資料,並顯示說明。

推薦子類型

推薦者可能會有特定類型建議的子類型。舉例來說,Identity and Access Management 角色建議工具的子類型為 REPLACE_ROLEREMOVE_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 天 (自狀態變更時起算)。CLAIMEDSUCCEEDEDFAILED

etag

etag 是用來識別建議目前狀態的專屬指紋。每次建議變更時,系統都會指派新的 etag 值。這個值會儲存在 Recommender 實體的 etag 欄位中。

使用 gcloud 指令或 API 呼叫從 Recommender 擷取建議後,您可以在後續作業中同時參考建議 ID 和 etag。這可確保只有在建議自上次擷取後未變更時,才會執行任何作業。

優先順序

最佳化建議的優先順序可協助您判斷應優先採取哪些行動。這個欄位會提供 P1P2P3P4 值,其中 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"
}