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 角色:
-
查詢追蹤資料:
Cloud Trace 使用者 (
roles/cloudtrace.user) -
建立以 SQL 為準的警告政策:
- Monitoring 編輯者 (
roles/monitoring.editor) - Logging SqlAlertWriter (
roles/logging.sqlAlertWriter)
- Monitoring 編輯者 (
-
查詢追蹤資料:
Cloud Trace 使用者 (
-
- 專案的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 查詢」部分會顯示您的查詢。
在「Alert condition」(快訊條件) 部分,設定警告政策的條件和排程。
設定警告政策的警告詳細資料。
檢查警告政策,然後按一下「儲存」建立政策。
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 為基礎的警告政策發出的查詢就會失敗。
查詢排定時間與建立快訊之間,最多會有七分鐘的延遲,加上查詢執行時間。
如需與快訊政策相關的完整限制清單,請參閱「監控限制」。