Aller au contenu principal

Charge utile du webhook d'alerte SQL

Lorsqu’une alerte Databricks SQL change d’état, une destination de notification par webhook reçoit une charge utile JSON qui décrit l’alerte et son évaluation. Ce format de charge utile s'applique à la dernière version des alertes Databricks SQL. Les anciennes alertes utilisent une charge utile différente.

important

Les configurations d'alerte déterminent les champs supplémentaires inclus dans la charge utile. Les champs sans valeurs sont omis. Configurez votre récepteur de webhook pour ignorer les champs inconnus et gérer les champs facultatifs manquants.

Exemple de charge utile​

L’exemple suivant montre la charge utile d’une alerte qui est passée à l’état TRIGGERED. Les identifiants, les noms et les Timestamp sont des exemples fictifs.

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

Champs de la charge utile​

La charge utile contient les champs d'enveloppe suivants :

Champ

Type

Description

event

Chaîne

Le type d’événement. En cas de changement d’état de l’alerte, la valeur est alert_state_change.

url_base

Chaîne

URL de base de Databricks SQL dans le Workspace.

alert

Objet

Les détails de la notification et de l'alerte.

alert.title

Chaîne

L'objet de la notification personnalisée rendue. Ce champ est omis lorsque l’alerte ne définit pas d’objet personnalisé.

alert.description

Chaîne

Le corps de la notification personnalisée rendu. Ce champ est omis lorsque l'alerte ne définit pas de corps personnalisé.

alert.alert

Objet

Instantané de l'alerte au moment où la notification a été envoyée.

Champ

Type

Description

event

Chaîne

Le type d’événement. En cas de changement d’état de l’alerte, la valeur est alert_state_change.

url_base

Chaîne

URL de base de Databricks SQL dans le Workspace.

alert

Objet

Les détails de la notification et de l'alerte.

alert.title

Chaîne

L'objet de la notification personnalisée rendue. Ce champ est omis lorsque l’alerte ne définit pas d’objet personnalisé.

alert.description

Chaîne

Le corps de la notification personnalisée rendu. Ce champ est omis lorsque l'alerte ne définit pas de corps personnalisé.

alert.alert

Objet

Instantané de l'alerte au moment où la notification a été envoyée.

L’objet imbriqué alert.alert peut contenir les champs suivants :

Champ

Type

Description

id

Chaîne

ID de ressource de l'alerte.

name

Chaîne

Nom de l’alerte.

owner

Objet

ID, nom et adresse e-mail du propriétaire de l'alerte. Ce champ est omis lorsque les détails du propriétaire ne sont pas disponibles.

created_at

Entier

Heure de création de l'alerte, en millisecondes depuis l'époque Unix.

parent

Chaîne

Nom de la ressource du dossier contenant l'alerte.

query_text

Chaîne

La query SQL que l'alerte évalue.

warehouse_id

Chaîne

ID du SQL Warehouse qui exécute la query.

custom_summary

Chaîne

Le template d’objet de notification personnalisé. Ce champ est omis lorsqu’un objet personnalisé n’est pas configuré.

custom_description

Chaîne

Le Template de corps de notification personnalisé. Ce champ est omis lorsqu’un corps personnalisé n’est pas configuré.

custom_template_format

Chaîne

Format des Template personnalisés, comme HTML ou MARKDOWN.

evaluations

Tableau

Les conditions d’évaluation configurées et leur état. La valeur state reflète le changement d’état qui a déclenché la notification.

schedule

Objet

Le calendrier Quartz cron, le fuseau horaire et l’état en pause. Ce champ est omis lorsque l’alerte n’a pas de planification.

Champ

Type

Description

id

Chaîne

ID de ressource de l'alerte.

name

Chaîne

Nom de l’alerte.

owner

Objet

ID, nom et adresse e-mail du propriétaire de l'alerte. Ce champ est omis lorsque les détails du propriétaire ne sont pas disponibles.

created_at

Entier

Heure de création de l'alerte, en millisecondes depuis l'époque Unix.

parent

Chaîne

Nom de la ressource du dossier contenant l'alerte.

query_text

Chaîne

La query SQL que l'alerte évalue.

warehouse_id

Chaîne

ID du SQL Warehouse qui exécute la query.

custom_summary

Chaîne

Le template d’objet de notification personnalisé. Ce champ est omis lorsqu’un objet personnalisé n’est pas configuré.

custom_description

Chaîne

Le Template de corps de notification personnalisé. Ce champ est omis lorsqu’un corps personnalisé n’est pas configuré.

custom_template_format

Chaîne

Format des Template personnalisés, comme HTML ou MARKDOWN.

evaluations

Tableau

Les conditions d’évaluation configurées et leur état. La valeur state reflète le changement d’état qui a déclenché la notification.

schedule

Objet

Le calendrier Quartz cron, le fuseau horaire et l’état en pause. Ce champ est omis lorsque l’alerte n’a pas de planification.

Selon la configuration de l'alerte, l'objet imbriqué peut également inclure parameters, genie_analysis_enabled, genie_analysis_custom_prompt et genie_analysis_references.

Chaque objet du tableau evaluations peut contenir les champs suivants :

Champ

Type

Description

id

Chaîne

L'ID de la condition d'évaluation.

source

Objet

Colonne de résultats de la query et agrégation que la condition évalue.

comparison_operator

Chaîne

L'opérateur de comparaison, tel que GREATER_THAN, EQUAL ou IS_NULL.

threshold

Objet

La valeur ou la colonne de résultats de query à laquelle la source est comparée.

empty_result_state

Chaîne

L’état à utiliser lorsque la query ne renvoie aucune ligne. Ce champ est omis lorsque l’alerte ne définit pas d’état de résultat vide.

notification

Objet

L'intervalle de déclenchement, le paramètre de notification en cas de réussite et les ID de destination de notification.

state

Chaîne

L’état d’évaluation qui a provoqué la notification : TRIGGERED, OK ou ERROR.

last_evaluated_at

Entier

Le temps d'évaluation, en millisecondes depuis l'époque Unix.

last_triggered_at

Entier

La dernière heure de déclenchement, en millisecondes depuis l'époque Unix. Ce champ est omis lorsque l'alerte n'a pas été Trigger.

Champ

Type

Description

id

Chaîne

L'ID de la condition d'évaluation.

source

Objet

Colonne de résultats de la query et agrégation que la condition évalue.

comparison_operator

Chaîne

L'opérateur de comparaison, tel que GREATER_THAN, EQUAL ou IS_NULL.

threshold

Objet

La valeur ou la colonne de résultats de query à laquelle la source est comparée.

empty_result_state

Chaîne

L’état à utiliser lorsque la query ne renvoie aucune ligne. Ce champ est omis lorsque l’alerte ne définit pas d’état de résultat vide.

notification

Objet

L'intervalle de déclenchement, le paramètre de notification en cas de réussite et les ID de destination de notification.

state

Chaîne

L’état d’évaluation qui a provoqué la notification : TRIGGERED, OK ou ERROR.

last_evaluated_at

Entier

Le temps d'évaluation, en millisecondes depuis l'époque Unix.

last_triggered_at

Entier

La dernière heure de déclenchement, en millisecondes depuis l'époque Unix. Ce champ est omis lorsque l'alerte n'a pas été Trigger.

Sécuriser la charge utile du webhook​

La charge utile peut contenir des métadonnées sensibles du Workspace, notamment la query SQL, l’identité du propriétaire de l’alerte et le contenu personnalisé de la notification. Protégez l’Endpoint de réception et limitez l’accès aux charges utiles stockées. Pour les options de mise en réseau et d'authentification des webhooks, consultez Gérer les destinations des notifications.