SQL alert webhook payload

Gdy alert SQL Databricks zmienia stan, miejsce docelowe powiadomień webhook otrzymuje ładunek JSON opisujący alert i jego ocenę. Ten format danych dotyczy najnowszej wersji alertów SQL Databricks. Starsze alerty korzystają z innego payloadu.

Important

Konfiguracje alertów określają, które dodatkowe pola zawiera payload. Pola bez wartości są pomijane. Skonfiguruj swój odbiornik webhook tak, aby ignorował nieznane pola i radził sobie z brakującymi opcjonalnymi polami.

Przykład ładunku danych

Poniższy przykład pokazuje ładunek danych alertu, który zmienił się do stanu TRIGGERED. Identyfikatory, nazwy i znaczniki czasu to fikcyjne przykłady.

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

Pola payloadu

Ładunek danych zawiera następujące pola koperty:

Pole Typ Description
event String Typ zdarzenia. Dla zmian stanu alarmu wartość wynosi alert_state_change.
url_base String Bazowy adres URL Databricks SQL w przestrzeni roboczej.
alert Object Powiadomienie i szczegóły alertu.
alert.title String Wyrenderowany niestandardowy temat powiadomienia. To pole jest pomijane, gdy alert nie definiuje niestandardowego tematu wiadomości.
alert.description String Wyrenderowana treść niestandardowego powiadomienia. To pole jest pomijane, gdy alert nie definiuje niestandardowej treści.
alert.alert Object Migawka alertu po wysłaniu powiadomienia.

Zagnieżdżony alert.alert obiekt może zawierać następujące pola:

Pole Typ Description
id String ID zasobu alertu.
name String Nazwa alertu.
owner Object Identyfikator, imię i adres e-mail właściciela alertu. To pole jest pomijane, gdy dane właściciela są niedostępne.
created_at Integer Czas utworzenia alertu, w milisekundach od ery Uniksa.
parent String Nazwa zasobu folderu zawierającego alert.
query_text String Zapytanie SQL, które jest oceniane przez alert.
warehouse_id String ID magazynu SQL, który wykonuje zapytanie.
custom_summary String Niestandardowy szablon tematu powiadomień. To pole jest pomijane, gdy niestandardowy temat nie jest skonfigurowany.
custom_description String Niestandardowy szablon treści powiadomienia. To pole jest pomijane, gdy niestandardowa treść nie jest skonfigurowana.
custom_template_format String Format niestandardowych szablonów, takich jak HTML lub MARKDOWN.
evaluations Tablica Skonfigurowane warunki oceny i ich stan. Wartość state odzwierciedla zmianę stanu, która spowodowała powiadomienie.
schedule Object Harmonogram Quartz Cron, strefa czasowa i stan wstrzymany. To pole jest pomijane, gdy alert nie ma harmonogramu.

W zależności od konfiguracji alertu, zagnieżdżony obiekt może również zawierać parameters, genie_analysis_enabled, genie_analysis_custom_prompt, oraz genie_analysis_references.

Każdy obiekt w tablicy evaluations może zawierać następujące pola:

Pole Typ Description
id String Identyfikator warunku oceny.
source Object Kolumna wyniku zapytania oraz agregacja oceniane przez warunek
comparison_operator String Operator porównawczy, taki jak GREATER_THAN, EQUAL, lub IS_NULL.
threshold Object Kolumna wartości lub wyniku zapytania, z którą porównywane jest źródło.
empty_result_state String Stan do użycia, gdy zapytanie nie zwraca wierszy. To pole jest pomijane, gdy alert nie definiuje pustego stanu wyniku.
notification Object Interwał ponownego wyzwolenia, ustawienie notify-on-OK oraz identyfikatory miejsc docelowych powiadomień.
state String Stan oceny, który spowodował powiadomienie: TRIGGERED, OK, lub ERROR.
last_evaluated_at Integer Czas ewaluacji, w milisekundach od epoki Uniksa.
last_triggered_at Integer Ostatni czas wyzwalania, w milisekundach od ery Uniksa. To pole jest pomijane, gdy alert nie został wywołany.

Zabezpiecz payload webhooka

Ładunek danych może zawierać wrażliwe metadane przestrzeni roboczej, w tym zapytanie SQL, tożsamość właściciela alertu oraz niestandardową treść powiadomienia. Chroń odbierający punkt końcowy i ograniczaj dostęp do przechowywanych payloadów. Aby poznać opcje sieci webhook i uwierzytelniania, zobacz Zarządzanie celami powiadomień.