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.
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.
{
"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 |
|---|---|---|
| Chaîne | Le type d’événement. En cas de changement d’état de l’alerte, la valeur est |
| Chaîne | URL de base de Databricks SQL dans le Workspace. |
| Objet | Les détails de la notification et de l'alerte. |
| Chaîne | L'objet de la notification personnalisée rendue. Ce champ est omis lorsque l’alerte ne définit pas d’objet personnalisé. |
| Chaîne | Le corps de la notification personnalisée rendu. Ce champ est omis lorsque l'alerte ne définit pas de corps personnalisé. |
| 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 |
|---|---|---|
| Chaîne | ID de ressource de l'alerte. |
| Chaîne | Nom de l’alerte. |
| 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. |
| Entier | Heure de création de l'alerte, en millisecondes depuis l'époque Unix. |
| Chaîne | Nom de la ressource du dossier contenant l'alerte. |
| Chaîne | La query SQL que l'alerte évalue. |
| Chaîne | ID du SQL Warehouse qui exécute la query. |
| Chaîne | Le template d’objet de notification personnalisé. Ce champ est omis lorsqu’un objet personnalisé n’est pas configuré. |
| Chaîne | Le Template de corps de notification personnalisé. Ce champ est omis lorsqu’un corps personnalisé n’est pas configuré. |
| Chaîne | Format des Template personnalisés, comme |
| Tableau | Les conditions d’évaluation configurées et leur état. La valeur |
| 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 |
|---|---|---|
| Chaîne | L'ID de la condition d'évaluation. |
| Objet | Colonne de résultats de la query et agrégation que la condition évalue. |
| Chaîne | L'opérateur de comparaison, tel que |
| Objet | La valeur ou la colonne de résultats de query à laquelle la source est comparée. |
| 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. |
| Objet | L'intervalle de déclenchement, le paramètre de notification en cas de réussite et les ID de destination de notification. |
| Chaîne | L’état d’évaluation qui a provoqué la notification : |
| Entier | Le temps d'évaluation, en millisecondes depuis l'époque Unix. |
| 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.