Cette note couvre la configuration spécifique à Elementary pour contrôler la génération des alertes — intervalles de suppression, regroupement, réduction du contenu et contrôles d’échantillonnage. dbt Test Alert Routing and Ownership couvre le côté organisationnel : router les alertes vers les bonnes personnes et maintenir la suite de tests bien organisée.
Intervalles de suppression
La source la plus courante de fatigue aux alertes est un test qui reste en échec. Si un problème de qualité des données ne peut pas être résolu immédiatement — peut-être que le système source est dégradé, ou que le correctif nécessite une coordination avec une autre équipe — edr monitor enverra la même alerte à chaque exécution. Pour un pipeline s’exécutant toutes les heures, cela représente 24 alertes par jour pour un seul problème.
alert_suppression_interval définit un délai minimum entre les alertes pour le même test en échec :
meta: alert_suppression_interval: 24 # heuresAvec ce paramètre, un test qui échoue à 9h n’alertera pas à nouveau avant 9h le lendemain, peu importe le nombre d’exécutions entre-temps. La première alerte est toujours envoyée ; les suivantes sont retenues jusqu’à expiration de l’intervalle.
Configurable au niveau du test, du modèle ou du projet. Des valeurs par défaut à l’échelle du projet sont judicieuses pour une politique globale :
models: your_project: +meta: alert_suppression_interval: 12Les modèles individuels peuvent surcharger ce paramètre avec un intervalle plus court ou plus long selon leur sensibilité. Un modèle de revenus nécessitant une attention immédiate à chaque échec pourrait avoir un intervalle d’1 heure. Un modèle de backfill susceptible de montrer des anomalies pendant une migration pourrait avoir un intervalle de 48 heures.
Regroupement des alertes
Les échecs en cascade sont particulièrement bruyants. Lorsqu’une source en amont tombe, chaque modèle qui en dépend échoue. Sans regroupement, on reçoit une alerte par test en échec — potentiellement des dizaines de messages pour une seule cause racine.
edr monitor --group-by tableAu lieu de 10 alertes séparées pour 10 tests en échec sur la même table, on reçoit un message listant tous les échecs. L’alerte fournit toujours toutes les informations nécessaires, mais le canal n’est pas saturé de messages quasi-identiques.
Il est possible de définir un seuil pour contrôler le déclenchement du regroupement :
edr monitor --group-alerts-threshold 5En dessous de 5 échecs, les alertes sont envoyées individuellement. Au-dessus de 5, elles sont consolidées en un seul message groupé. Cela préserve le détail des alertes individuelles pour les petits nombres d’échecs tout en prévenant les inondations lors d’incidents plus importants.
Contrôle du contenu des alertes
Tous les champs d’une alerte Elementary n’apportent pas de valeur. Par défaut, les alertes incluent un ensemble standard de métadonnées. Il est possible de réduire cela aux champs réellement utiles pour votre équipe :
meta: alert_fields: ["description", "owners", "tags", "subscribers"]Supprimez les champs qui génèrent du bruit sans aider au triage. Si votre équipe n’utilise jamais le champ « type de ressource » pour prendre des décisions, le retirer réduit l’encombrement visuel et facilite la lecture des champs importants.
Gestion des données sensibles
Par défaut, Elementary inclut des lignes d’exemple des tests en échec dans les alertes Slack. C’est utile pour le débogage — voir que trois lignes ont des valeurs customer_id nulles est plus actionnable que savoir que le test a échoué. Mais pour les tables contenant des données personnelles (PII), envoyer des données d’exemple vers un canal Slack crée un problème de conformité.
Désactiver les exemples globalement :
edr monitor --disable-samplesOu par modèle :
models: - name: mrt__customers__personal_info meta: disable_samples: trueLa configuration par modèle vaut l’effort supplémentaire. La plupart des tables ne contiennent pas de PII, et les données d’exemple sont genuinement utiles pour celles qui n’en contiennent pas. Une désactivation globale perd le bénéfice de débogage pour tout le reste.
Ce qu’ajoute Elementary Cloud
Elementary Cloud résout un problème que l’OSS ne peut pas facilement traiter : le regroupement automatique des incidents entre les exécutions. Lorsqu’un nouvel échec est lié à un incident ouvert — même table, même type de test, même fenêtre temporelle — Cloud le regroupe dans l’incident existant plutôt que d’en créer un nouveau. Les exécutions réussies ferment automatiquement les incidents, évitant ainsi l’accumulation d’un backlog de problèmes ouverts périmés nécessitant un nettoyage manuel.
Pour les équipes exécutant plus de 50 à 100 tests et trouvant que leurs canaux Slack restent bruyants malgré les intervalles de suppression et le regroupement, cette gestion automatisée des incidents est généralement ce qui fait passer l’expérience de « système d’alertes à gérer » à « système d’alertes qui se gère lui-même ».
Le seuil opérationnel à partir duquel la gestion des incidents Cloud justifie son coût par rapport au réglage de la configuration OSS est couvert dans les notes paysage des outils d’observabilité et seuils de mise à l’échelle de l’observabilité des données.