以 SQL 為準的警告政策事件

如果分組記錄項目的 SQL 查詢結果符合 SQL 警告政策的條件,Cloud Monitoring 警告可讓您追蹤及調查問題。針對每個快訊,Monitoring 會傳送通知並建立「Alert details」(快訊詳細資料) 頁面,協助您排解失敗問題及管理快訊生命週期。

在「Alert details」(快訊詳細資料) 頁面中,您可以查看 SQL 查詢結果摘要和相關快訊的連結。如果政策處於延後或停用狀態,或者警告政策或警告數量超過警告限制,Monitoring 就不會建立警告。

這項功能僅支援 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 主專案或管理專案。

    「Alerting」(警告) 頁面會顯示警告政策、延後和警告的相關資訊:

    • 「摘要」窗格會列出待處理警告的數量。
    • 「Alerts」(警告) 表格會顯示最近開啟的警告。如要在表格中列出最近的快訊 (包括已關閉的快訊),請按一下「Show closed alerts」(顯示已關閉的快訊)。
  3. 如要查看特定快訊的詳細資料,請在清單中選取該快訊。

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

查看舊快訊

「Alerting」(警告) 頁面的「Alerts」(警告) 表格會顯示最近開啟的警告。如要查看較舊的快訊,請執行下列任一操作:

  • 如要翻閱「Alerts」(警告) 表格中的項目,請按一下 「Newer」(較新) 或 「Older」(較舊)。

  • 如要開啟可列出及篩選快訊的頁面,請按一下「See all alerts」(查看所有快訊)。「Alerts」(快訊) 頁面隨即開啟。在該頁面中執行下列操作:

    • 顯示所有警告,包括已關閉的警告。如要顯示所有警告,請按一下「Show closed alerts」(顯示已關閉的警告)。
    • 篩選警告。如要瞭解如何新增篩選器,請參閱「篩選快訊」。
    • 確認或關閉警告,或延後警告政策。如要存取這些選項,請按一下快訊列中的「更多選項」圖示 ,然後從選單中選取所需選項。詳情請參閱「管理快訊」。

篩選警告

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

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

  1. 在「Alerts」(快訊) 頁面上,按一下 「Filter table」(篩選表格),然後選取篩選器屬性。篩選器屬性包括:

    • 警告狀態
    • 警告政策名稱
    • 開啟或關閉快訊的時間
  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

調查警告

「快訊詳細資料」頁面包含的資訊,可能有助於您找出快訊原因。

瞭解查詢結果

「Query information」(查詢資訊) 窗格會顯示警告政策的查詢是在 BigQuery 隨選運算單元或預留項目上執行。這個窗格也會根據過去七天內執行的查詢,顯示預估每日掃描的位元組數和使用的運算單元時間。

「SQL query results」(SQL 查詢結果) 窗格會列出每次 Observability Analytics 根據警告政策條件執行 SQL 查詢時,產生的查詢結果摘要。根據預設,系統會篩選清單,只顯示符合警告政策條件的查詢。

  • 如要查看 Observability Analytics 執行查詢的特定時間,以及查詢和查詢結果資料表,請按一下「Query run time」(查詢執行時間) 欄中的值。
  • 如要切換顯示符合警告政策條件的查詢結果,以及 Observability Analytics 依警告政策執行的所有查詢,請按一下「僅顯示符合警告觸發條件的查詢」。

查看補充資訊

「Documentation」(說明文件) 專區會顯示您在建立警告政策時,為通知提供的說明文件範本。這項資訊可能包括警告政策監控內容的說明,以及緩解措施提示。詳情請參閱「使用使用者定義的文件為通知加上註解」。

如果您未設定警告政策的說明文件,則「Documentation」(說明文件) 窗格會顯示「No documentation is configured」(未設定任何說明文件)。

如要找出應用程式中的潛在問題,可以查看與其他警告政策條件相關的警告。

「Related alerts」(相關警告) 專區會列出符合警告政策條件時建立的其他警告。

管理快訊

快訊會處於下列其中一種狀態:

  •  開啟:符合 SQL 警告政策的條件,且警告仍處於開啟狀態。如果再次符合相同條件,且已有開啟的警告,則不會開啟新的警告。

  •  已確認:警告處於開啟狀態,且已手動標示為「已確認」。這個狀態通常表示快訊正在調查中。

  •  已關閉:您已手動關閉警告,或警告在自動關閉期限過後自動關閉。

確認警告

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

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

  1. 在「Alerting」(快訊) 頁面的「Alerts」(快訊) 表格中,按一下「See all alerts」(查看所有快訊)。
  2. 在「Alerts」(警告) 頁面中,找出要確認的警告,然後執行下列任一操作:

    • 按一下 「More options」(更多選項),然後選取「Acknowledge」(確認)。
    • 開啟快訊的詳細資料頁面,然後按一下「Acknowledge alert」(確認快訊)。

延後警告政策

如要防止 Monitoring 在特定時間範圍內建立快訊及傳送通知,請延後相關警告政策。延後警告政策時,與該政策相關的警告仍會保持開啟狀態,但不會再發出通知。警告會根據警告政策的自動關閉時間長度關閉。

如要為正在查看的警告建立延後通知,請按照下列步驟操作:

  1. 在「Alert details」(快訊詳細資料) 頁面中,按一下「Snooze Policy」(延後政策)。

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

您也可以在「Alerts」(警告) 頁面中延後警告政策,方法是找出要延後的警告,按一下 「More options」(更多選項),然後選取「Snooze」(延後)。您可以在服務中斷期間延後警告政策,避免在疑難排解過程中收到更多通知。

關閉警告

您可以讓 Monitoring 關閉警告,也可以自行關閉。

警告政策的自動關閉時間到期時,Monitoring 會自動關閉警告。預設的自動關閉時間長度為 7 天。自動關閉時間長度下限為 30 分鐘。

自動關閉時間長度是指在警告關閉之前,必須經過的時間,且警告原因不會重複。因此,如果警告處於開啟狀態,且原因再次發生,警告的開啟時間可能會超過自動關閉時間。

如要關閉警告,請按照下列步驟操作:

  1. 在「Alerting」(快訊) 頁面的「Alerts」(快訊) 表格中,按一下「See all alerts」(查看所有快訊)。
  2. 在「Alerts」(快訊) 頁面中,找出要關閉的快訊,然後執行下列任一操作:

    • 按一下「 查看更多」,然後選取「關閉快訊」
    • 開啟該警告的「Alert details」(警告詳細資料) 頁面,然後按一下「Close alert」(關閉警告)。

如果看到 Unable to close alert 訊息,請過幾分鐘後再試。您無法立即關閉新的警告,因為警告系統仍認為導致警告的條件處於有效狀態。

資料保留和限制

如要瞭解警告限制和保留期限,請參閱「警告限制」。

後續步驟