Notre équipe a un certain nombre de processus que nous exécutons manuellement mais qui peuvent fonctionner pendant plusieurs jours. Les processus font diverses choses pour un grand nombre d'entités (pages Web, lignes de base de données, images, fichiers, etc.). Évidemment, de temps en temps, il y a des échecs et nous devons concevoir ou traiter ces défaillances de manière gracieuse et passer à autre chose afin que tout le travail ne soit pas éliminé.Quelles sont les meilleures pratiques pour le suivi des avertissements/erreurs dans les processus de longue durée?
Selon le processus particulier en question, le taux, la gravité et l'urgence des pannes varie. Dans certains cas, nous envoyons des e-mails lorsqu'une erreur rare mais importante se produit, dans d'autres cas, nous l'enregistrons et passons à autre chose, et ainsi de suite. Le problème est que nous avons différents codes de gestion des erreurs dispersés partout et plus souvent qu'autrement lorsque nous "enregistrons et passons" personne ne retourne jamais et lit les journaux, donc personne ne sait jamais quels problèmes se sont produits. Nous ne pouvons pas par défaut envoyer un e-mail pour tous les problèmes car il y aurait simplement trop de courriels.
Ce sont des processus de longue durée, mais pas des démons où quelque chose comme SNMP ou Nagios peut sembler un bon ajustement. Sûrement c'est un problème assez commun mais je n'arrive pas à trouver beaucoup de solutions en ligne. J'ai entendu des gens parler d'utiliser log4j (ou d'autres paquets de journalisation similaires) pour se connecter à une base de données, etc., ce qui semble être un pas dans la bonne direction, mais il existe sûrement des solutions plus sophistiquées. ? J'imagine quelque chose où votre enregistreur écrit des événements dans une base de données et une interface Web de type Nagios qui vous permet de voir quelles erreurs se produisent avec quels processus en temps réel ainsi que de configurer des alertes par email pour des motifs spécifiques.
Est-ce que quelque chose comme ça existe? Si non, quelles approches avez-vous utilisées pour traiter avec succès des problèmes similaires?
(Pour ce que ça vaut le plus de notre base de code est en python mais j'imagine que toutes les implémentations décentes de cette idée sont largement non spécifiques à l'angulation et évidemment toutes les solutions conceptuelles seraient aussi bien).
Mise à jour: Je viens de passer du temps à regarder la tronçonneuse, ce que je cherche, mais j'aimerais que ce soit une webapp au lieu d'une application de bureau et des fonctionnalités d'alerte.
Mise à jour: Je viens de découvrir hoptoadapp et exceptional qui sont à la fois un peu dans le sens de ce que je pensais, bien que les deux Rails cible spécifiquement.