SQL alert webhook payload

Amikor egy Databricks SQL riasztás állapota megváltozik, egy webhook értesítési célpont kap egy JSON-adatcsomagot, amely leírja a riasztást és annak értékelését. Ez az adattartalom-formátum a Databricks SQL-értesítések legújabb verziójára vonatkozik. A régi riasztások más adatstruktúrát használnak.

Important

A riasztási konfigurációk határozzák meg, hogy a payload mely további mezőket tartalmaz. Az érték nélküli mezők kihagyásra kerülnek. Konfiguráld be a webhook vevőt úgy, hogy figyelmen kívül hagyja az ismeretlen mezőket, és kezelje a hiányzó opcionális mezőket.

Payload példa

A következő példa mutatja a riasztás payloadját, amely a(z) TRIGGERED állapotra változott. Az azonosítók, nevek és időbélyegek fiktív példák.

{
  "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"
    }
  }
}

Payload mezők

Az adatcsomag a következő borítékmezőket tartalmazza:

Mező Típus Description
event String Az esemény típusa. Riasztási állapot változásai esetén az érték alert_state_change.
url_base String A Databricks SQL alap URL-je a workspace-ben.
alert Object Az értesítés és a riasztás részletei.
alert.title String A megjelenített egyedi értesítés tárgya. Ez a mező akkor kerül ki, ha a riasztás nem definiál egyéni tárgyat.
alert.description String A megjelenített egyedi értesítés szövege. Ez a mező akkor nem szerepel, ha a riasztás nem határoz meg egyedi törzset.
alert.alert Object Egy pillanatkép a riasztásról, amikor az értesítést elküldték.

A beépített alert.alert objektum a következő mezőket tartalmazhatja:

Mező Típus Description
id String A riasztási erőforrás azonosítója.
name String A riasztás neve.
owner Object A riasztás tulajdonosának azonosítója, neve és e-mail címe. Ez a mező akkor kimarad, ha a tulajdonosi adatok nem elérhetők.
created_at Integer A riasztás létrehozásának ideje, a Unix-epoch óta eltelt milliszekundumokban.
parent String A figyelmeztetést tartalmazó mappa erőforrásneve.
query_text String Az SQL lekérdezés, amelyet a riasztás értékel.
warehouse_id String Az SQL-adattárház azonosítója, amely futtatja a lekérdezést.
custom_summary String Az egyedi értesítési tárgysablon. Ez a mező akkor marad ki, ha nincs egyéni tárgy konfigurálva.
custom_description String Az egyedi értesítési üzenettörzs sablonja. Ez a mező el van hagyva, ha egy egyéni törzsüzenet nincs konfigurálva.
custom_template_format String Az egyedi sablonok formátuma, például HTML vagy MARKDOWN.
evaluations Tömb A konfigurált értékelési feltételek és azok állapota. Az state érték azt az állapotváltozást tükrözi, amely az értesítést okozta.
schedule Object A Quartz cron ütemezése, időzónája és szüneteltetett állapota. Ez a mező akkor kimarad, ha a riasztásnak nincs időbeosztása.

A riasztás konfigurációjától függően a beágyazott objektum a következőket is tartalmazhatja: parameters, genie_analysis_enabled, genie_analysis_custom_prompt és genie_analysis_references.

A evaluations tömb minden objektuma tartalmazhatja a következő mezőket:

Mező Típus Description
id String Az értékelési feltétel azonosítója.
source Object A lekérdezés eredményoszlopa és aggregációja, amelyet a feltétel kiértékel.
comparison_operator String Az összehasonlító operátor, például GREATER_THAN, EQUAL, vagy IS_NULL.
threshold Object Az érték vagy lekérdezés eredményoszlop, amelyhez a forrást hasonlítják össze.
empty_result_state String Az állapot, amit akkor kell használni, amikor a lekérdezés nem ad vissza sorokat. Ez a mező akkor ki van hagyva, ha a riasztás nem definiál üres eredményállapotot.
notification Object Az újraaktiválási intervallum, az OK állapot esetén történő értesítés beállítása és az értesítési célazonosítók.
state String Az értékelési állapot, amely az értesítést okozta: TRIGGERED, OK, vagy ERROR.
last_evaluated_at Integer Az értékelési idő, milliszekundumokban a Unix-epoch óta.
last_triggered_at Integer Az utolsó kiváltott idő, milliszekundumokban a Unix korszak óta. Ez a mező akkor hiányzik, ha a riasztás nem aktiválódott.

Biztosítsd a webhook payloadját

Az adatcsomag érzékeny munkaterületi metaadatokat tartalmazhat, beleértve az SQL-lekérdezést, a riasztás tulajdonosának személyazonosságát és az egyéni értesítési tartalmat. Védd a fogadó végpontot és korlátozd a tárolt payloadokhoz való hozzáférést. Webhook hálózati és hitelesítési lehetőségekhez lásd: Értesítési célpontok kezelése.