在 Cloud Monitoring 中,您可以使用使用者定義的警告政策標籤,整理警告並設定優先順序。設定這些標籤後,Monitoring 會在警告政策和警告中顯示這些標籤,並可將其納入通知。
關於標籤
標籤是鍵/值組合,用於將資訊附加至時間序列、警告政策、警告或通知。例如,時間序列上的標籤可能會識別收集資料的特定虛擬機器 (VM) 執行個體。標籤分為使用者定義和預先定義兩種。
使用者定義的標籤
使用者定義的標籤包含您指定的資訊。 這些標籤可以有靜態或動態值:
靜態使用者定義標籤的值無法變更。使用 Google Cloud 控制台或 Cloud Monitoring API 設定警告政策時,可以建立靜態使用者定義標籤。如需詳細資訊,請參閱下列文件:
動態使用者定義標籤的值會根據時間序列資料的值而變動。使用 PromQL 設定警告政策的條件時,可以建立動態使用者定義標籤。如需範例,請參閱「範例:新增具有動態價值的使用者定義標籤」。
標籤鍵開頭必須為小寫字母。標籤鍵和標籤值只能包含小寫字母、數字、底線和破折號。
預先定義的標籤
資源描述元包含預先定義的標籤,寫入時間序列資料時,必須填入這些標籤。這些標籤會顯示所收集指標的相關資訊,或是指標寫入的資源。舉例來說,時間序列上的標籤可能會識別虛擬機器 (VM)、可用區、 Google Cloud 專案和裝置類型。當 Monitoring 根據該時間序列建立快訊時,快訊會沿用這些標籤。
App Hub 標籤
App Hub 會為應用程式及其服務和工作負載產生的記錄、指標和追蹤資料附加標籤。這些標籤可讓 Google Cloud 基礎架構建立應用程式、服務和工作負載資訊主頁,顯示指標和記錄檔資料。詳情請參閱下列任一文件:
- Google Cloud 控制台:將警告政策與 App Hub 應用程式建立關聯。
- Cloud Monitoring API:將警告政策與 App Hub 應用程式建立關聯。
如何查看標籤
您可以在警告詳細資料頁面、警告政策詳細資料頁面和部分通知中,查看警告政策或警告的標籤。
- 警告政策:靜態使用者定義標籤會列在「User Labels」(使用者標籤) 專區。動態使用者定義標籤和預先定義的標籤不會顯示。
- 警告:靜態使用者定義標籤會列在「Policy Labels」(政策標籤) 專區,動態使用者定義標籤則會列在「Metric Labels」(指標標籤) 專區。預先定義的標籤會列在「受監控資源標籤」和「指標標籤」部分。
通知:預先定義的標籤和使用者定義的標籤會列在下列通知類型中:
- 電子郵件
- Google Chat
- PagerDuty
- Pub/Sub
- Webhook
範例:新增含有動態價值的使用者定義標籤
您可以使用 PromQL 設定標籤,讓標籤的值根據時間序列資料動態變更。舉例來說,您希望警告具有 criticality 標籤,其值會根據受監控的 CPU 使用率指標值而變更:
label_replace(
avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.9,
"criticality", "CRITICAL", "", ""
)
or ignoring (criticality)
label_replace(
avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.8,
"criticality", "WARNING", "", ""
)
or ignoring (criticality)
label_replace(
avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.7,
"criticality", "INFO", "", ""
)
or ignoring (criticality)
label_replace(
avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]),
"criticality", "GOOD", "", ""
)
下圖說明使用 PromQL 查詢的警告政策如何處理監控的時間序列資料:
政策處理常式會處理 CPU 使用率資料,並輸出時間序列,指出符合條件的時間。在上述範例中,當 CPU 使用率至少為 70% 時,即符合條件。針對每個輸入時間序列,政策處理常式可以產生下列四種時間序列之一:
| 輸出時間序列名稱 | 符合條件 | 說明 |
|---|---|---|
| 「GOOD」 | 否 | 這個時間序列的標籤與輸入時間序列相同。沒有嚴重性標籤。 |
| "CRITICAL" | 是 | CPU 使用率至少為 90%。輸出時間序列的標籤與「GOOD」時間序列相同,外加一個值為「CRITICAL」的嚴重性標籤。 |
| 「WARNING」 | 是 | CPU 使用率至少 80%,但低於 90%。輸出時間序列的標籤與「GOOD」時間序列相同,外加值為「WARNING」的嚴重性標籤。 |
| "INFO" | 是 | CPU 使用率至少 70%,但低於 80%。輸出時間序列的標籤與「GOOD」時間序列相同,外加值為「INFO」的嚴重性標籤。 |
政策處理常式產生的時間序列資料會輸入快訊管理工具,由該工具決定何時建立及關閉快訊。如要判斷何時關閉快訊,快訊管理工具會使用 duration、evaluationMissingData 和 autoClose 欄位的值。
最佳做法
如要驗證建立標籤時,一次最多開啟一個快訊 (標籤值為動態設定),請按照下列步驟操作:
在
MetricThreshold物件中,覆寫下列欄位的預設值:duration欄位:設為非零值。evaluationMissingData欄位:設定為在資料停止傳入時關閉警告。使用 Cloud Monitoring API 時,請將這個欄位設為EVALUATION_MISSING_DATA_INACTIVE。使用 Google Cloud 控制台時,請將欄位設為「缺少資料點會視為未違反政策條件的值」。
在
AlertStrategy物件中,將autoClose欄位設為最小值 30 分鐘。使用 Cloud Monitoring API 時,請將這個欄位設為30m。
詳情請參閱「部分指標資料」。
快訊流程
假設建立警告政策時,CPU 使用率測量值低於 70%。以下序列說明如何開啟及關閉快訊:
由於 CPU 使用率測量值低於 70%,政策處理常式會產生「良好」時間序列,且不會開啟任何快訊。
接著,假設 CPU 使用率升至 93%。政策處理常式會停止產生「GOOD」時間序列資料,並開始產生「CRITICAL」時間序列的資料。
快訊管理員會看到符合條件的新「CRITICAL」時間序列,然後開啟快訊。通知包含嚴重程度標籤,值為
CRITICAL。假設 CPU 使用率降至 75%,政策處理常式會停止產生「CRITICAL」時間序列,並開始產生「INFO」時間序列。
警告管理員會看到符合條件的新「INFO」時間序列,然後開啟警告。通知包含嚴重程度標籤,值為
INFO。快訊管理員發現「CRITICAL」時間序列沒有資料,且該時間序列有快訊開啟。由於政策設為在資料停止傳入時關閉快訊,快訊管理員會關閉與「CRITICAL」時間序列相關聯的快訊。因此,只有嚴重性標籤值為
INFO的警告會保持開啟狀態。最後,假設 CPU 使用率降至 45%。這個值低於所有門檻,因此政策處理常式會停止產生「INFO」時間序列,並開始產生「GOOD」時間序列。
快訊管理員發現「INFO」時間序列沒有資料,且該時間序列有快訊開啟。由於政策採用建議設定,因此系統會關閉快訊。
如果您未在 evaluationMissingData 欄位使用建議值,則當資料停止傳入時,未解決的警告不會立即關閉。因此,您可能會看到同一輸入時間序列有多個未解決的警告。詳情請參閱「部分指標資料」。