在 Cloud Monitoring 中,您可以設定延後,防止警告政策在特定時間範圍內 (例如預定維護期間) 建立警告及傳送通知。您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Cloud Monitoring API 建立及管理延後通知。
如需概念總覽,請參閱「暫緩通知和快訊」。
這項功能僅支援 Google Cloud 專案。如要進行 App Hub 設定,請選取 App Hub 主專案或管理專案。
事前準備
在儲存警告政策的 Google Cloud 專案中,完成下列步驟:
請確認您具備必要權限:
-
如要取得使用 Google Cloud 控制台查看及編輯延後通知所需的權限,請要求管理員授予您專案的 Monitoring 編輯者 (
roles/monitoring.editor) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
-
如要取得使用 Cloud Monitoring API 查看及編輯延後通知所需的權限,請要求管理員授予您專案的 Monitoring 延後通知編輯者 (
roles/monitoring.snoozeEditor) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
如要進一步瞭解 Cloud Monitoring 角色,請參閱「使用 Identity and Access Management 控管存取權」。
-
如要使用本文中的 Cloud Monitoring API 範例,請執行下列操作:
建立環境變數
PROJECT_ID,用於保存Google Cloud 專案的 ID:PROJECT_ID=PROJECT_ID
向 Google Cloud CLI 驗證:
gcloud auth login
設定預設 Google Cloud 專案:
gcloud config set project ${PROJECT_ID}
建立授權權杖:
ACCESS_TOKEN=`gcloud auth print-access-token`
您必須定期更新存取權杖。如果原本可執行的指令突然回報您未經驗證,請重新發出這個指令。
建立延後設定
如要避免警告政策建立警告並傳送通知,請建立延後。如果將暫緩處理時間限制為一項快訊政策,暫緩處理時間可以包含以標籤為準的篩選器。如果新增標籤篩選器,則延後功能只會套用至符合篩選條件的快訊。建立延後通知後,您無法修改延後通知適用的標籤篩選器或政策清單。
控制台
Google Cloud 控制台提供兩種建立延後通知的方式:
如果從開啟快訊的「Alert details」(快訊詳細資料) 頁面開始,系統會預先設定您完成建立延後設定的對話方塊,列出警告政策。您也可以在對話方塊中選取標籤,這些標籤會附加至延後通知,做為標籤篩選器。
如果從「Alerting」(警告) 頁面開始,您可以建立暫緩處理,其條件最多可列出 16 項警告政策。不過,即使延後條件列出一個警告政策,您也無法將標籤篩選器附加至延後。
如要從開啟的警告建立延後,請按照下列步驟操作:
-
前往 Google Cloud 控制台的 notifications「Alerting」(警告) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。如要設定 App Hub,請選取 App Hub 主專案或管理專案。
- 在「Alerting」(警告) 頁面的「Alerts」(警告) 窗格中,找到警告並點選「Alert summary」(警告摘要)。
- 在「Alert details」(快訊詳細資料) 頁面中,按一下「Snooze」(延後),然後選取延後時間長度。
選用:如要根據標籤篩選暫緩處理的郵件,請前往「標籤」部分,然後選取一或多個標籤。以標籤為準的篩選器可包含資源和指標標籤。如果警告政策並非以 PromQL 為基礎,篩選器也可以包含中繼資料標籤。
通常,暫緩通知會套用至警告政策建立的所有快訊。 篩選器可讓您將延後功能套用至標籤與篩選器標籤相符的快訊。
按一下「延後」。延後功能現在會套用至建立警告的警告政策。
如要透過「Alerting」(警告) 頁面建立延後,請按照下列步驟操作:
-
前往 Google Cloud 控制台的 notifications「Alerting」(警告) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。如要設定 App Hub,請選取 App Hub 主專案或管理專案。
- 在「快訊」頁面,按一下「建立延後」。
- 輸入延後項目的描述性名稱。這個名稱會顯示在「Alerting」(快訊) 頁面。
- 選取「開始時間」。你可以輸入特定時間,也可以在建立貪睡設定時啟動貪睡功能。
- 輸入「時間長度」。這個欄位的值會決定延後時間長度。
完成「延後條件」部分。您可以使用「Alert policies」(警告政策) 選單,選取要套用延後功能的警告政策。
最多可將 16 項警告政策新增至延後。
延後設定一經建立即無法變更條件。
完成「Snooze criteria」(延後條件) 部分後,「Create snooze」(建立延後) 窗格會列出符合條件的過往警告。
點選「建立」。
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 等工作排程器,按照所需排程執行指令碼。
列出延後設定
建立暫緩處理項目後,系統會將該項目新增至專案的暫緩處理記錄。這份記錄會顯示已過期、有效和即將到來的延後。您無法從這筆記錄中移除項目,也就是說,您無法刪除延後。不過,您可以在這個檢視畫面中顯示暫緩通知的詳細資料,並執行編輯或複製等動作。
控制台
如要查看暫緩通知清單,請按照下列步驟操作:
-
前往 Google Cloud 控制台的 notifications「Alerting」(警告) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。如要設定 App Hub,請選取 App Hub 主專案或管理專案。
按一下「暫緩」窗格中的「查看所有暫緩」。
「暫緩」頁面會顯示暫緩清單和時間軸,以圖形方式顯示過去、即將和目前暫緩的項目。
- 如要編輯、複製、取消或結束延後,請使用延後的 more_vert「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」(建立) 之前,對副本套用變更。
控制台
如要編輯暫緩通知,請按照下列步驟操作:
-
前往 Google Cloud 控制台的 notifications「Alerting」(警告) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。如要進行 App Hub 設定,請選取 App Hub 主專案或管理專案。
- 在「延後」窗格中,按一下「查看所有延後項目」。
- 在暫緩清單中找出要編輯的暫緩通知,然後在「更多選項」選單 more_vert 中選取「編輯暫緩通知」。
- 完成變更後,按一下「儲存」。
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」。
控制台
如要結束進行中的延後通知,或取消即將開始的延後通知,請按照下列步驟操作:
-
前往 Google Cloud 控制台的 notifications「Alerting」(警告) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。如要進行 App Hub 設定,請選取 App Hub 主專案或管理專案。
- 在「延後」窗格中,按一下「查看所有延後項目」。
在暫緩清單中找出要結束或取消的暫緩,然後執行下列其中一項操作:
- 如要結束使用中的暫緩通知,請在「更多選項」more_vert選單中選取「立即結束」。
- 如要取消即將到來的延後通知,請在 more_vert「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
如要結束使用中的延後設定,請編輯延後設定,並將結束時間設為目前時間。詳情請參閱「編輯延後設定」。
如要取消即將開始的延後設定,請編輯延後設定,並將結束時間設為延後設定的開始時間。開始時間必須設在未來。 詳情請參閱「編輯暫緩通知」。
複製延後設定
如要將現有的暫緩通知做為其他暫緩通知的範本,請複製該通知。複製延後設定時,延後設定編輯器會開啟,除了開始時間以外,所有欄位都會設為原始延後設定中的值。點選「建立」前,你可以修改所有欄位。
如要使用控制台複製延後設定,請按照下列步驟操作:
-
前往 Google Cloud 控制台的 notifications「Alerting」(警告) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。如要進行 App Hub 設定,請選取 App Hub 主專案或管理專案。
- 在「延後」窗格中,按一下「查看所有延後項目」。
- 在延後清單中,找出要編輯的延後,然後在 more_vert「More options」(更多選項) 選單中選取「Copy snooze」(複製延後)。
- 修改副本,然後按一下「建立」。
後續步驟
如需警告總覽,請參閱「警告總覽」。
如要瞭解通知延遲時間,以及警告政策參數選項如何影響通知傳送時間,請參閱「以指標為基準的警告政策行為」。
如要瞭解快訊,請參閱下列文件: