Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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.