建立預測指標值快訊政策

Cloud Monitoring 中的預測指標值警告政策會在預測時間序列即將在預測時間範圍內超過您定義的門檻時,傳送通知。您可以使用Google Cloud 控制台,將預測時間範圍設為 1 小時 (3,600 秒) 到 2.5 天 (216,000 秒),以便在發生違反門檻的情況前有時間因應。

這項內容不適用於以記錄檔為準的警告政策。如要瞭解記錄式警告政策 (會在記錄中出現特定訊息時通知您),請參閱「監控記錄」。

如要在目前指標值超過門檻或資料停止傳入時收到通知,請參閱「建立指標門檻警告政策」和「建立指標缺失警告政策」。如要使用 Cloud Monitoring API,以程式輔助方式建立警告政策,請參閱「使用 API 建立警告政策」。如要建立使用 Monitoring Query Language (MQL) 查詢的警告政策,並設定靜態或動態門檻,請參閱「使用 MQL 的警告政策」和「使用 MQL 建立動態嚴重程度」。

這項功能僅支援 Google Cloud 專案。如要進行 App Hub 設定,請選取 App Hub 主專案或管理專案。

關於預測條件

監控大部分指標時,您都可以使用預測功能。不過,監控配額、磁碟空間或記憶體用量等受限資源時,預測條件會在違反門檻前通知您。這項功能可讓您在達到門檻前,有更多時間因應受限資源的消耗情況。

針對預測條件監控的每個時間序列,條件會例項化決策演算法。演算法訓練完成後,每次評估條件時都會產生預測。每項預測都是預測時間序列在預測期間內是否會違反門檻。如果受監控的時間序列具有規律的週期性,該時間序列的決策演算法會將週期性行為納入預測。

發生下列任一或兩項情況時,即符合預測條件:

  • 特定重新測試期間,時間序列的所有值都違反門檻。
  • 在重新測試期間,針對特定時間序列的所有預測,都預測該時間序列會在預測期間內違反門檻。

決策演算法的初始訓練時間是預測時間範圍的兩倍。舉例來說,如果預測時間是一小時,則需要兩小時的訓練時間。系統會分別訓練每個時間序列的決策演算法。訓練決策演算法時,只有在時間序列的值違反指定重新測試時間範圍的門檻時,時間序列才符合條件。

初始訓練完成後,每個決策演算法都會持續使用資料進行訓練,資料長度最多可達預測時間範圍的六倍。舉例來說,如果預測時間範圍是一小時,則在持續訓練期間,系統會使用最近六小時的資料。

設定預測條件後,如果超過 10 分鐘沒有資料,系統會停用預測功能,並將條件視為指標門檻條件。

如果預測結果顯示時間序列會在預測時間範圍內違反條件的門檻,系統就會建立快訊。如果預測結果顯示時間序列在預測時間範圍內不會違反門檻,監控功能就會自動關閉快訊。

事前準備

  1. 如要取得使用 Google Cloud 控制台建立及修改警告政策所需的權限,請要求管理員授予您專案的 Monitoring 編輯者 (roles/monitoring.editor) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

    您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

    如要進一步瞭解 Cloud Monitoring 角色,請參閱「使用 Identity and Access Management 控制存取權」。

  2. 請務必熟悉警告政策的一般概念。如要瞭解這些主題,請參閱「警告總覽」。

  3. 設定要用於接收任何通知的通知管道。為提供備援,建議您建立多種通知管道。詳情請參閱「建立及管理通知管道」。

建立警告政策

如要建立警告政策,根據預測結果傳送通知,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的 「Alerting」(警告) 頁面:

    前往「Alerting」(警告)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。

  2. 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。如要設定 App Hub,請選取 App Hub 主專案或管理專案。
  3. 選取「建立政策」。
  4. 選取要監控的時間序列:

    1. 按一下「選取指標」,瀏覽選單選取資源類型和指標類型,然後按一下「套用」。

      「選取指標」選單包含多項功能,可協助您找出可用的指標類型:

      • 如要尋找特定指標類型,請使用「Filter bar」(篩選列)。舉例來說,如果您輸入 util,選單就會只顯示包含 util 的項目。如果項目通過不區分大小寫的「包含」測試,就會顯示。
      • 如要顯示所有指標類型 (包括沒有資料的指標),請按一下「有效」。根據預設,選單只會顯示有資料的指標類型。詳情請參閱「選單中未列出的指標」。

      您可以監控任何內建指標或任何使用者定義的指標類型,只要該指標類型的值類型為 double 或 int64、屬於限制指標,且不是 Amazon VM 執行個體的指標即可。

      如果選取的指標類型導致監控的時間序列超過 64 個,Monitoring 會針對值最接近門檻或已違反門檻的 64 個時間序列進行預測。其他時間序列的值則會與門檻比較。

    2. 選用:如要監控與上一步所選指標和資源類型相符的部分時間序列,請按一下「Add filter」(新增篩選器)。在篩選器對話方塊中,依序選取要篩選的標籤、比較子和篩選器值。舉例來說,篩選器 zone =~ ^us.*.a$ 使用規則運算式,比對可用區名稱開頭為 us 且結尾為 a 的所有時間序列資料。詳情請參閱「篩選所選時間序列」。

    3. 選用:如要變更時間序列中點的對齊方式,請在「轉換資料」部分設定「滾動週期」和「滾動週期函式」欄位。

      如要監控記錄指標,建議將「Rolling window」(滾動週期) 選單設為至少 10 分鐘。

      這些欄位會指定如何合併視窗中記錄的資料點。舉例來說,假設時間範圍為 15 分鐘,而時間範圍函式為 max。對齊點是最近 15 分鐘內所有資料點的最大值。詳情請參閱「對齊:系列內正規化」。

      您也可以將「滾動週期函式」欄位設為「百分比變化」,監控指標值的變化率。詳情請參閱「監控變化率」。

    4. 選用:如要減少政策監控的時間序列數量,或只想監控一組時間序列,請合併時間序列。舉例來說,您可能不想監控每個 VM 執行個體的 CPU 使用率,而是想計算可用區中所有 VM 的平均 CPU 使用率,然後監控該平均值。根據預設,系統不會合併時間序列。如需一般資訊,請參閱「縮減:合併時間序列」。

      如要合併所有時間序列,請按照下列步驟操作:

      1. 在「Across time series」(跨時間序列) 專區中,按一下 「Expand」(展開)。
      2. 將「Time series aggregation」(時間序列匯總) 欄位設為 none 以外的值。例如,如要顯示時間序列的平均值,請選取 mean。
      3. 確認「時間序列分組依據」欄位為空白。

      如要依標籤值合併或分組時間序列,請按照下列步驟操作:

      1. 在「跨時間序列」部分,按一下「展開」圖示 。
      2. 將「Time series aggregation」(時間序列匯總) 欄位設為 none 以外的值。
      3. 在「Time series group by」(時間序列分組依據) 欄位中,選取要分組的標籤。

      舉例來說,如果依 zone 標籤分組,然後將匯總欄位設為 mean 值,圖表就會顯示每個有資料的區域的時間序列。特定可用區顯示的時間序列,是該可用區所有時間序列的平均值。

    5. 點選「下一步」。

  5. 設定條件觸發條件:

    1. 選取「預測」做為條件類型。

    2. 選用:更新「Alert trigger」(警告觸發條件) 選單,其中包含下列值:

      • 任何時間序列違反條件時:預設設定。在整個重新測試期間,只要有任何時間序列違反門檻或預計會違反門檻,就會符合條件。

      • 時間序列百分比不符合條件時:時間序列百分比必須違反門檻,或預測在整個重新測試期間違反門檻,條件才會達成。舉例來說,當 50% 的受監控時間序列在整個重新測試期間違反門檻時,您就會收到通知。

      • 時間序列數量不符合條件時:在整個重新測試期間,必須有特定數量的時間序列違反門檻或預測會違反門檻,條件才會成立。舉例來說,如果受監控的 32 個時間序列在整個重新測試期間都違反門檻,您就會收到通知。

      • 所有時間序列不符合條件:所有時間序列都必須不符合門檻,或預測在整個重新測試期間不符合門檻,條件才會達成。

      如要瞭解 Monitoring 用於對齊及測量時間序列資料的時間間隔,請參閱「對齊週期和重新測試時間範圍」。

    3. 選取「Forecast window」(預測時間範圍) 的值。您選取的值是預測的未來時間長度。這個值必須設為至少 1 小時 (3,600 秒),最多 2.5 天 (216,000 秒)。

    4. 使用「門檻位置」和「門檻值」欄位,輸入所選指標的預測值何時會違反門檻。 舉例來說,如果將這些值設為「高於門檻」和 10,則任何高於 10 的預測值都會違反門檻。

    5. 選用:展開「進階選項」,然後設定「重新測試時間範圍」的值。這個欄位的預設值為「No retest」(不重新測試)。

      建議您將這個欄位設為至少 10 分鐘。

      舉例來說,假設您設定預測條件,讓任何時間序列都能使條件達成。假設「重新測試週期」設為 15 分鐘,「預測週期」設為 1 小時,且時間序列的值高於「門檻」 (設為 10) 時,就會發生違規情形。只要發生下列任一情形,就算符合這項條件:

      • 時間序列的所有值都高於 10,且至少維持 15 分鐘。
      • 在 15 分鐘的間隔內,某個時間序列的所有預測都指出,其值會在接下來一小時內的某個時間點超過門檻 10。
    6. 選用:如要指定監控功能在資料停止傳送時如何評估條件,請展開「進階選項」,然後使用「評估缺少資料」選單。

      如果「重新測試週期」的值為「不重新測試」,則「評估缺少資料」選單會停用。

      如果資料遺失超過 10 分鐘,預測條件就會停止預測,改為使用「評估缺少資料」欄位的值,判斷如何管理快訊。觀察期重新開始時,預測也會重新開始。

      Google Cloud console
      「Evaluation of missing data」欄位
      摘要 詳細資料
      缺少資料空白 未排除的警告仍會保持未排除狀態。
      系統不會開啟新的 Google 快訊。

      如果條件已符合,即使資料停止傳入,條件仍會保持符合狀態。如果快訊因這個條件而開啟,則會保持開啟狀態。如果開啟快訊後沒有收到任何資料,系統會在至少延遲 15 分鐘後啟動自動關閉計時器。計時器到期後,系統會關閉警告。

      如果條件未達成,當資料停止傳送時,條件仍會處於未達成狀態。

      缺少資料點會視為違反政策條件的值 未排除的警告仍會保持未排除狀態。
      可以開啟新的 Google 快訊。

      如果條件已符合,即使資料停止傳入,條件仍會保持符合狀態。如果這個條件有未解決的警告,警告會保持未解決狀態。如果開啟的快訊在自動關閉時間加上 24 小時內沒有收到任何資料,系統就會關閉快訊。

      如果未符合條件,這項設定會導致指標門檻條件的行為與 metric-absence condition 類似。如果資料未在重新測試時間範圍內送達,系統就會判定符合條件。如果警告政策只有一項條件,只要符合該條件,就會觸發警告。

      缺少資料點會視為未違反政策條件的值 未解決的警告已關閉。
      系統不會開啟新的 Google 快訊。

      如果條件已符合,當資料停止傳入時,條件就會停止符合。如果這項情況有未解決的警示,系統就會關閉警示。

      如果條件未達成,當資料停止傳送時,條件仍會處於未達成狀態。

    7. 點選「下一步」。

  6. 選用:建立具有多個條件的警告政策。

    大多數政策會監控單一指標類型,例如監控寫入 VM 執行個體的位元組數。如要監控多種指標類型,請建立含有多項條件的政策。每項條件都會監控一種指標類型。建立條件後,請指定條件的組合方式。詳情請參閱「具有多個條件的政策」。

    如要建立具有多個條件的警告政策,請按照下列步驟操作:

    1. 如要新增其他警告觸發條件,請按一下「Add alert condition」(新增警告條件),然後設定該條件。
    2. 點選「下一步」,設定條件的組合方式。
    3. 按一下「Next」(下一步),前往通知和說明文件設定。
  7. 設定通知並新增使用者標籤:

    1. 展開「Notifications and name」(通知和名稱) 選單,然後選取通知管道。為提供備援,建議您在警告政策中新增多種通知管道。詳情請參閱「管理通知管道」。

    2. 選用:如要在通知中使用自訂主旨行,而非預設主旨行,請更新「Notification subject line」(通知主旨行) 欄位。

    3. 選用:如要在警報關閉時收到通知,請選取「Notify on alert closure」(警報關閉時通知)。 根據預設,如果您是透過 Google Cloud 控制台建立警告政策,系統只會在警告產生時傳送通知。

    4. 選用:如要變更「監控」在資料停止傳送後,等待多久才關閉快訊,請從「快訊自動關閉時間長度」選單中選取所需選項。根據預設,如果資料停止傳入,Monitoring 會等待七天,再關閉未解決的警告。

    5. 選用:如要將警告政策與 App Hub 應用程式建立關聯,請在「應用程式標籤」部分選取應用程式,以及服務或工作負載。警告和通知會顯示這些標籤。

    6. 選用:從「政策嚴重性等級」選單中選取所需選項。 快訊和通知會顯示嚴重性等級。

    7. 選用:如要為警告政策新增自訂標籤,請在「政策使用者標籤」部分執行下列操作:

      1. 按一下「新增標籤」,然後在「鍵」欄位中輸入標籤名稱。標籤名稱開頭須為小寫英文字母,可包含小寫英文字母、數字、底線和破折號。例如,輸入 severity。
      2. 按一下「值」,然後輸入標籤值。標籤值可包含小寫字母、數字、底線和破折號。例如,輸入 critical。

      如要瞭解如何使用政策標籤管理通知,請參閱「使用標籤為快訊加上註解」。

  8. 選用:在「Documentation」(說明文件) 部分,輸入要納入通知的內容。

    您可以使用純文字、Markdown 和變數設定說明文件格式。您也可以加入連結,協助使用者偵錯快訊,例如內部教戰手冊、 Google Cloud 資訊主頁和外部網頁的連結。舉例來說,下列說明文件範本描述 gce_instance 資源的 CPU 使用率警告,並包含多個變數,用於參照警告政策和條件 REST 資源。文件範本會將讀者導向外部頁面,協助進行偵錯。

    建立通知時,Monitoring 會將說明文件變數替換為其值。這些值只會取代通知中的變數。 Google Cloud 控制台的預覽窗格和其他位置只會顯示 Markdown 格式。

    預覽

    ## CPU utilization exceeded
    
    ### Summary
    
    The ${metric.display_name} of the ${resource.type}
    ${resource.label.instance_id} in the project ${resource.project} has
    exceeded 90% for over 15 minutes.
    
    ### Additional resource information
    
    Condition resource name: ${condition.name}  
    Alerting policy resource name: ${policy.name}  
    
    ### Troubleshooting and Debug References
    
    Repository with debug scripts: example.com  
    Internal troubleshooting guide: example.com  
    ${resource.type} dashboard: example.com
    

    通知中的格式

    範例:通知中顯示的文件。

    詳情請參閱「使用使用者定義的文件為通知加上註解」和「使用管道控制項」。

  9. 按一下「Alert name」(警告名稱),輸入警告政策的名稱。

  10. 點選「建立政策」。

篩選所選時間序列

篩選器可確保系統只監控符合一組條件的時間序列。套用篩選條件後,圖表中的線條數量可能會減少,進而提升圖表效能。您也可以套用匯總,減少監控的資料量。篩選器可確保只使用符合一組條件的時間序列。套用篩選器後,需要評估的時間序列會減少,進而提升警告成效。

篩選器由標籤、比較運算子和值組成。舉例來說,如要比對 zone 標籤開頭為 "us-central1" 的所有時間序列,可以使用篩選器 zone=~"us-central1.*",透過規則運算式執行比較。

依專案 ID 或資源容器篩選時,必須使用等號運算子 (=)。依其他標籤篩選時,則可使用任何支援的比較運算子。通常可以篩選指標和資源標籤,以及資源群組。

如果提供多個篩選條件,系統只會監控符合所有條件的時間序列。

如要新增篩選器,請按一下「Add filter」(新增篩選器),完成對話方塊,然後按一下「Done」(完成)。在對話方塊中,使用「Filter」(篩選器) 欄位選取篩選條件,選取比較運算子,然後選取或輸入值。下拉式選單只會列出過去一週出現的值,但您可以輸入任何值。下表列出每個比較運算子、其意義和範例:

運算子意義範例
= 平等 resource.labels.zone = "us-central1-a"
!= 不等式 resource.labels.zone != "us-central1-a"
=~ 規則運算式 2 相等 monitoring.regex.full_match("^us.*")
!=~ 規則運算式 2 不等式 monitoring.regex.full_match("^us.*")
starts_with 值開頭為 resource.labels.zone = starts_with("us")
ends_with 值結尾為 resource.labels.zone = ends_with("b")
has_substring 值中含有特定值 resource.labels.zone = has_substring("east")
one_of 下列其中一項權限: resource.labels.zone = one_of("asia-east1-b", "europe-north1-a")
!starts_with 值開頭不是 resource.labels.zone != starts_with("us")
!ends_with 值結尾不是 resource.labels.zone != ends_with("b")
!has_substring 值不包含 resource.labels.zone != has_substring("east")
!one_of 值不屬於 resource.labels.zone != one_of("asia-east1-b", "europe-north1-a")

疑難排解

本節提供疑難排解提示。

可用指標選單中未列出指標

如要監控「Select a metric」(選取指標) 選單中未列出的指標,請執行下列任一操作:

  • 如要建立監控 Google Cloud 指標的警告政策,請展開「選取指標」選單,然後點選「啟用」。如果停用,選單會列出Google Cloud 服務的所有指標,以及所有含有資料的指標。

  • 如要在自訂指標類型產生資料前設定條件,請使用監控篩選器指定指標類型:

    1. 選取「?」,然後在工具提示中選取「Direct filter mode」(直接篩選器模式)。
    2. 輸入監控篩選條件或時間序列選取器。 如要瞭解語法,請參閱下列文件:

監控變化率

如要監控指標值的變化率,請將「Rolling window function」(滾動週期函式) 欄位設為「percent change」(百分比變化)。評估條件時,Monitoring 會以百分比計算指標的變化率,然後將該百分比與條件門檻進行比較。這項比較程序包含兩個步驟:

  1. 如果時間序列的指標類型為 DELTA 或 CUMULATIVE,則會轉換為指標類型為 GAUGE 的時間序列。如要瞭解轉換,請參閱「種類、類型和轉換」。
  2. Monitoring 會比較最近 10 分鐘滑動視窗的平均值,以及對齊週期開始前 10 分鐘滑動視窗的平均值,藉此計算變化百分比。

您無法變更變化率警告政策中,用於比較的 10 分鐘滑動時間範圍。不過,您在建立條件時,確實需要指定對齊週期。

限制

  • 您可以使用Google Cloud 控制台的選單型介面,或使用 Monitoring 篩選器來設定條件。您無法使用 Monitoring 查詢語言或 PromQL 設定條件。
  • 系統支援值類型為 double 或 int64 的所有指標,但 Amazon VM 執行個體的指標除外。

後續步驟