本文件說明如何為事件加上使用者定義的標籤,以便進行分類及優先處理。這些標籤會在警告政策中設定,並列於警告政策和事件中。視設定而定,系統也會在特定通知中列出標籤。
關於標籤
標籤是鍵/值組合,用於將資訊附加至時序、快訊政策、事件或通知。舉例來說,時間序列上的標籤可能會標示資料收集來源的特定虛擬機器 (VM) 執行個體。標籤是使用者定義或預先定義。
使用者定義的標籤
使用者定義的標籤包含您指定的資訊。這些標籤可以是靜態或動態值:
靜態使用者定義標籤的值無法變更。您可以使用 Google Cloud 控制台或 Cloud Monitoring API 設定快訊政策時,建立靜態使用者定義標籤。如需詳細資訊,請參閱下列文件:
動態使用者定義標籤的值可根據時序資料的值變更。您可以使用 MQL 設定快訊政策的條件,建立動態使用者定義標籤。如需範例,請參閱「範例:新增含有動態值的使用者定義標籤」。
標籤鍵開頭必須為小寫字母。標籤鍵和標籤值只能使用小寫英文字母、數字、底線和破折號。
預先定義的標籤
資源描述元中包含預先定義的標籤,這些標籤必須在寫入時序資料時填入。這些標籤會顯示收集的指標或指標所寫入的資源相關資訊。舉例來說,時序資料上的標籤可能會標示虛擬機器 (VM)、區域、 Google Cloud 專案和裝置類型。當 Monitoring 根據該時序資料建立事件時,事件會繼承這些標籤。
App Hub 標籤
App Hub 會為應用程式及其服務和工作負載產生的記錄、指標和追蹤資料附加標籤。這些標籤可讓 Google Cloud 基礎架構建立應用程式、服務和工作負載資訊主頁,顯示指標和記錄資料。如需詳細資訊,請參閱下列文件:
- Google Cloud 管理中心:將快訊政策與 App Hub 應用程式建立關聯。
- Cloud Monitoring API:將快訊政策與 App Hub 應用程式建立關聯。
如何查看標籤
您可以在事件詳細資料頁面、快訊政策詳細資料頁面和部分通知中,查看快訊政策或事件的標籤。
- 警示政策:靜態使用者定義標籤會列在「使用者標籤」部分。動態使用者定義的標籤和預先定義的標籤不會顯示。
- 事件:靜態使用者定義標籤會列在「政策標籤」部分,動態使用者定義標籤則會列在「指標標籤」部分。預先定義的標籤會列在「受控資源標籤」和「指標標籤」部分。
通知:預先定義的標籤和使用者定義的標籤會列在下列通知類型中:
- 電子郵件
- Google Chat
- PagerDuty
- Pub/Sub
- Webhook
範例:新增含有動態值的使用者定義標籤
您可以使用 MQL 設定標籤,讓標籤的值根據時間序列資料動態變更。舉例來說,假設您希望事件包含 criticality
標籤,且標籤的值會根據監控的 CPU 使用率指標值而變更:
fetch gce_instance
| metric 'compute.googleapis.com/instance/cpu/utilization'
| group_by sliding(5m), [value_utilization_mean: mean(value.utilization)]
| map
add[
criticality:
if(val() >= 90 '%', 'CRITICAL',
if(val() >= 80 '%', 'WARNING',
if(val() >= 70 '%', 'INFO', 'GOOD')))
]
| condition val() >= 70 '%'
下圖說明使用 MQL 查詢的警示政策如何處理監控的時間序列資料:
政策處理器會處理 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%,政策處理常規會產生「GOOD」時序,且不會開啟事件。
接下來,假設 CPU 使用率上升至 93%。政策處理常式會停止產生「良好」時間序列資料,並開始產生「嚴重」時間序列的資料。
事件管理員會看到符合條件的全新「CRITICAL」時間序列,然後開啟事件。通知包含嚴重性標籤,值為
CRITICAL
。假設 CPU 使用率降至 75%。政策處理程序會停止產生「CRITICAL」時間序列,並開始產生「INFO」時間序列。
事件管理員會看到符合條件的全新「INFO」時間序列,然後開啟事件。通知包含嚴重性標籤,其值為
INFO
。事件管理員發現「CRITICAL」時序資料沒有傳入任何資料,且該時序資料有事件發生。由於政策已設定為在資料停止傳送時關閉事件,事件管理員會關閉與「CRITICAL」時序相關聯的事件。因此,只有嚴重性標籤值為
INFO
的事件會保持開啟狀態。最後,假設 CPU 使用率降至 45%。這個值低於所有門檻,因此政策處理常式會停止產生「INFO」時間序列,並開始產生「GOOD」時間序列。
事件管理員發現「INFO」時間序列沒有任何資料傳入,且該時間序列已開啟事件。由於政策採用建議的設定,因此事件已關閉。
如果您未使用 evaluationMissingData
欄位的建議值,當資料停止傳送時,系統不會立即關閉未解決的問題。因此,您可能會看到同一個輸入時間序列的多個未解決事件。詳情請參閱「部分指標資料」。