SQL 警示 webhook 承載內容

當 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 網路與認證選項,請參見 管理通知目的地。