建立指標不存在警告政策

本文說明如何使用 Google Cloud 控制台建立快訊政策,在受監控的時間序列於特定時間範圍內沒有資料時傳送通知。

從安裝或修改政策開始,指標不存在條件需要至少一個成功的測量結果,也就是擷取資料的測量結果,且時間必須在一段時間內。這段時間稱為「缺少觸發條件的時間」。可設定的觸發條件缺少時間上限為 23.5 小時。

舉例來說,假設您將指標不存在政策中的觸發條件不存在時間設定為 30 分鐘。如果寫入指標資料的子系統從未寫入資料點,則無法滿足條件。子系統需要輸出至少一個資料點,然後在 30 分鐘的時間內沒有輸出其他資料點,才可以滿足這個條件。

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

本文件未說明下列事項:

這項功能僅支援 Google Cloud 專案。 如要進行 App Hub 設定,請選取 App Hub 主專案或啟用應用程式的資料夾管理專案。

事前準備

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

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

    如要進一步瞭解 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. 按一下「選取指標」,瀏覽選單選取資源類型和指標類型,然後按一下「套用」

      「選取指標」選單包含有助於尋找可用指標類型的功能:

      • 如要尋找特定指標類型,請使用「篩選列」。舉例來說,如果您輸入 util,選單就會只顯示包含 util 的項目。如果項目通過不區分大小寫的「包含」測試,就會顯示。

      您可以監控任何內建指標或使用者定義的指標。

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

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

      如果您監控的是以記錄為準的指標,建議將「滾動視窗」選單設為至少 10 分鐘。

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

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

      如要合併所有時間序列,請執行下列操作:

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

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

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

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

    5. 點選「下一步」

  5. 設定條件觸發條件:

    1. 選取「指標缺席」做為條件類型。

    2. 選用:更新「警報觸發條件」選單,其中包含下列值:

      • 任何時間序列違反條件時:預設設定。只要有任何時間序列在整個觸發條件的資料不存在時間內沒有資料,就會符合條件。

      • 時間序列違規百分比:時間序列的百分比必須在整個觸發缺席時間內沒有資料,條件才會成立。舉例來說,如果受監控時間序列中有 50% 在整個觸發條件缺席時間內沒有資料,您就會收到通知。

      • 時間序列數違反條件時:必須有特定數量的時間序列在整個觸發條件的資料缺漏時間內沒有資料,條件才會成立。舉例來說,如果受監控的 32 個時間序列在整個觸發條件缺席時間內都沒有資料,您就會收到通知。

      • 所有時間序列違反條件:所有時間序列必須在整個觸發條件不存在時間內都沒有資料,條件才會成立。

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

    3. 使用「觸發缺席時間」欄位,指定指標資料必須缺席多久,監控功能才會通知您。

    4. 點選「下一步」

  6. 選用:建立具有多項條件的快訊政策。

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

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

    1. 如要新增其他條件,請按一下「新增快訊條件」,然後設定該條件。
    2. 按一下「下一步」,然後設定條件的合併方式。
    3. 按一下「下一步」,即可前往設定通知和說明文件。
  7. 設定通知並新增使用者標籤:

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

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

    3. 選用:如要在事件關閉時收到通知,請選取「Notify on incident 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. 按一下「快訊名稱」,然後輸入快訊政策的名稱。

  10. 按一下「建立政策」

篩選所選時間序列

篩選器可確保系統只監控符合特定條件的時間序列。套用篩選器後,圖表上的線條可能會減少,進而提升圖表效能。您也可以套用匯總功能,減少監控的資料量。篩選器可確保只使用符合某組條件的時間序列。套用篩選器後,可評估的時間序列會減少,進而提升快訊的效能。

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

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

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

如要新增篩選器,請按一下「新增篩選條件」,完成對話方塊,然後按一下「完成」。在對話方塊中,使用「篩選」欄位選取篩選條件,然後選取比較運算子和值。下表列出每個比較運算子、其意義和範例:

運算子意義範例
= 平等 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")