以 SQL 為準的警告政策事件

事件是指符合警告政策條件時的記錄。一般而言,當符合警告政策的條件時,Cloud Monitoring 會開啟事件並傳送通知。不過,在下列情況下,系統不會建立事件:

  • 政策已暫緩或停用。
  • 快訊政策或事件數量超過現有的快訊限制

針對每個事件,Monitoring 會建立「事件詳細資料」頁面,方便您管理事件,並提供事件資訊,協助您排解失敗問題。舉例來說,「事件詳細資料」頁面會顯示 SQL 查詢結果摘要和相關事件的清單。

本文說明如何找出事件。本文也會說明如何使用「事件詳細資料」頁面,管理以 SQL 為基礎的快訊政策事件,這類政策會評估針對記錄項目群組資料執行的 SQL 查詢結果。

這項功能僅支援 Google Cloud 專案。 如果是 App Hub 設定,請選取 App Hub 主專案或管理專案。

事前準備

如要取得查看及管理事件所需的權限,請要求管理員在專案中授予您下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

如要進一步瞭解 Cloud Monitoring 角色,請參閱「使用 Identity and Access Management 控制存取權」。

查看事件

如要查看專案中的事件,請使用 Google Cloud 控制台、gcloud CLI (公開預先發布版) 或 Monitoring API (公開預先發布版)。

Google Cloud 控制台

如要列出 Google Cloud 專案中的事件,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的 「Alerting」(警告) 頁面

    前往「Alerting」(快訊)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果

  2. 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。如要進行 App Hub 設定,請選取 App Hub 主專案或管理專案。

    「警告」頁面會顯示警告政策、暫緩和事件的相關資訊:

    • 「摘要」窗格會列出未結事件的數量。
    • 「事件」表格會顯示最近的未結事件。如要在表格中列出最新事件 (包括已結案的事件),請按一下「顯示已結案的事件」
  3. 如要查看特定事件的詳細資料,請在清單中選取該事件。

    「Incident details」(事件詳細資料) 頁面隨即開啟。如要進一步瞭解「事件詳細資料」頁面,請參閱本文的「調查事件」一節。

尋找較舊的事件

「警告」頁面上的「事件」表格會顯示最近開啟的事件。如要查看較舊的事件,請執行下列其中一項操作:

  • 如要逐頁瀏覽「事件」表格中的項目,請按一下「較新」或「較舊」

  • 如要開啟可列出及篩選事件的頁面,請按一下「查看所有事件」。「事件」頁面隨即開啟。請在該頁面執行下列操作:

    • 顯示所有事件,包括已結案的事件。如要顯示所有事件,請按一下「顯示已結案的事件」
    • 篩選事件。如要瞭解如何新增篩選器,請參閱「篩選事件」一文。
    • 確認或關閉事件,或是暫緩快訊政策。 如要存取這些選項,請按一下事件列中的「更多選項」,然後從選單中選取所需選項。詳情請參閱「管理事件」。

篩選事件

如要限制表格顯示的事件,請新增篩選器。如果新增多個篩選器,表格只會顯示符合所有篩選器的事件。

如要篩選事件表格,請按照下列步驟操作:

  1. 在「事件」頁面上,按一下「篩選表格」,然後選取篩選器屬性。篩選條件屬性包括:

    • 事件狀態
    • 快訊政策名稱
    • 事件開啟或關閉的時間
  2. 從次要選單選取值,或在篩選條件列中輸入值。

    「事件」表格隨即會列出篩選條件。

gcloud

您可以使用 gcloud 取得事件和列出事件。

取得事件

使用下方的任何指令資料之前,請先替換以下項目:

  • ALERT_NAME:快訊的資源名稱。例如:projects/my-project/alerts/my-alert-id

執行 gcloud alpha monitoring alerts describe 指令:

Linux、macOS 或 Cloud Shell

gcloud alpha monitoring alerts describe ALERT_NAME

Windows (PowerShell)

gcloud alpha monitoring alerts describe ALERT_NAME

Windows (cmd.exe)

gcloud alpha monitoring alerts describe ALERT_NAME
這項指令會傳回包含快訊詳細資料的回應,例如快訊狀態、附加的標籤和來源快訊政策。 請注意,這項功能在預先發布期間,回應中的標籤可能會有所變更。回覆內容類似以下範例:
{
  "name": "projects/my-project/alerts/my-alert-id",
  "state": "OPEN",
  "open_time": "2025-06-11T09:53:46Z",
  "resource": {
    "type": "sql_alert"
  },
  "policy": {
    "name": "projects/my-project/alertPolicies/POLICY_1",
    "displayName": "test-policy"
  },
  "summaryText": "The row count SQL Condition for \"test-policy\" is above the threshold of 1."
}

列出事件

您可以使用 gcloud CLI 列出專案中的事件,並篩選結果。

使用下方的任何指令資料之前,請先替換以下項目:

  • PROJECT_ID:專案的 ID。

執行 gcloud alpha monitoring alerts list 指令:

Linux、macOS 或 Cloud Shell

gcloud alpha monitoring alerts list

Windows (PowerShell)

gcloud alpha monitoring alerts list

Windows (cmd.exe)

gcloud alpha monitoring alerts list
這項指令會傳回包含快訊詳細資料的回應,例如快訊狀態、附加的標籤和來源快訊政策。 請注意,這項功能在預先發布期間,回應中的標籤可能會有所變更。回覆內容類似以下範例:
{
  "alerts": [
    {
      "name": "projects/my-project/alerts/my-alert-id",
      "state": "OPEN",
      "open_time": "2025-06-11T09:53:46Z",
      "resource": {
        "type": "sql_alert"
      },
      "policy": {
        "name": "projects/my-project/alertPolicies/POLICY_1",
        "displayName": "test-policy"
      },
      "summaryText": "The row count SQL Condition for \"test-policy\" is above the threshold of 1."
    }
  ]
}
您也可以使用下列選用標記來篩選、排序或修改輸出內容:
  • --filter:提供篩選器運算式,依時間或標籤篩選快訊。舉例來說,您可以使用 --filter='close_time>="2025-09-10T00:00:00Z"' 依時間篩選,或使用 --filter='resource.labels.key="value"' 依標籤篩選。

  • --sort-by:以半形逗號分隔的欄位清單,做為輸出內容的排序依據。例如 --sort-by=open_time

  • --uri:指令會輸出資源 URI 清單,而非預設輸出內容。

  • --limit:將這個標記設為 2 以上,即可限制傳回的快訊數量。請勿將這個旗標與 --filter 旗標搭配使用。

Monitoring API

您可以使用 Monitoring API 取得事件及列出事件。

取得事件

如要透過 Monitoring API 取得單一事件的詳細資料,請使用 alerts.get 方法。

使用任何要求資料之前,請先替換以下項目:

  • PROJECT_ID:專案的 ID。
  • ALERT_ID:快訊 ID。

HTTP 方法和網址:

GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/alerts/ALERT_ID

請展開以下其中一個選項,以傳送要求:

這項指令會傳回包含快訊詳細資料的回應,例如快訊狀態、附加的標籤和來源快訊政策。請注意,這項功能在預先發布期間,回應中的標籤可能會有所變更。回覆內容類似以下範例:
{
  "name": "projects/my-project/alerts/my-alert-id",
  "state": "OPEN",
  "open_time": "2025-06-11T09:53:46Z",
  "resource": {
    "type": "sql_alert"
  },
  "policy": {
    "name": "projects/my-project/alertPolicies/POLICY_1",
    "displayName": "test-policy"
  },
  "summaryText": "The row count SQL Condition for \"test-policy\" is above the threshold of 1."
}

列出事件

如要列出專案中的事件,並使用 Monitoring API 篩選結果,請使用 alerts.list 方法。

使用任何要求資料之前,請先替換以下項目:

  • PROJECT_ID:專案的 ID。

HTTP 方法和網址:

GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/alerts

請展開以下其中一個選項,以傳送要求:

這項指令會傳回包含快訊詳細資料的回應,例如快訊狀態、附加的標籤和來源快訊政策。請注意,這項功能在預先發布期間,回應中的標籤可能會有所變更。回覆內容類似以下範例:
{
  "alerts": [
    {
      "name": "projects/my-project/alerts/my-alert-id",
      "state": "OPEN",
      "open_time": "2025-06-11T09:53:46Z",
      "resource": {
        "type": "sql_alert"
      },
      "policy": {
        "name": "projects/my-project/alertPolicies/POLICY_1",
        "displayName": "test-policy"
      },
      "summaryText": "The row count SQL Condition for \"test-policy\" is above the threshold of 1."
    }
  ]
}
Curl 使用者可以新增 --data-urlencode 旗標,然後加入篩選器運算式,依時間或標籤篩選快訊。請參閱以下範例:

列出過去一小時內開啟的快訊:

--data-urlencode "filter=(open_time>=\"`date -u -d "1 hour ago" +"%Y-%m-%dT%H:%M:%SZ"`\")"

列出並篩選過去一天內未解決的快訊:

--data-urlencode "filter=(open_time>=\"`date -u -d "1 DAY ago" +"%Y-%m-%dT%H:%M:%SZ"`\" AND state=open)"

列出並篩選兩個時間範圍內開啟的快訊:

--data-urlencode "filter=(open_time>=\"`date -u -d "2 DAY ago" +"%Y-%m-%dT%H:%M:%SZ"`\" AND open_time<=\"`date -u -d "1 DAY ago" +"%Y-%m-%dT%H:%M:%SZ"`\")"

依使用者標籤列出及篩選快訊。在本例中,請依名稱為 app 且值為 my-gke-app 的使用者標籤進行篩選:

--data-urlencode "filter=(policy.user_labels.app=\"my-gke-app\")"
Powershell 使用者可以參考下列範例,在要求網址中新增時間篩選器:
$baseUrl = "https://monitoring.googleapis.com/v3/projects/my-project/alerts"
$filterValue = (Get-Date).AddHours(-1).ToString("yyyy-MM-ddTHH:mm:ssZ")
$filter = 'open_time >= "' + $filterValue + '"'
$encodedFilter = [System.Uri]::EscapeDataString($filter)
$url = $baseUrl + "?filter=" + $encodedFilter

調查事件

「Incident details」(事件詳細資料) 頁面包含的資訊有助於找出事件原因。

瞭解查詢結果

「每日消耗的總運算單元時間」窗格會顯示過去 24 小時內,保留的 BigQuery 運算單元執行警報政策 SQL 查詢所花費的時間。

「SQL query results」(SQL 查詢結果) 窗格會顯示清單,列出每次記錄檔分析從警報政策的條件執行 SQL 查詢時,得到的查詢結果摘要。根據預設,系統會篩選清單,只顯示符合警告政策條件的查詢。

  • 如要查看特定時間的查詢和查詢結果表格 (Log Analytics 當時執行查詢),請按一下「Query run time」(查詢執行時間) 欄中的值。
  • 如要切換顯示符合快訊政策條件的查詢結果,以及 Log Analytics 從快訊政策執行的所有查詢,請按一下「只顯示符合快訊條件的查詢」

查看補充資訊

「說明文件」部分會顯示您建立快訊政策時提供的通知說明文件範本。這類資訊可能包括警報政策監控的內容說明,以及緩解措施的提示。詳情請參閱「使用使用者定義的註解標註通知」。

如果沒有為快訊政策設定說明文件,則「說明文件」窗格會顯示「未設定任何說明文件」。

為協助您找出應用程式的根本問題,您可以探索與其他快訊政策條件相關的事件。

「相關事件」部分會顯示符合警告政策條件時建立的其他事件清單。

管理事件

事件會處於下列其中一種狀態:

  •  開啟: 符合以 SQL 為基礎的快訊政策條件,且事件仍處於開啟狀態。如果再次符合相同條件,且事件已開啟,系統就不會開啟新事件。

  •  已確認: 事件處於開啟狀態,且已手動標示為已確認。 通常這個狀態表示事件正在調查中。

  •  已結案: 您已手動結案,或系統在自動結案期限到期後自動結案。

確認事件

建議您在開始調查事件原因時,將事件標示為已確認。

如要將事件標示為已確認,請按照下列步驟操作:

  1. 在「快訊」頁面的「事件」表格中,按一下「查看所有事件」
  2. 在「事件」頁面中,找到要確認的事件,然後執行下列其中一項操作:

    • 按一下「更多選項」,然後選取「確認」
    • 開啟事件的詳細資料頁面,然後按一下「確認事件」

暫緩執行快訊政策

如要避免 Monitoring 在特定時間範圍內建立事件及傳送通知,請延後相關的警告政策。 延後快訊政策時,與該政策相關的事件會保持開啟狀態,但不會再觸發通知。系統會根據快訊政策的自動關閉期限關閉事件。

如要為目前查看的事件建立暫緩處理,請按照下列步驟操作:

  1. 在「Incident details」(事件詳細資料) 頁面中,按一下「Snooze Policy」(暫緩政策)

  2. 選取貪睡時間長度。選取延後時間長度後,延後設定會立即生效。

您也可以在「事件」頁面中延後警告政策,方法是找出要延後的事件,按一下「更多選項」,然後選取「延後」。 發生中斷時,您可以暫緩快訊政策,以免在疑難排解過程中收到更多通知。

關閉事件

您可以讓 Monitoring 為您關閉事件,也可以自行關閉事件。

當快訊政策的自動關閉時間到期時,監控功能會自動關閉事件。預設的自動關閉期限為 7 天。自動關閉期限最短為 30 分鐘。

自動關閉期限是指事件關閉前,必須經過一段時間,且事件原因未重複發生。因此,如果事件開啟後再次發生原因,事件可能會在自動關閉時間過後仍處於開啟狀態。

如要關閉事件,請按照下列步驟操作:

  1. 在「快訊」頁面的「事件」表格中,按一下「查看所有事件」
  2. 在「事件」頁面中,找到要結案的事件,然後執行下列其中一項操作:

    • 按一下「查看更多」,然後選取「關閉事件」
    • 開啟該事件的「Incident details」(事件詳細資料) 頁面,然後按一下「Close incident」(關閉事件)

如果看到 Unable to close incident 訊息,請稍待幾分鐘後再試一次。造成新事件的條件仍處於有效狀態,因此警報系統會將事件視為有效,您無法立即關閉。

資料保留與限制

如要瞭解事件的限制和保留期限,請參閱「快訊限制」。

後續步驟