Nous avons des releases de JSP assez fréquentes. Elles n'ont pas d'impact la plupart du temps. Une fois pourtant, on nous signale qu'un candidat n'arrive pas à déposer un fichier. Les logs révèlent que ce n'est pas la première fois mais impossible de savoir à quand cela remonte. En mettant le nez dedans, on se rend compte en plus qu'il y a des deadlocks en série depuis cinq jours, la dernière MEP web. Arf.

Ok, dans un monde de rêve, une erreur dans les logs devrait être un évènement grave, qui mobiliserait toute l'équipe. Dans la réalité, les logs parfaites sont rares et les erreurs "connues" sont monnaie courante.

[05/07/2011 03:41:32.196-http-a-8080-7$21292131] Unable to create account for candidat with email=bonjourMail@joujou.com
</code></p>

C'est ainsi qu'est né le script de monitoring d'erreurs distinctes :

Cette version se contente de compter le nombre d'erreurs dans un fichier de logs.

Comme vous pouvez le voir, les informations de contexte comme les mails et ids, très pratiques pour le débogguage, ont été aplaties afin de pouvoir s'en affranchir dans le comptage des erreurs. En lançant le script sur les logs d'un autre projet, j'ai dû ajouter les abstractions des dates et documents.

Le script a tourné quelques jours sur Hudson pour avoir une idée du seuil d'erreurs. Voici un exemple d'utilisation :

Ce n'est pas parfait mais la boucle de feedback est déjà plus courte. Il y a probablement un peu de tuning à faire en fonction des projets. La prochaine étape serait d'avoir une liste des exceptions connues, que l'on pourrait réduire au fil de l'eau.

Bruno m'a aussi suggéré de le grapher dans Hudson/Jenkins, ce qui effectivement nous épargne d'avoir à cliquer sur la console de chaque job. J'essaierai avec Plot.

Sources + tests ShUnit2.