當 Databricks SQL 警示改變狀態時,webhook 通知目的地會接收描述警示及其評估過程的 JSON 有效載荷。 此有效載荷格式適用於最新版本的 Databricks SQL 警示。 舊有警報 使用不同的 payload。
Important
警示配置決定有效載荷包含哪些額外欄位。 沒有值的欄位則被省略。 設定你的 webhook 接收器忽略未知欄位,並處理缺少的可選欄位。
有效載荷範例
以下範例顯示了變更為 TRIGGERED 狀態的警報的有效載荷。 識別碼、名稱和時間戳都是虛構範例。
{
"event": "alert_state_change",
"url_base": "https://<workspace-url>/sql?o=1234567890123456",
"alert": {
"title": "Alert \"Daily revenue\" changed status to TRIGGERED",
"description": "Daily revenue exceeded the configured threshold.",
"alert": {
"id": "9876543210987654",
"name": "Daily revenue",
"owner": {
"id": 2468013579246801,
"name": "Alex Smith",
"email": "alex.smith@example.com"
},
"created_at": 1767225600000,
"parent": "folders/1357924680135792",
"query_text": "SELECT SUM(revenue) AS total_revenue FROM main.sales.daily",
"warehouse_id": "4b9b953939869799",
"custom_summary": "Alert \"{{ALERT_NAME}}\" changed status to {{ALERT_STATUS}}",
"custom_description": "Daily revenue exceeded the configured threshold.",
"evaluations": [
{
"id": "9a1f0fc0-7d18-4f42-8ec0-9c1f8e72d3a4",
"source": {
"name": "total_revenue",
"display": "total_revenue",
"aggregation": "AGGREGATION_UNSPECIFIED"
},
"comparison_operator": "GREATER_THAN",
"threshold": {
"value": {
"double_value": 100000.0
}
},
"empty_result_state": "OK",
"notification": {
"seconds_to_retrigger": 3600,
"notify_on_ok": true,
"subscriptions": [
{
"destination_id": "6d1f7e62-a9d4-4b32-b79d-2b1f9f5a6c80"
}
]
},
"state": "TRIGGERED",
"last_evaluated_at": 1767229200000,
"last_triggered_at": 1767229200000
}
],
"schedule": {
"quartz_cron_schedule": "0 0 * * * ?",
"timezone_id": "UTC",
"paused": false
},
"custom_template_format": "HTML"
}
}
}
有效載荷欄位
有效載荷包含以下信封欄位:
| Field | 類型 | Description |
|---|---|---|
event |
String | 事件類型。 對於警報狀態變更,值為 alert_state_change。 |
url_base |
String | Databricks 工作空間中 SQL 的基礎網址。 |
alert |
物件 | 通知和警示詳細資料。 |
alert.title |
String | 渲染的自訂通知主體。 當警報未定義自訂主題時,此欄位會省略。 |
alert.description |
String | 渲染出來的自訂通知內容。 當警報未定義自訂內文時,此欄位會被省略。 |
alert.alert |
物件 | 通知發出時的警示快照。 |
巢狀 alert.alert 物件可以包含以下欄位:
| Field | 類型 | Description |
|---|---|---|
id |
String | 警報資源ID。 |
name |
String | 警示名稱。 |
owner |
物件 | 警示擁有者的ID、姓名和電子郵件地址。 當擁有者資料無法提供時,此欄位會被省略。 |
created_at |
Integer | 警報建立時間,自 Unix 時代以來以毫秒計。 |
parent |
String | 包含警報的資料夾資源名稱。 |
query_text |
String | 警示評估的 SQL 查詢。 |
warehouse_id |
String | 執行查詢的 SQL 倉庫的 ID。 |
custom_summary |
String | 自訂通知主旨範本。 當自訂主旨未設定時,此欄位會被省略。 |
custom_description |
String | 自訂通知內文範本。 當自訂本文未被設定時,這個欄位會被省略。 |
custom_template_format |
String | 自訂範本的格式,例如 HTML 或 MARKDOWN。 |
evaluations |
陣列 | 配置的評估條件及其狀態。 該 state 值反映導致通知的狀態變更。 |
schedule |
物件 | Quartz 的 cron 時間表、時區和暫停狀態。 當警報沒有排程時,此欄位會被省略。 |
根據警示配置,巢狀物件也可能包含 parameters、 genie_analysis_enabled、 genie_analysis_custom_prompt和 genie_analysis_references。
陣列中的 evaluations 每個物件可以包含以下欄位:
| Field | 類型 | Description |
|---|---|---|
id |
String | 評估條件的 ID。 |
source |
物件 | 條件所評估的查詢結果欄位與彙整。 |
comparison_operator |
String | 比較運算子,例如 GREATER_THAN、 EQUAL、 或 IS_NULL。 |
threshold |
物件 | 就是與來源比較的值或查詢結果欄位。 |
empty_result_state |
String | 當查詢未傳回任何資料列時要使用的狀態。 當警報未定義空結果狀態時,此欄位會被省略。 |
notification |
物件 | 重觸發間隔、通知on-OK 設定,以及通知目的地 ID。 |
state |
String | 導致通知的評估狀態為: TRIGGERED、、 OK或 ERROR。 |
last_evaluated_at |
Integer | 評估時間,以毫秒計,自 Unix 紀元以來。 |
last_triggered_at |
Integer | 最後一次觸發的時間,以毫秒計,自 Unix 紀元以來。 當警報尚未觸發時,此欄位會被省略。 |
驗證 webhook 承載資料
有效載荷可包含敏感的工作區元資料,包括 SQL 查詢、警報擁有者身份及自訂通知內容。 保護接收端點並限制存取儲存的有效載荷。 關於 webhook 網路與認證選項,請參見 管理通知目的地。