建立指標不存在警告政策

如果受監控的時間序列在您指定的一段時間內沒有任何資料,Cloud Monitoring 中的指標缺席警告政策就會傳送通知。這段時間稱為「觸發條件缺席時間」,最長可設為 23.5 小時。如要符合條件,受監控的子系統必須在您建立或修改警告政策後,至少寫入一個資料點。舉例來說,如果您將觸發條件缺席時間設為 30 分鐘,則只有在子系統寫入至少一個資料點,然後 30 分鐘內未寫入任何資料點時,才符合條件。

如要監控服務的運作時間,請建立運作時間檢查,並透過警告政策監控檢查結果,而非監控 compute.googleapis.com/instance/uptime 等指標類型。詳情請參閱「建立運作時間檢查的警告政策」。

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

如要在指標值超過門檻或預測會違反門檻時收到通知,請參閱「建立指標門檻警告政策」和「建立預測指標值警告政策」。如要使用 Cloud Monitoring API,以程式輔助方式建立警告政策,請參閱「使用 API 建立警告政策」。如要建立警告政策,並使用 Monitoring Query Language (MQL) 查詢搭配靜態或動態門檻,請參閱「使用 MQL 的警告政策」和「使用 MQL 建立動態嚴重性等級」。

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

事前準備

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

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

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

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

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

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

      如果您監控的是記錄指標,建議將「滾動週期」選單設為至少 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. 條件類型請選取「Metric absence」。

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

      • 任何時間序列違反條件時:預設設定。如果任何時間序列在整個觸發條件缺席時間內都沒有資料,就會符合條件。

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

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

      • 所有時間序列不符合條件時:所有時間序列在整個觸發條件不存在時間內,都必須沒有資料,才符合條件。

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

    3. 使用「Trigger absence time」(觸發缺少時間) 欄位,指定指標資料必須缺少多久,Monitoring 才會通知您。

    4. 點選「下一步」。

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

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

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

    1. 如要新增警告觸發條件,請按一下「新增快訊條件」,然後設定該條件。
    2. 點按「下一步」,然後設定條件的組合方式。
    3. 按一下「下一步」,前往設定通知和文件。
  7. 設定通知並新增使用者標籤:

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

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

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

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

    5. 選用:如要將警告政策與 App Hub 應用程式建立關聯,請在「Application labels」(應用程式標籤) 專區中,選取應用程式和服務或工作負載。快訊和通知會顯示這些標籤。

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

    7. 選用:如要為警告政策新增自訂標籤,請在「Policy user labels」(政策使用者標籤) 專區執行下列操作:

      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")