使用標籤為快訊加上註解

本文說明如何為快訊加上使用者定義的標籤,藉此整理及設定快訊優先順序。這些標籤是在快訊政策中設定,並列於快訊政策和快訊中。視設定而定,標籤也會顯示在特定通知中。

關於標籤

標籤是鍵/值組合,可用於將資訊附加至時間序列、警告政策、警告或通知。舉例來說,時間序列的標籤可能會指出收集資料的特定虛擬機器 (VM) 執行個體。標籤可以是使用者定義或預先定義。

使用者定義的標籤

使用者定義標籤包含您指定的資訊。 這些標籤可以有靜態或動態值:

標籤鍵開頭必須為小寫字母。標籤鍵和標籤值只能包含小寫英文字母、數字、底線和破折號。

預先定義的標籤

資源描述元包含預先定義的標籤,寫入時間序列資料時必須填入這些標籤。這些標籤會顯示所收集指標的相關資訊,或是指標寫入的資源。舉例來說,時間序列的標籤可能會識別虛擬機器 (VM)、可用區、 Google Cloud 專案和裝置類型。當 Monitoring 根據該時間序列建立快訊時,快訊會沿用這些標籤。

App Hub 標籤

App Hub 會將標籤附加至應用程式及其服務和工作負載產生的記錄、指標和追蹤資料。這些標籤可讓 Google Cloud 基礎架構建立應用程式、服務和工作負載資訊主頁,顯示指標和記錄資料。詳情請參閱下列文件:

如何查看標籤

您可以在警告詳細資料頁面、警告政策詳細資料頁面,以及部分通知中,查看警告政策或警告的標籤。

  • 快訊政策:使用者定義的靜態標籤會列在「使用者標籤」部分。動態使用者定義標籤和預先定義的標籤不會顯示。
  • 快訊:靜態使用者定義標籤會列在「政策標籤」部分,動態使用者定義標籤則會列在「指標標籤」部分。預先定義的標籤會列在「受監控資源標籤」和「指標標籤」部分。
  • 通知:預先定義的標籤和使用者定義的標籤會列在下列通知類型中:

    • 電子郵件
    • 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%。輸出時間序列的標籤與「良好」時間序列相同,但會加上值為「嚴重」的嚴重程度標籤。
「WARNING」 是 CPU 使用率至少 80%,但低於 90%。輸出時間序列的標籤與「良好」時間序列相同,但多了一個值為「警告」的嚴重程度標籤。
"INFO" 是 CPU 使用率至少為 70%,但低於 80%。輸出時間序列的標籤與「良好」時間序列相同,但會加上值為「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%。以下序列說明如何開啟及關閉快訊:

  1. 由於 CPU 使用率測量值低於 70%,政策處理常式會產生「良好」時間序列,且不會開啟任何警示。

  2. 接著,假設 CPU 使用率升至 93%。政策處理常式會停止產生「良好」時間序列資料,並開始產生「嚴重」時間序列的資料。

    快訊管理員會看到符合條件的新「重大」時間序列,然後開啟快訊。通知包含嚴重程度標籤,值為 CRITICAL。

  3. 假設 CPU 使用率降至 75%。政策處理常式會停止產生「重大」時間序列,並開始產生「資訊」時間序列。

    快訊管理員會看到符合條件的新「INFO」時間序列,然後開啟快訊。通知會包含嚴重程度標籤,值為 INFO。

    快訊管理員發現「CRITICAL」時間序列沒有任何資料傳入,且該時間序列的快訊處於開啟狀態。由於政策設定為在資料停止傳送時關閉快訊,快訊管理員會關閉與「CRITICAL」時間序列相關聯的快訊。因此,只有嚴重性標籤值為 INFO 的快訊會保持開啟狀態。

  4. 最後,假設 CPU 使用率降至 45%。這個值低於所有門檻,因此政策處理常式會停止產生「INFO」時間序列,並開始產生「GOOD」時間序列。

    快訊管理員發現「INFO」時間序列沒有任何資料傳入,且該時間序列的快訊處於開啟狀態。由於政策使用建議設定,因此系統會關閉快訊。

如果 evaluationMissingData 欄位未使用建議值,資料停止傳送時,系統不會立即關閉未解決的快訊。因此,您可能會看到同一個輸入時間序列有多個未解決的警報。詳情請參閱「部分指標資料」。

後續步驟