本文件說明如何使用 Cloud Monitoring API,以程式輔助方式建立、編輯、刪除、列出及取得指標型警示政策。這些範例說明如何使用 Google Cloud CLI 和用戶端程式庫。這項內容不適用於以記錄檔為準的快訊政策。如要瞭解以記錄為基礎的快訊政策,請參閱「監控記錄」。
您也可以使用 Google Cloud 控制台執行這些工作,如需更多資訊,請參閱下列文件:
這項功能僅支援 Google Cloud 專案。如要設定 App Hub,請選取 App Hub 主機專案或啟用應用程式的資料夾管理專案。
關於快訊政策
快訊政策由 AlertPolicy
物件呈現,說明一組用來指出您系統中可能存在不良健康狀態的條件。快訊政策會參照通知管道,進而讓您指定您想如何收到已觸發快訊政策的通知。
每項快訊政策都屬於指標範圍的限定範圍專案。每個專案最多可包含 500 項政策。針對 API 呼叫,您必須提供「專案 ID」;請使用指標範圍的設定範圍專案 ID 做為值。在這些範例中,指標範圍的設定專案 ID 為 a-gcp-project
。
AlertPolicy
資源支援五種作業:
- 建立新政策
- 刪除現有政策
- 擷取特定政策
- 擷取所有政策
- 修改現有政策
快訊政策可使用 JSON 或 YAML 表示,讓您在檔案中記錄政策,並使用檔案備份及還原政策。您可以使用 Google Cloud CLI 從這兩種格式的檔案建立政策。您可以使用 REST API 從 JSON 檔案建立政策。如要瞭解 JSON 格式的快訊政策,請參閱範例政策。
以下範例會使用 gcloud
介面和 API 說明這些基本用途。這些 API 範例是從範例程式中擷錄而來,該程式會使用 API 實作警示政策的備份和還原系統。如需完整的範例,請參閱「範例:備份和還原」。
事前準備
在針對 API 編寫程式碼之前,您應該先:
- 熟悉適用於快訊政策的一般概念與術語;詳情請參閱快訊總覽。
- 確保已啟用 Cloud Monitoring API 以供使用;詳情請參閱啟用 API。
- 如果您打算使用用戶端程式庫,請針對您想使用的語言安裝程式庫;詳情請參閱「用戶端程式庫」。目前只為 C#、Go、Java、Node.js 與 Python 提供 API 快訊支援。
如果您打算使用 Google Cloud CLI,請安裝該工具。不過,如果您使用的是 Cloud Shell,則已安裝 Google Cloud CLI。
。這裡還提供了使用
gcloud
介面的範例。請注意,gcloud
範例都假設目前的專案已設為目標 (gcloud config set project [PROJECT_ID]
),因此叫用會省略明確的--project
標記。範例中目前專案的 ID 為a-gcp-project
。如要設定 App Hub,請選取 App Hub 主機專案或啟用應用程式的資料夾管理專案。
-
如要取得使用 Cloud Monitoring API 建立及修改快訊政策所需的權限,請要求管理員為您授予專案的 Monitoring AlertPolicy Editor (
roles/monitoring.alertPolicyEditor
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。如要進一步瞭解 Monitoring 的 IAM 角色,請參閱「使用身分與存取權管理功能控管存取權」。
請將應用程式設計為單執行緒 Cloud Monitoring API 呼叫,以便修改Google Cloud 專案中的快訊政策狀態。例如建立、更新或刪除快訊政策的單執行緒 API 呼叫。
建立警告政策
如要在專案中建立快訊政策,請使用 alertPolicies.create
方法。如要瞭解如何叫用此方法、其參數和回應資料,請參閱參考頁面 alertPolicies.create
。
您可以利用 JSON 或 YAML 檔案建立政策,Google Cloud CLI 會接受這些檔案做為引數。您可以透過程式讀取 JSON 檔案、將該檔案轉換為 AlertPolicy
物件,並透過 alertPolicies.create
方法來利用這些檔案建立政策。如果您有 Prometheus JSON 或 YAML 設定檔,且其中含有快訊規則,gcloud CLI 就能將其遷移至含有 PromQL 條件的 Cloud Monitoring 快訊政策。詳情請參閱「從 Prometheus 遷移警示規則和接收器」。
下列範例說明如何建立警告政策,但不會說明如何建立描述警告政策的 JSON 或 YAML 檔案。相反地,這些範例會假設 JSON 格式的檔案存在,並說明如何發出 API 呼叫。如需 JSON 檔案範例,請參閱「政策範例」。如要進一步瞭解指標監控比率,請參閱「指標比率」。
gcloud
如要在專案中建立快訊政策,請使用 gcloud alpha monitoring
policies create
指令。以下範例會利用 rising-cpu-usage.json
檔案,在 a-gcp-project
中建立快訊政策:
gcloud alpha monitoring policies create --policy-from-file="rising-cpu-usage.json"
若成功,這個指令會傳回新政策的名稱,例如:
Created alert policy [projects/a-gcp-project/alertPolicies/12669073143329903307].
rising-cpu-usage.json
檔案包含政策的 JSON,顯示名稱為「高 CPU 變化率」。如要瞭解這項政策的詳細資訊,請參閱變化率政策。
詳情請參閱 gcloud alpha monitoring policies create
參考資料。
C#
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
建立的 AlertPolicy
物件將擁有其他欄位。政策本身會包含 name
、creationRecord
和 mutationRecord
欄位。此外,政策中的每個條件也會附上 name
。這些欄位無法在外部修改,因此您在建立政策時不需要設定這些欄位。用於建立政策的所有 JSON 範例都不包含這些欄位,但如果在利用這些欄位建立政策之後擷取政策,這些欄位會顯示出來。
列出及取得警告政策
如要在專案中擷取政策的清單,請使用 alertPolicies.list
方法。請使用這個方法擷取政策,並對每個政策套用某些動作,例如備份。這個方法也支援 filter
和 orderBy
選項,可限制及排序結果;詳情請參閱「排序與篩選」。
如果您要尋找特定政策且知道政策名稱,則可以使用 alertPolicies.get
方法只擷取這個政策。政策名稱是 AlertPolicy
物件中 name
欄位的值,而不是 displayName
。政策名稱的格式為 projects/[PROJECT_ID]/alertPolicies/[POLICY_ID]
,例如:
projects/a-gcp-project/alertPolicies/12669073143329903307
gcloud
如要列出專案中的所有快訊政策,請使用 gcloud alpha monitoring
policies list
指令:
gcloud alpha monitoring policies list
如果成功,list
指令會提供指定專案中所有政策的清單 (清單格式為 YAML)。舉例來說,在其他列出的政策中,a-gcp-project
專案中顯示名稱為「High CPU rate of change」的政策會以下列方式列出:
---
combiner: OR
conditions:
- conditionThreshold:
aggregations:
- alignmentPeriod: 900s
perSeriesAligner: ALIGN_PERCENT_CHANGE
comparison: COMPARISON_GT
duration: 180s
filter: metric.type="compute.googleapis.com/instance/cpu/utilization" AND resource.type="gce_instance"
thresholdValue: 0.5
trigger:
count: 1
displayName: CPU usage is increasing at a high rate
name: projects/a-gcp-project/alertPolicies/12669073143329903307/conditions/12669073143329903008
creationRecord:
mutateTime: '2018-03-26T18:52:39.363601689Z'
mutatedBy: [USER@DOMAIN]
displayName: High CPU rate of change
enabled: true
mutationRecord:
mutateTime: '2018-03-26T18:52:39.363601689Z'
mutatedBy: [USER@DOMAIN]
name: projects/a-gcp-project/alertPolicies/12669073143329903307
---
如要列出單一快訊政策,請改用 gcloud alpha monitoring policies
describe
,並指定政策名稱。例如,這個指令只會傳回上方的清單:
gcloud alpha monitoring policies describe projects/a-gcp-project/alertPolicies/12669073143329903307
詳情請參閱 gcloud alpha monitoring policies list
和 describe
參考資料。describe
指令與 API 中的 alertPolicies.get
方法對應。
C#
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
刪除快訊政策
如要刪除專案中的政策,請使用 alertPolicies.delete
方法,並提供要刪除的快訊政策名稱。
gcloud
如要刪除快訊政策,請使用 gcloud alpha monitoring policies
delete
,並指定要刪除的政策名稱。舉例來說,下列指令會刪除顯示名稱為「High CPU rate of change」的政策:
gcloud alpha monitoring policies delete projects/a-gcp-project/alertPolicies/12669073143329903307
詳情請參閱 gcloud alpha monitoring policies delete
參考資料。
修改快訊政策
如要修改快訊政策,請使用 alertPolicies.patch
方法 (在 REST API 中)。其他 API 實作與 gcloud
介面將這個方法稱為 update
,而不是 patch
。
更新作業可以完全取代現有政策,也可以修改欄位子集。更新作業會採用新的 AlertPolicy
物件與選用的欄位遮罩。
如果指定欄位遮罩,則列在欄位遮罩中的任何欄位,都會更新為所提供政策中的值。如果提供的政策不包含欄位遮罩中提及的欄位,則會清除該欄位並將其設定為預設值。未列在遮罩中的任何欄位會保留之前的值。
如果未指定欄位遮罩,現有政策會由提供的政策取代,但名稱 (projects/[PROJECT_ID]/alertPolicies/[POLICY_ID]
) 會重複使用。新政策中任何條件,只要 name
值包含 CONDITION_ID
,就會保留這些名稱。若非如此,則會建立新條件與政策名稱。
使用 gcloud
指令列更新政策時,會使用指令列標記 (而不是欄位遮罩) 來指定要更新的欄位。詳情請參閱 gcloud alpha monitoring policies update
。
您可以使用標籤將警告政策與 App Hub 應用程式建立關聯。詳情請參閱「如何將快訊政策與 App Hub 應用程式建立關聯」。
啟用或停用快訊政策
如要啟用或停用政策,請變更 AlertPolicy
物件中布林 enabled
欄位的值。請注意,在您啟用政策之後,仍可透過停用時收集的資料觸發。
gcloud
如要停用快訊政策,請使用 gcloud alpha monitoring policies update
指令並提供 --no-enabled
標記。下列指令會停用專案 a-gcp-project
中的「高 CPU 變化率」警示政策:
gcloud alpha monitoring policies update projects/a-gcp-project/alertPolicies/12669073143329903307 --no-enabled
如要啟用政策,請使用相同的指令並提供 --enabled
標記。詳情請參閱 gcloud alpha monitoring policies update
參考資料。update
指令與 REST API 中的 alertPolicies.patch
方法對應。
C#
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
更新快訊政策中的通知管道
您也可以更新快訊政策參照的通知管道。快訊政策會以名稱參照通知管道。管道必須存在,才能用於快訊政策。
您可以使用 NotificationChannel
和 NotificationChannelDescriptors
資源,透過程式建立及管理通知管道。本節的範例均假設這些管道已經存在,並在程式範例中顯示這些 API 的使用情況。
如要進一步瞭解通知管道物件,請參閱「由 API 建立及管理通知管道」。
gcloud
如要修改警告政策中的通知管道,請使用 gcloud alpha monitoring policies update
指令。有多個與通知管道相關的標記,可讓您移除通知管道、取代通知管道,及新增通知管道。
例如,a-gcp-project 專案中顯示名稱為「High CPU rate of change」的政策,在建立時並沒有使用通知管道。
如要為這項政策新增通知管道,請使用 gcloud alpha monitoring
policies update
指令,並使用 --add-notification-channels
標記指定要新增的管道:
gcloud alpha monitoring policies update projects/a-gcp-project/alertPolicies/12669073143329903307 \
--add-notification-channels="projects/a-gcp-project/notificationChannels/1355376463305411567"
詳情請參閱 gcloud alpha monitoring policies update
參考資料。update
指令與 REST API 中的 alertPolicies.patch
方法對應。
您必須先建立通知管道,才能新增至此處。詳情請參閱「建立通知管道」。
C#
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
修改警告政策中的說明文件
政策可以包含與政策相關聯之事件和通知隨附的說明文件。使用這個欄位說明資訊,以協助回應者瞭解及處理快訊政策所指出的問題。說明文件包含在允許使用該說明文件的電子郵件通知與通知類型中;其他管道類型可能會省略說明文件。
gcloud
如要為政策新增文件,或取代現有文件,請使用gcloud alpha monitoring policies update
指令,並提供 --documentation-format="text/markdown"
旗標 (唯一支援的格式) 和 --documentation
旗標 (用於透過指令列輸入值) 或 --documentation-from-file
旗標 (用於從檔案讀取值)。
舉例來說,a-gcp-project 專案中顯示名稱為「High CPU rate of change」(高 CPU 變更頻率) 的政策建立時並沒有說明文件。
下列指令會將指定政策中的 documentation
欄位設定為 cpu-usage-doc.md
檔案的內容:
gcloud alpha monitoring policies update projects/a-gcp-project/alertPolicies/12669073143329903307 \
--documentation-format="text/markdown" \
--documentation-from-file="cpu-usage-doc.md"
詳情請參閱 gcloud alpha monitoring policies update
參考資料。update
指令與 REST API 中的 alertPolicies.patch
方法對應。
在資訊主頁中新增快訊政策
如要在自訂資訊主頁上顯示單一條件警告政策的摘要,請將 AlertChart
小工具新增至資訊主頁。您可以使用 dashboards.create
方法建立新的資訊主頁,也可以使用 dashboards.patch
方法建立現有的資訊主頁。
如果您指定多條件快訊政策,AlertChart
小工具就不會顯示資料。
如要進一步瞭解如何使用這些 API 方法,請參閱「透過 API 建立及管理資訊主頁」。
範例:備份與還原
顯示的所有 API 範例均提取自較大的應用程式,進而可將專案中的快訊政策備份到檔案中,並在可能的情況下,將政策還原至其他專案。如果用於備份與還原的專案不同,應用程式可在專案之間有效匯出及匯入政策。
本節會將適用於備份與還原的程式碼顯示在背景資訊中,而不是顯示為一組小型的獨立摘錄。
備份政策
備份作業非常簡單。每個專案中的快訊政策集與通知管道集都會以 JSON 格式收集並儲存至外部儲存空間。
C#
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
還原備份政策
還原程序比原始備份更複雜。您可以還原至最初備份的專案,也可以還原至其他專案,進而有效提供快訊政策的匯入內容。
如果您還原至相同專案,任何現有管道或政策都會更新 (若其仍然存在)。如果沒有,系統會重新建立。在還原政策和通知之前,還原程序會清除備份政策中的唯讀欄位,例如建立和異動記錄。
您可以利用儲存在某個專案中的政策,在另一個專案中建立全新或類似的政策。但是,您必須在儲存政策的副本中先進行下列變更:
- 從任何通知管道移除下列欄位:
name
verificationStatus
- 建立通知管道,然後在快訊政策中參照這些通知管道 (您需要新的管道 ID)。
- 從任何重新建立的快訊政策中移除下列欄位:
name
condition.name
creationRecord
mutationRecord
此外,如果要在新專案中重新建立政策,備份政策中任何條件的名稱也要與建立和異動記錄一併清除。
另外,在不同專案中重新建立通知管道時,會取得不同名稱,因此還原程序必須將所備份快訊政策中管道的名稱對應至其新名稱,並將舊名稱取代為新名稱。
除了通知管道的名稱之外,建立或更新管道時,無法設定 verificationStatus
欄的值,因此會使用哨兵值 unspecified
。在將管道還原至新專案之後,必須對其明確驗證。
C#
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要向 Monitoring 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
快訊和 Google Cloud CLI
在 Google Cloud CLI 中,管理快訊政策與通知管道的指令群組是 monitoring
,這是 Alpha 版。monitoring
群組可在 alpha
元件中使用。也就是說,這些指令都會以以下字串開頭:
gcloud alpha monitoring
如要檢查是否已安裝 alpha
元件,請執行下列指令:
gcloud components list
如果您尚未安裝 alpha
元件,請執行下列指令進行安裝:
gcloud components install alpha
如果您有 alpha
元件,請執行下列指令,檢查 monitoring
群組:
gcloud alpha monitoring --help
如果未包含 monitoring
群組,Google Cloud CLI 會提示您新增:
You do not currently have this command group installed.
[...]
Do you want to continue (Y/n)? y