Payload del webhook di avviso SQL

Quando un avviso SQL di Databricks cambia stato, una destinazione di notifica webhook riceve un payload JSON che descrive l'avviso e la sua valutazione. Questo formato di payload si applica all'ultima versione degli avvisi SQL di Databricks. Gli avvisi legacy utilizzano un payload diverso.

Importante

Le configurazioni di allarme determinano quali campi aggiuntivi include il payload. I campi senza valori vengono omessi. Configura il tuo ricevitore webhook per ignorare i campi sconosciuti e gestire i campi opzionali mancanti.

Esempio di payload

L'esempio seguente mostra il payload di un allarme che è passato allo stato TRIGGERED. Identificatori, nomi e timestamp sono esempi di fantasia.

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

Campi del payload

Il payload contiene i seguenti campi di inviluppo:

Field Type Description
event Stringa Tipo di evento. Per i cambiamenti dello stato di allerta, il valore è alert_state_change.
url_base Stringa L'URL base per Databricks SQL nello spazio di lavoro.
alert Object I dettagli della notifica e dell'avviso.
alert.title Stringa L'oggetto della notifica personalizzata visualizzato. Questo campo viene omesso quando l'avviso non definisce un soggetto personalizzato.
alert.description Stringa Il corpo della notifica personalizzata renderizzata. Questo campo viene omesso quando l'avviso non definisce un corpo personalizzato.
alert.alert Object Un'istantanea dell'avviso quando la notifica è stata inviata.

L'oggetto annidato alert.alert può contenere i seguenti campi:

Field Type Description
id Stringa L'ID della risorsa di allerta.
name Stringa Nome dell'avviso.
owner Object L'ID, il nome e l'indirizzo email del proprietario dell'avviso. Questo campo viene omesso quando i dettagli del proprietario non sono disponibili.
created_at Integer Il tempo di creazione dell'allarme, in millisecondi dall'epoca Unix.
parent Stringa Il nome della risorsa della cartella che contiene l'avviso.
query_text Stringa La query SQL che l'avviso valuta.
warehouse_id Stringa L'ID del SQL warehouse che esegue la query.
custom_summary Stringa Il modello personalizzato dell'oggetto della notifica. Questo campo viene omesso quando un oggetto personalizzato non è configurato.
custom_description Stringa Il modello personalizzato per il corpo della notifica. Questo campo viene omesso quando un body personalizzato non è configurato.
custom_template_format Stringa Il formato dei template personalizzati, come HTML o MARKDOWN.
evaluations Array Le condizioni di valutazione configurate e il loro stato. Il state valore riflette il cambiamento di stato che ha causato la notifica.
schedule Object La pianificazione cron di Quartz, il fuso orario e lo stato di pausa. Questo campo viene omesso quando l'avviso non ha una pianificazione.

A seconda della configurazione dell'allerta, l'oggetto annidato può anche includere parameters, genie_analysis_enabled, genie_analysis_custom_prompt e genie_analysis_references.

Ogni oggetto nell'array evaluations può contenere i seguenti campi:

Field Type Description
id Stringa L'ID della condizione di valutazione.
source Object La colonna dei risultati della query e l'aggregazione che la condizione valuta.
comparison_operator Stringa L'operatore di confronto, come GREATER_THAN, EQUAL, o IS_NULL.
threshold Object La colonna di valore o risultato della query con cui la sorgente viene confrontata.
empty_result_state Stringa Lo stato da usare quando la query non restituisce righe. Questo campo viene omesso quando l'avviso non definisce uno stato di risultato vuoto.
notification Object L'intervallo di riattivazione, l'impostazione notify-on-OK e gli ID delle destinazioni delle notifiche.
state Stringa Lo stato di valutazione che ha causato la notifica: TRIGGERED, OK, o ERROR.
last_evaluated_at Integer Il tempo di valutazione, in millisecondi dall'epoca Unix.
last_triggered_at Integer L'istante dell'ultima attivazione, in millisecondi dall'epoca Unix. Questo campo viene omesso quando l'allarme non si è attivato.

Mettere in sicurezza il payload del webhook

Il payload può contenere metadati sensibili dello spazio di lavoro, inclusi la query SQL, l'identità del proprietario dell'avviso e contenuti di notifiche personalizzate. Proteggere l'endpoint ricevente e limitare l'accesso ai payload memorizzati. Per le opzioni di networking e autenticazione webhook, vedi Gestisci destinazioni di notifica.