Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lorsqu’une alerte SQL de Databricks change d’état, une destination de notification 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 SQL de Databricks. Les alertes héritées utilisent une charge utile différente.
Important
Les configurations d’alerte déterminent quels champs supplémentaires sont inclus dans la charge utile. Les champs sans valeurs sont omis. Configurez votre récepteur webhook pour ignorer les champs inconnus et gérer les champs optionnels manquants.
Exemple de charge utile
L’exemple suivant montre la charge utile d’une alerte qui est passée à l’état TRIGGERED. Les identifiants, noms et horodatages sont des exemples fictifs.
{
"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 payload
La charge utile contient les champs d’enveloppe suivants :
| Champ | Type | Description |
|---|---|---|
event |
String | Type d’événement. Pour les changements d’état d’alerte, la valeur est alert_state_change. |
url_base |
String | L’URL de base pour Databricks SQL dans l’espace de travail. |
alert |
Object | Les détails de la notification et de l’alerte. |
alert.title |
String | Le sujet de notification personnalisé rendu. Ce champ est omis lorsque l’alerte ne définit pas un sujet personnalisé. |
alert.description |
String | Le corps de notification personnalisé affiché. Ce champ est omis lorsque l’alerte ne définit pas un body personnalisé. |
alert.alert |
Object | Un instantané de l’alerte lors de l’envoi de la notification. |
L’objet imbriqué alert.alert peut contenir les champs suivants :
| Champ | Type | Description |
|---|---|---|
id |
String | L’identifiant de la ressource d’alerte. |
name |
String | Nom de l’alerte. |
owner |
Object | L’identifiant, le nom et l’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 |
Integer | Le temps de création de l’alerte, en millisecondes depuis l’époque Unix. |
parent |
String | Le nom de la ressource du dossier contenant l’alerte. |
query_text |
String | La requête SQL que l’alerte évalue. |
warehouse_id |
String | L’identifiant de l’entrepôt SQL qui exécute la requête. |
custom_summary |
String | Le modèle personnalisé de sujet de notification. Ce champ est omis lorsqu’un sujet personnalisé n’est pas configuré. |
custom_description |
String | Le modèle personnalisé de corps de notification. Ce champ est omis lorsqu’un corps du message personnalisé n’est pas configuré. |
custom_template_format |
String | Le format des modèles personnalisés, tels que HTML ou MARKDOWN. |
evaluations |
Array | Les conditions d’évaluation configurées et leur état. La state valeur reflète le changement d’état qui a causé la notification. |
schedule |
Object | Le calendrier du cron Quartz, le fuseau horaire et l’état en pause. Ce champ est omis lorsque l’alerte n’a pas de planning. |
Selon la configuration d’alerte, l’objet imbriqué peut aussi inclure parameters, genie_analysis_enabled, genie_analysis_custom_prompt, et genie_analysis_references.
Chaque objet du evaluations tableau peut contenir les champs suivants :
| Champ | Type | Description |
|---|---|---|
id |
String | L’ID de la condition d’évaluation. |
source |
Object | Colonne de résultat de la requête et agrégation évaluées par la condition. |
comparison_operator |
String | L’opérateur de comparaison, tel que GREATER_THAN, EQUAL, ou IS_NULL. |
threshold |
Object | La colonne de valeur ou de résultat de requête contre laquelle la source est comparée. |
empty_result_state |
String | L’état à utiliser lorsque la requête ne retourne aucune ligne. Ce champ est omis lorsque l’alerte ne définit pas un état de résultat vide. |
notification |
Object | L’intervalle de redéclenchement, le réglage de notification à l’état OK et les identifiants de destination des notifications. |
state |
String | L’état d’évaluation qui a causé la notification : TRIGGERED, OK, ou ERROR. |
last_evaluated_at |
Integer | Le temps d’évaluation, en millisecondes depuis l’époque Unix. |
last_triggered_at |
Integer | L’horodatage du dernier déclenchement, en millisecondes depuis l’époque Unix. Ce champ est omis lorsque l’alerte n’a pas été déclenchée. |
Sécuriser la charge utile du webhook
La charge utile peut contenir des métadonnées sensibles de l’espace de travail, y compris la requête SQL, l’identité du propriétaire de l’alerte et le contenu personnalisé des notifications. Protégez le point de terminaison de réception et limitez l’accès aux données stockées. Pour les options de réseautage et d’authentification des webhooks, voir Gérer les destinations de notification.