我们的团队有许多流程,我们手动运行,但可能会运行很多天.这些过程会对大量实体(网页,数据库行,图像,文件等)执行各种操作.显然有时会出现故障,我们必须设计或处理以优雅地处理这些故障并继续前进,这样整个工作就不会失败.
根据所讨论的特定过程,故障的发生率,严重程度和紧急程度会有所不同.在某些情况下,我们会在发生罕见但重要的错误时发送电子邮件,在其他情况下,我们只需记录并继续,依此类推.
问题是我们有不同的错误处理代码分散在各处,而且当我们"记录并继续"时,没有人回过头来读取日志,因此没有人知道发生了什么问题.我们不能默认发送所有问题的电子邮件,因为只会有太多的电子邮件.
这些是长时间运行的进程,但不是守护程序,如SNMP或Nagios之类的东西可能是合适的.当然这是一个相当普遍的问题,但我似乎无法在网上找到很多解决方案.我听说有人在谈论使用log4j(或其他类似的日志包)来登录数据库等,这似乎可能是朝着正确方向迈出的一步,但是现在肯定还有更复杂的解决方案. ?我正在想象你的记录器将事件写入数据库的东西,并且有一个类似Nagios的Web界面,可以让你看到实时的哪些进程发生了什么错误,以及为特定模式配置电子邮件警报等.
这样的事情存在吗?如果没有,您用什么方法成功处理类似的问题?
(对于我们的大部分代码库都是在python中值得的,但我想这个想法的任何体面实现都基本上是非语言特定的,显然任何概念解决方案都是如此).
更新:我只是花了一些时间看Chainsaw,这是我正在寻找的东西,但我希望它是一个webapp而不是桌面应用程序,并具有警报功能.
更新:我刚刚发现了hoptoadapp和例外,它们都与我的想法有所不同,尽管两者都是专门针对Rails的.