Ajouter des notifications sur un Job
Vous pouvez configurer des notifications à envoyer lors des exécutions d'un job et des tâches de job individuelles pour les événements suivants :
- Démarrer
- Achèvement réussi
- Échec
- La durée dépasse un threshold configuré.
- Une métrique de backlog de streaming dépasse un threshold configuré
Vous pouvez envoyer des notifications à une ou plusieurs adresses e-mail ou à des destinations tierces telles que Slack, Microsoft Teams, PagerDuty ou tout service basé sur un webhook. Cet article décrit les différentes façons de configurer des notifications de Job.
Ajouter des destinations système tierces
Vous pouvez configurer des notifications pour qu'elles soient livrées à des systèmes tiers. Les destinations de système tierces s'intègrent avec des outils de notification populaires, notamment Slack, PagerDuty, Microsoft Teams et les webhooks HTTP. Un administrateur doit configurer les destinations système.
Certains systèmes externes, tels qu'Amazon SES et SNS, peuvent s'intégrer à l'aide de notifications par e-mail. Consultez Configuration de la réception des e-mails Amazon SES.
Pour configurer les destinations système, accédez à la page des paramètres d'administration, cliquez sur Modifier les notifications système , puis cliquez sur Créer une nouvelle destination . Pour chaque Job ou tâche, vous pouvez configurer un maximum de trois destinations système pour chaque type d'événement de notification. Consultez la page des paramètres d'administration.
Le contenu des messages Slack et Microsoft Teams peut changer dans les futures versions. Vous ne devez pas implémenter de clients ou de traitements qui dépendent du contenu ou du formatage spécifique de ces messages. Si vous avez besoin d'un schéma ou d'un formatage spécifique pour les notifications, Databricks recommande de configurer un webhook défini par l'utilisateur.
Configurer les notifications sur un Job
Avant de commencer, considérez ce qui suit :
- Les notifications au niveau du job ne sont pas envoyées lorsque les tâches échouées sont relancées. Pour recevoir une notification d'échec après chaque tâche échouée, utilisez plutôt les notifications de tâche. Pour ajouter des notifications pour les exécutions de tâches, cliquez sur Ajouter à côté de **Notifications** dans le volet des tâches lorsque vous ajoutez ou modifiez une tâche de job.
- Pour chaque Job ou tâche, vous pouvez configurer un maximum de trois destinations système pour chaque type d'événement de notification.
- Un Job qui a été terminé dans un état Réussi malgré des échecs est considéré comme étant dans un état de réussite. Pour être informé lorsque les Jobs sont terminés dans cet état, vous devez sélectionner Succès lorsque vous configurez les notifications.
- Pour être informé lorsque votre Job dépasse une durée limite, vous devez définir la limite. Consultez Configurer les notifications pour les Jobs lents.
Pour ajouter ou modifier des notifications sur un Job, vous avez besoin de l'autorisation CAN MANAGE ou IS OWNER sur le Job. Voir Contrôler l'accès à un Job.
Pour ajouter une ou plusieurs notifications lorsqu'un Job démarre, est terminé ou échoue, procédez comme suit :
- Dans le volet Détails du Job de votre Job, faites défiler jusqu'à la section Notifications du Job , puis cliquez sur Modifier les notifications .
- Dans le coin inférieur gauche, cliquez sur Ajouter une notification .
- Dans Destination , sélectionnez Adresse e-mail ou une destination système.
- Cochez les cases correspondant à chaque type d'événement pour lequel vous souhaitez être averti : start , réussite , échec , avertissement de durée ou retard de streaming .
- Pour configurer une autre destination, cliquez de nouveau sur Ajouter une notification et suivez les étapes précédentes.
- Après avoir configuré toutes les notifications, cliquez sur Enregistrer .
Pour supprimer une notification, cliquez sur Modifier les notifications , cliquez sur à côté de la notification, puis cliquez sur Enregistrer .
Configurez les notifications pour les Jobs lents
Si vous avez configuré une durée prévue pour un Job, vous pouvez ajouter une notification par e-mail ou système si le Job ou la tâche dépasse le threshold configuré. Pour recevoir une notification pour un Job ou une tâche qui dépasse un duration threshold, sélectionnez Avertissement de durée lorsque vous ajoutez ou modifiez une notification. Pour recevoir une notification pour un Job ou une tâche qui dépasse une métrique de backlog de streaming, sélectionnez **Backlog de streaming** lorsque vous ajoutez ou modifiez une notification.
Ce qui suit s'applique aux métriques de backlog de streaming :
- Les notifications sont envoyées lorsque le backlog moyen sur une période de 10 minutes dépasse le threshold défini.
- Afin d'éviter les messages excessifs, Databricks attend 30 minutes avant de décider s'il convient d'envoyer un autre message. Tant que l'arriéré reste élevé, vous recevrez des mises à jour à des intervalles de 30 minutes.
Les notifications de backlog de streaming exigent que le service Jobs puisse suivre la query de streaming active. N’utilisez pas awaitTermination() dans les Jobs. Consultez Quand utiliser awaitTermination().
Filtrer les notifications pour les exécutions ignorées ou annulées
Vous pouvez réduire le nombre de notifications envoyées en filtrant les notifications lorsqu'une exécution est ignorée ou annulée. Pour filtrer les notifications, sélectionnez Désactiver les notifications pour les exécutions ignorées ou Désactiver les notifications pour les exécutions annulées lorsque vous ajoutez ou modifiez des notifications par e-mail ou des notifications système.
Par default, les tâches sont relancées trois fois avant d’échouer complètement. Lors de la configuration des notifications de tâche, vous pouvez sélectionner Désactiver les notifications jusqu’à la dernière tentative pour filtrer toutes les notifications jusqu’à la dernière tentative.
Lorsque vous sélectionnez Désactiver les notifications pour les exécutions ignorées ou Désactiver les notifications pour les exécutions annulées pour un Job, cela ne filtre pas les notifications configurées pour les tâches du Job. Pour filtrer toutes les notifications relatives aux exécutions ignorées ou annulées, vous devez également filtrer toutes les notifications de niveau tâche que vous avez configurées.
Charges utiles de webhooks HTTP
Vous pouvez configurer l'envoi de webhooks HTTP sur les événements répertoriés dans le tableau suivant.
Code de type d'événement | Quand est-il envoyé ? |
|---|---|
| Envoyé quand une exécution start. |
| Envoyé lorsqu'une exécution s'arrête et est terminée dans un état de réussite ou de réussite malgré des échecs. |
| Envoyé lorsqu'une exécution s'arrête dans un état d'échec. |
| Envoyé lorsqu'une exécution dépasse le threshold de durée configuré. |
Voici des exemples de charges utiles envoyées par Databricks à votre Endpoint configuré. Ces webhooks peuvent être appliqués aux Jobs ou aux tâches.
Notification pour un événement de start d'exécution de Job :
{
"event_type": "jobs.on_start",
"workspace_id": "your_workspace_id",
"run": {
"run_id": "run_id"
},
"job": {
"job_id": "job_id",
"name": "job_name"
}
}
Notification pour un événement de start d'exécution de tâche :
{
"event_type": "jobs.on_start",
"workspace_id": "your_workspace_id",
"task": {
"task_key": "task_name"
},
"run": {
"run_id": "run_id_of_task",
"parent_run_id": "run_id_of_parent_job_run"
},
"job": {
"job_id": "job_id",
"name": "job_name"
}
}
Notification d'échec d'exécution de job :
{
"event_type": "jobs.on_failure",
"workspace_id": "your_workspace_id",
"run": {
"run_id": "run_id"
},
"job": {
"job_id": "job_id",
"name": "job_name"
}
}
Notification pour un succès d'exécution de tâche :
{
"event_type": "jobs.on_success",
"workspace_id": "your_workspace_id",
"task": {
"task_key": "task_name"
},
"run": {
"run_id": "run_id_of_task",
"parent_run_id": "run_id_of_parent_job_run"
},
"job": {
"job_id": "job_id",
"name": "job_name"
}
}