建立及管理暫緩通知

在 Cloud Monitoring 中,您可以設定延後,防止警告政策在特定時間範圍內 (例如預定維護期間) 建立警告及傳送通知。您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Cloud Monitoring API 建立及管理延後通知。

如需概念總覽,請參閱「暫緩通知和快訊」。

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

事前準備

在儲存警告政策的 Google Cloud 專案中,完成下列步驟:

  1. 請確認您具備必要權限:

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

  2. 如要使用本文中的 Cloud Monitoring API 範例,請執行下列操作:

    1. 建立環境變數 PROJECT_ID,用於保存Google Cloud 專案的 ID:

      PROJECT_ID=PROJECT_ID
    2. 向 Google Cloud CLI 驗證:

      gcloud auth login
    3. 設定預設 Google Cloud 專案:

      gcloud config set project ${PROJECT_ID}
    4. 建立授權權杖:

      ACCESS_TOKEN=`gcloud auth print-access-token`

      您必須定期更新存取權杖。如果原本可執行的指令突然回報您未經驗證,請重新發出這個指令。

建立延後設定

如要避免警告政策建立警告並傳送通知,請建立延後。如果將暫緩處理時間限制為一項快訊政策,暫緩處理時間可以包含以標籤為準的篩選器。如果新增標籤篩選器,則延後功能只會套用至符合篩選條件的快訊。建立延後通知後,您無法修改延後通知適用的標籤篩選器或政策清單。

控制台

Google Cloud 控制台提供兩種建立延後通知的方式:

  • 如果從開啟快訊的「Alert details」(快訊詳細資料) 頁面開始,系統會預先設定您完成建立延後設定的對話方塊,列出警告政策。您也可以在對話方塊中選取標籤,這些標籤會附加至延後通知,做為標籤篩選器。

  • 如果從「Alerting」(警告) 頁面開始,您可以建立暫緩處理,其條件最多可列出 16 項警告政策。不過,即使延後條件列出一個警告政策,您也無法將標籤篩選器附加至延後。

如要從開啟的警告建立延後,請按照下列步驟操作:

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

    前往「Alerting」(警告)

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

  2. 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。如要設定 App Hub,請選取 App Hub 主專案或管理專案。
  3. 在「Alerting」(警告) 頁面的「Alerts」(警告) 窗格中,找到警告並點選「Alert summary」(警告摘要)。
  4. 在「Alert details」(快訊詳細資料) 頁面中,按一下「Snooze」(延後),然後選取延後時間長度。
  5. 選用:如要根據標籤篩選暫緩處理的郵件,請前往「標籤」部分,然後選取一或多個標籤。以標籤為準的篩選器可包含資源和指標標籤。如果警告政策並非以 PromQL 為基礎,篩選器也可以包含中繼資料標籤。

    通常,暫緩通知會套用至警告政策建立的所有快訊。 篩選器可讓您將延後功能套用至標籤與篩選器標籤相符的快訊。

  6. 按一下「延後」。延後功能現在會套用至建立警告的警告政策。

如要透過「Alerting」(警告) 頁面建立延後,請按照下列步驟操作:

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

    前往「Alerting」(警告)

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

  2. 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。如要設定 App Hub,請選取 App Hub 主專案或管理專案。
  3. 在「快訊」頁面,按一下「建立延後」。
  4. 輸入延後項目的描述性名稱。這個名稱會顯示在「Alerting」(快訊) 頁面。
  5. 選取「開始時間」。你可以輸入特定時間,也可以在建立貪睡設定時啟動貪睡功能。
  6. 輸入「時間長度」。這個欄位的值會決定延後時間長度。
  7. 完成「延後條件」部分。您可以使用「Alert policies」(警告政策) 選單,選取要套用延後功能的警告政策。

    最多可將 16 項警告政策新增至延後。

    延後設定一經建立即無法變更條件。

    完成「Snooze criteria」(延後條件) 部分後,「Create snooze」(建立延後) 窗格會列出符合條件的過往警告。

  8. 點選「建立」。

gcloud

您可以使用 gcloud CLI 建立延後,其條件最多可列出 16 項警告政策。如果延後處理的對象是某項警告政策,您也可以加入以標籤為準的篩選條件。

如要建立暫緩通知,請執行 gcloud monitoring snoozes create 指令:

gcloud monitoring snoozes create --criteria-policies=LIST_OF_POLICIES --display-name=DISPLAY_NAME --start-time=START_TIME --end-time=END_TIME --project=PROJECT_ID --criteria-filter=FILTER

執行上述指令前,請先替換下列項目:

  • LIST_OF_POLICIES:延後適用的政策。 如要指定多項專案,請以半形逗號分隔。
  • PROJECT_ID:專案的 ID。如要進行 App Hub 設定,請選取 App Hub 主專案或管理專案。
  • DISPLAY_NAME:要在 Google Cloud 控制台中顯示的名稱。
  • START_TIME:開始時間。
  • END_TIME:結束時間。這個值至少須比開始時間晚一分鐘。

    開始和結束時間必須遵循 ISO 8601 格式規則。不過,您可以指定絕對或相對時間。以下範例會指定絕對時間。如要從目前時間開始延後 30 分鐘,請使用 --start-time="+PTM30M"。

  • FILTER:選用。如果延後功能適用於一項警告政策,您可以定義標籤篩選器。篩選器可包含資源、指標和中繼資料標籤,並將延後套用至具有相符標籤的快訊。如果警告政策是以 PromQL 為基礎,篩選器就無法使用中繼資料標籤。詳情請參閱 gcloud monitoring snoozes create 參考資料頁面。

舉例來說,下列指令會為 ID 為「12345」的警告政策建立延後。暫緩時間範圍為 2025 年 3 月 1 日至 2025 年 3 月 7 日。

gcloud monitoring snoozes create --display-name="Maintenance Week" \
    --criteria-policies="projects/my-project/alertPolicies/12345" \
    --start-time="2025-03-01T03:00:00.0-0500" \
    --end-time="2025-03-07T23:59:59.5-0500" \
    --project=PROJECT_ID

上例會在 my-project 中建立以下延後設定:

{
  "name": "projects/my-project/snoozes/778899",
  "criteria": {
    "policies": [
      "projects/my-project/alertPolicies/12345"
    ]
  },
  "interval": {
    "startTime": "2025-03-01T03:00:00.0-0500",
    "endTime": "2025-03-07T23:59:59.5-0500"
  },
  "displayName": "Maintenance Week"
}

如果成功,這項指令的回應會類似下列內容:

Created snooze [projects/my-project/snoozes/778899]

警告政策的名稱不會顯示在 Google Cloud 控制台中。如要判斷警告政策的名稱,請執行下列任一操作:

  • 請執行 gcloud monitoring policies list 指令。這個指令的回應資料包含警告政策的名稱。
  • 查看警告政策的 JSON 表示法。您可以在「政策詳細資料」頁面使用選項,將 JSON 表示法下載至本機系統。

REST

您可以使用 Cloud Monitoring API 建立暫緩通知,並在條件中列出最多 16 項警告政策。如果延後功能適用於某項警告政策,您也可以加入標籤篩選器。

如要建立延後,請向 Snooze 端點發出 POST 要求,叫用 snoozes.create 方法。您必須提供 snooze 物件:

curl -d @my-snooze.json -H "Authorization: Bearer $ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-X POST https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/snoozes

在上述運算式中,PROJECT_ID 是儲存專案 ID 的環境變數。如要設定 App Hub,請選取 App Hub 主專案或管理專案。

這個方法會傳回 snooze 物件。傳回的物件與 my-snooze.json 的內容之間,只有 "name" 欄位不同,該欄位包含 Monitoring 產生的暫緩 ID:

{
  "name": "projects/my-project/snoozes/778899",
  "criteria": {
    "policies": [
      "projects/my-project/alertPolicies/001122"
    ]
  },
  "interval": {
    "startTime": "2022-11-12T19:00:20Z",
    "endTime": "2022-11-12T19:05:20Z"
  },
  "displayName": "Snooze2"
}

建立週期性延後設定

如要建立在週期性間隔發生的暫緩通知,可以編寫指令碼,為警告政策建立暫緩通知。接著,使用 cron 或 Cloud Scheduler 等工作排程器,按照所需排程執行指令碼。

列出延後設定

建立暫緩處理項目後,系統會將該項目新增至專案的暫緩處理記錄。這份記錄會顯示已過期、有效和即將到來的延後。您無法從這筆記錄中移除項目,也就是說,您無法刪除延後。不過,您可以在這個檢視畫面中顯示暫緩通知的詳細資料,並執行編輯或複製等動作。

控制台

如要查看暫緩通知清單,請按照下列步驟操作:

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

    前往「Alerting」(警告)

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

  2. 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。如要設定 App Hub,請選取 App Hub 主專案或管理專案。
  3. 按一下「暫緩」窗格中的「查看所有暫緩」。

    「暫緩」頁面會顯示暫緩清單和時間軸,以圖形方式顯示過去、即將和目前暫緩的項目。

    • 如要編輯、複製、取消或結束延後,請使用延後的 「More options」(更多選項) 選單。可用的選項取決於暫緩狀態。
    • 如要列出所有延後項目,請啟用「顯示過往的延後項目」。根據預設,系統只會列出有效和即將到來的延後。
    • 如要變更「時間軸」表格的顯示日期範圍,請使用「日期範圍」選單。根據預設,表格會顯示未來一小時的資料,但您可以修改這個欄位,指定過去或未來的時間範圍。已過期的延後通知會保留 13 個月。
    • 如要查看特定延後通知的詳細資料,請按一下「查看詳細資料」。
    • 如要查看有效暫停的摘要,請將指標放在「時間軸」表格中「有效」列的陰影區域。工具提示會顯示摘要資訊。
    • 如要查看有效延後通知的圖形表示法,請展開「Timeline」表格的「Active」列。

gcloud

如要列出目前專案中的暫緩通知,請執行 gcloud monitoring snoozes list 指令:

gcloud monitoring snoozes list --project=PROJECT_ID OPTIONAL_FLAGS

執行上一個指令前,請先替換下列項目:

  • PROJECT_ID:專案 ID。如果是 App Hub 設定,請選取 App Hub 主專案或管理專案。
  • OPTIONAL_FLAGS:如要瞭解選用旗標,請參閱 gcloud monitoring snoozes list 參考頁面。

這個指令的回應是專案中延後通知的名稱清單,格式為 YAML。舉例來說,如果對 ID 為 my-project 的Google Cloud 專案執行這項指令,回應會是單一項目:

criteria:
  policies:
  - projects/my-project/alertPolicies/12345
  - projects/my-project/alertPolicies/23451
displayName: Maintenance Week
interval:
  endTime: '2023-03-08T04:59:59Z'
  startTime: '2023-03-01T08:00:00Z'
name: projects/my-project/snoozes/778899

如要列出特定暫緩通知的詳細資料,請執行 gcloud monitoring snoozes describe 指令:

gcloud monitoring snoozes describe NAME --project=PROJECT_ID

舉例來說,如要顯示名稱為 projects/my-project/snoozes/778899 的暫緩通知詳細資料,請執行下列指令:

gcloud monitoring snoozes describe projects/my-project/snoozes/778899 --project=PROJECT_ID

如果您為 describe 指令提供無效的 NAME,回應會包含 500 錯誤代碼和下列訊息:

Internal error encountered. Please retry after a few seconds. If internal errors persist, contact support at https://cloud.google.com/support/docs.

REST

如要列出屬於 Google Cloud 專案的所有延後通知,請叫用 snoozes.list 方法:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/snoozes

在上一個運算式中,PROJECT_ID 是儲存專案 ID 的環境變數。如要進行 App Hub 設定,請選取 App Hub 主專案或管理專案。

這個方法會傳回 snooze 物件清單。舉例來說,如果專案有一個延後通知,snoozes.list 指令的回應會類似下列內容:

{
  "name": "projects/my-project/snoozes/778899",
  "criteria": {
    "policies": [
      "projects/my-project/alertPolicies/12345"
    ]
  },
  "interval": {
    "startTime": "2025-03-01T03:00:00.0-0500",
    "endTime": "2025-03-07T23:59:59.5-0500"
  },
  "displayName": "Snooze2"
}

如要取得特定暫緩通知的相關資訊,請叫用 snoozes.get 方法,並指定專案 ID 和暫緩通知 ID。在先前的回應中,延後 ID 為 2986663705844383744:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/snoozes/${SNOOZE_ID}

這個方法會傳回單一 snooze 物件:

{
  "name": "projects/my-project/snoozes/778899",
  "criteria": {
    "policies": [
      "projects/my-project/alertPolicies/12345"
    ]
  },
  "interval": {
    "startTime": "2025-03-01T03:00:00.0-0500",
    "endTime": "2025-03-07T23:59:59.5-0500"
  },
  "displayName": "Snooze2"
}

編輯延後項目

你可以編輯即將暫停通知的名稱和時間範圍,也可以編輯目前暫停通知的名稱和結束時間。舉例來說,如果維護期間重新排定,您可能需要編輯延後時間。

你無法編輯過去的延後設定、任何延後設定的條件,或是附加至延後設定的標籤篩選器。

如要將過去的延後通知排定在未來時間範圍,請複製延後通知,並在選取「Create」(建立) 之前,對副本套用變更。

控制台

如要編輯暫緩通知,請按照下列步驟操作:

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

    前往「Alerting」(警告)

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

  2. 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。如要進行 App Hub 設定,請選取 App Hub 主專案或管理專案。
  3. 在「延後」窗格中,按一下「查看所有延後項目」。
  4. 在暫緩清單中找出要編輯的暫緩通知,然後在「更多選項」選單 中選取「編輯暫緩通知」。
  5. 完成變更後,按一下「儲存」。

gcloud

如要編輯暫緩通知,請執行 gcloud monitoring snoozes update 指令。你可以更新顯示名稱、開始時間和結束時間:

gcloud monitoring snoozes update NAME --project=PROJECT_ID OPTIONAL_FLAGS

執行上一個指令前,請先替換下列項目:

  • NAME:延後設定的名稱。
  • PROJECT_ID:專案 ID。如果是 App Hub 設定,請選取 App Hub 主專案或管理專案。
  • OPTIONAL_FLAGS:如要瞭解選用旗標,請參閱 gcloud monitoring snoozes update 參考頁面。

舉例來說,如要變更名稱為 projects/my-project/snoozes/778899 的暫緩通知顯示名稱,請執行下列指令:

gcloud monitoring snoozes update projects/my-project/snoozes/778899 --display-name="Maintenance Week" --project=PROJECT_ID

REST

如要修改現有的暫緩通知,請向 Snooze 端點發出 PATCH 要求,叫用 snoozes.patch 方法。您必須提供修訂後的 snooze 物件,並加入查詢參數,指出修改了哪些欄位。使用 curl 時,查詢參數必須經過網址編碼。

你可以修改即將到來的延後通知名稱和時間長度。對於進行中的暫緩通知,你可以修改名稱和結束時間。你無法修改過去的延後記錄。

如要更新延後通知的 displayName,請建立 JSON 檔案 my-updated-snooze.json,說明延後通知物件並更新顯示名稱。接著,執行下列指令:

curl -d @my-updated-snooze.json -H "Authorization: Bearer $ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-X PATCH https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/snoozes/${SNOOZE_ID}?updateMask=displayName

在上述運算式中:

  • PROJECT_ID 是儲存專案 ID 的環境變數。如要進行 App Hub 設定,請選取 App Hub 主專案或管理專案。

  • SNOOZE_ID 是儲存延後 ID 的環境變數。

這個方法會傳回 snooze 物件,與 my-updated-snooze.json 檔案的內容相同:

{
  "name": "projects/my-project/snoozes/778899",
  "criteria": {
    "policies": [
      "projects/my-project/alertPolicies/12345"
    ]
  },
  "interval": {
    "startTime": "2025-03-01T03:00:00.0-0500",
    "endTime": "2025-03-07T23:59:59.5-0500"
  },
  "displayName": "Snooze2"
}

結束或取消貪睡模式

如要接收符合有效延後通知條件的資源通知,請結束延後通知。舉例來說,如果預定維護作業比預期更快完成,您可能就會想結束延後。

如果不想再延後即將到來的鬧鐘,請取消延後。 取消作業會將時間長度設為零,並將延後狀態轉換為「Past」。

控制台

如要結束進行中的延後通知,或取消即將開始的延後通知,請按照下列步驟操作:

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

    前往「Alerting」(警告)

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

  2. 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。如要進行 App Hub 設定,請選取 App Hub 主專案或管理專案。
  3. 在「延後」窗格中,按一下「查看所有延後項目」。
  4. 在暫緩清單中找出要結束或取消的暫緩,然後執行下列其中一項操作:

    • 如要結束使用中的暫緩通知,請在「更多選項」選單中選取「立即結束」。
    • 如要取消即將到來的延後通知,請在 「More options」(更多選項) 選單中選取「Cancel snooze」(取消延後)。

gcloud

如要結束進行中的延後作業,或取消即將執行的延後作業,請執行 gcloud monitoring snoozes cancel 指令:

gcloud monitoring snoozes cancel NAME --project=PROJECT_ID

執行上一個指令前,請先替換下列項目:

  • NAME:延後設定的名稱。
  • PROJECT_ID:專案 ID。如要進行 App Hub 設定,請選取 App Hub 主專案或管理專案。

舉例來說,如要取消名稱為 projects/my-project/snoozes/778899 的延後通知,請執行下列指令:

gcloud monitoring snoozes cancel projects/my-project/snoozes/778899 --project=PROJECT_ID

REST

如要結束使用中的延後設定,請編輯延後設定,並將結束時間設為目前時間。詳情請參閱「編輯延後設定」。

如要取消即將開始的延後設定,請編輯延後設定,並將結束時間設為延後設定的開始時間。開始時間必須設在未來。 詳情請參閱「編輯暫緩通知」。

複製延後設定

如要將現有的暫緩通知做為其他暫緩通知的範本,請複製該通知。複製延後設定時,延後設定編輯器會開啟,除了開始時間以外,所有欄位都會設為原始延後設定中的值。點選「建立」前,你可以修改所有欄位。

如要使用控制台複製延後設定,請按照下列步驟操作:

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

    前往「Alerting」(警告)

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

  2. 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。如要進行 App Hub 設定,請選取 App Hub 主專案或管理專案。
  3. 在「延後」窗格中,按一下「查看所有延後項目」。
  4. 在延後清單中,找出要編輯的延後,然後在 「More options」(更多選項) 選單中選取「Copy snooze」(複製延後)。
  5. 修改副本,然後按一下「建立」。

後續步驟