Observability Analytics 中的 SQL 警報政策會定期對 Cloud Trace 資料執行 SQL 查詢,並在結果符合您指定的條件時傳送通知。這些政策會在 BigQuery 引擎上執行,且需要連結的 BigQuery 資料集。
如需 Observability Analytics 的一般資訊,請參閱「使用 Observability Analytics 查詢及分析追蹤記錄」。
快訊政策的運作方式
警告政策會說明在何種情況下要發出警告,以及要如何收到警告通知。您可以使用幾種不同方法,在追蹤資料中出現內容或模式時收到通知:
如要監控每月擷取的 Cloud Trace span 數量、配額用量和 span 擷取率,請在 Cloud Monitoring 中建立快訊政策。如果您從未建立警告政策,請參閱「建立警告政策」,詳細瞭解如何使用 Cloud Monitoring 控制台。
如要查看或探索個別追蹤記錄或範圍,或查看附加至範圍的屬性,請使用「Trace 探索工具」頁面。如要瞭解該頁面,請參閱「尋找及探索追蹤記錄」。
如要監控追蹤記錄資料的匯總分析結果,請將 Observability Analytics 與警告政策結合使用。在這個情境中,您會使用 SQL 查詢,查詢名為
_Trace的可觀測性 bucket 中的_AllSpans檢視區塊。最後,您會建立警告政策,監控 SQL 查詢結果。這類警告政策稱為「以 SQL 為基礎的警告政策」。如要進一步瞭解追蹤資料的儲存方式,請參閱「儲存空間總覽」。
本文其餘內容將說明如何使用以 SQL 為基礎的警告政策。
警告政策元件
以 SQL 為基礎的警告政策包含條件和時間表:
條件包含查詢,也就是查詢資料的 SQL 查詢。這項條件也會定義查詢結果在何種情況下會導致 Monitoring 建立快訊。
排程會定義警告政策執行查詢的頻率。排程也會定義回溯期的大小,這個篩選器只會選取自上次評估查詢以來收到的資料。舉例來說,如果將排程設為 60 分鐘,系統就會每 60 分鐘執行一次查詢,並使用回溯期選取最近 60 分鐘的資料。
警告政策也包含通知管道清單。符合警告政策的條件時,Cloud Monitoring 會建立快訊,然後透過這些管道傳送快訊通知。快訊是導致條件符合的資料記錄,以及其他相關資訊。這項資訊有助於排解導致警示的問題。您可以使用 Google Cloud 控制台查看快訊。
SQL 警告政策的評估類型
監控 SQL 查詢結果的條件支援兩種評估類型:
資料列數門檻:當查詢結果中的資料列數大於、等於或小於門檻值時,即符合條件。
布林值:當查詢結果資料表中的特定布林值資料欄包含任何值為
true的資料列時,即符合條件。
監控 SQL 查詢結果的警告政策只能有一個條件。
快訊政策和 BigQuery
如要讓警告政策查詢追蹤記錄資料,您必須設定連結的 BigQuery 資料集。連結的 BigQuery 資料集可讓 BigQuery 讀取追蹤資料,並對 SQL 查詢傳回的資料執行 BigQuery 函式。
警告政策執行 SQL 查詢時,系統會在定義警告政策的 Google Cloud 專案中,透過 BigQuery 引擎執行該查詢。根據預設,在 BigQuery 引擎上執行的查詢會使用隨選運算單元。以量計價運算單元和預留運算單元須按照 BigQuery 定價付費。
您也可以選擇為專案設定專屬的 BigQuery 運算單元預留項目:
- 建立專屬時段的預留項目,或找出現有預留項目。
- 為專案建立預留項目指派。
回溯期和快訊傳播時間
系統排定時間評估警告政策的條件時,Observability Analytics 會延遲執行 SQL 查詢五分鐘,讓 Cloud Logging 有時間為回溯期內收到的資料建立索引。舉例來說,如果警告政策使用的回溯期在下午 2:00 結束,Observability Analytics 會等到下午 2:05 才會執行 SQL 查詢。
如果查詢執行後符合快訊條件,快訊最多可能需要額外兩分鐘,才會在系統中傳播。
查詢失敗
SQL 警告政策發出的查詢可能會因各種原因而失敗,包括:
監控服務帳戶已不存在,或不再具備讀取所查詢追蹤資料的必要權限。
查詢執行時間超過五分鐘。
發生內部錯誤。
查詢失敗時,系統會產生含有警告政策 ID 和錯誤狀態的記錄項目。您可以透過記錄型警告政策,在系統記錄錯誤時建立警告。
事前準備
本節假設您已連結追蹤資料的 BigQuery 資料集。
建立以 SQL 為基礎的警告政策前,請先完成下列步驟:
-
如要取得查詢追蹤資料及建立以 SQL 為基礎的警告政策所需的權限,請要求管理員授予您下列 IAM 角色:
- Monitoring 編輯者 (
roles/monitoring.editor) 專案 - SQL 警告寫入者 (
roles/logging.sqlAlertWriter) 專案 - Observability Analytics 使用者 (
roles/observability.analyticsUser) 專案 - 專案或觀測資料檢視畫面的「觀測資料檢視畫面存取者」 (
roles/observability.viewAccessor) - 專案或連結資料集的 BigQuery 資料檢視者 (
roles/bigquery.dataViewer) - 專案的 BigQuery 工作使用者 (
roles/bigquery.jobUser)
- Monitoring 編輯者 (
-
- 專案的Monitoring 服務代理 (
roles/monitoring.notificationServiceAgent)。 - 連結的 BigQuery 資料集。(
roles/bigquery.dataViewer)
如果監控服務帳戶不存在,請參閱「疑難排解:沒有監控服務帳戶」。
- 專案的Monitoring 服務代理 (
- 設定要用於接收警報通知的通知管道。為提供備援,建議您設定多種通知管道。詳情請參閱「建立及管理通知管道」。
建立以 SQL 為基礎的警告政策
如要建立以 SQL 為基礎的警告政策,請按照下列步驟操作:
控制台
-
在 Google Cloud 控制台中,前往 manage_search「Observability Analytics」(觀測能力分析) 頁面:
前往「Observability Analytics」(觀測能力分析) 頁面
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
在「Observability Analytics」頁面的查詢編輯器中,輸入查詢追蹤資料的 SQL 查詢。
在工具列上,按一下「在 BigQuery 上執行」。
Observability Analytics 會在 BigQuery 引擎上執行查詢,並在「結果」表格中顯示結果。
如果沒有顯示「在 BigQuery 上執行」,請按一下「選取查詢引擎」settings,然後按一下「BigQuery」。「執行查詢」按鈕會變更為「在 BigQuery 中執行」。
在「Observability Analytics」(可觀測性分析) 頁面的「Results」(結果) 表格中,按一下「Create alert」(建立快訊) add_alert。
「Observability Analytics」頁面會顯示「建立 SQL 警告政策」視窗,其中「SQL 查詢」部分會顯示您的查詢。
在「警告條件」部分,設定警告政策的條件和時間表。
設定警告政策的警告詳細資料。
檢查警告政策,然後按一下「儲存」建立政策。
Terraform
安裝及設定 Terraform,如要進行 App Hub 設定,請選取 App Hub 主專案或管理專案。
在 Cloud Shell 中,前往包含 Terraform 設定的目錄。
在 Terraform 設定中,設定 google_monitoring_alert_policy 資源的執行個體,包括 condition_sql。
在 Cloud Shell 中輸入
terraform apply。
如要修改警告政策,請編輯內容,然後重新套用 Terraform 設定。詳情請參閱「使用 Terraform 管理警告政策」。
如要瞭解如何搭配使用 Google Cloud 與 Terraform,請參閱「Terraform with Google Cloud」。
REST
使用 alertPolicies.create 方法,以程式輔助方式建立快訊政策。快訊政策的Condition類型必須是 MonitoringQueryLanguageCondition,也就是 SqlCondition 的例項。您可以透過這類條件,使用 SQL 定義警告政策的條件。
如要定義時間表,請為 minutes、hours 或 days 欄位設定 periodicity 值。舉例來說,如要每 12 小時執行一次查詢,請將 hours 欄位的週期設為 12。
如要定義條件,請使用下列欄位:
boolean_test:設定警告政策,當查詢結果資料表的布林值資料欄含有 true 值時,即符合警報條件。row_count_test:設定警告政策,當查詢結果資料表中的資料列數達到特定門檻時,即符合政策條件。
如需完整的欄位和定義清單,請參閱 Cloud Monitoring API 說明文件中的SqlCondition。
如要進一步瞭解快訊政策的 Monitoring API,請參閱「透過 API 管理快訊政策」。
限制
- 每個以 SQL 為基礎的警告政策只能有一個條件。
- 以 SQL 為基礎的警告政策無法查詢分析檢視表。
如果執行時間超過五分鐘,以 SQL 為基礎的警告政策發出的查詢就會失敗。
查詢排定時間與建立快訊之間,最多會有七分鐘的延遲,加上查詢執行時間。
如需與快訊政策相關的完整限制清單,請參閱「監控限制」。