2010-10-24 20 views
3

我们使用Resque在大量机器上运行Ruby工作人员。每过一段时间,我们都会在Resque工作流程中看到分段错误。这很难调试,因为它们非常少见,我们必须运行数以万计的分布式作业才能触发崩溃。在Linux上捕获来自Ruby和Resque的分段故障回溯

理想情况下,我们希望在每次崩溃后捕获回溯和核心文件,并自动将它们上传到中央服务器。换句话说,我们正在寻找诸如Gnome的“Bug Buddy”之类的东西,但是完全自动化并且能够在Ruby解释器转储核心时发现问题。 (类似的基于GUI的产品包括MacOS X Crash Reporter,Windows错误报告,KDE的Konchi博士和Mozilla的Breakpad,但我们需要在无人值守的无人看管服务器上运行的东西。)

到目前为止,似乎是Ubuntu的Apport,它可以拦截服务器进程中的崩溃并将其保存到磁盘。 Apport通常会将崩溃上传到Ubuntu的Launchpad,但它也带有一个Python库。

有没有人有任何建议或使用这些库的第一手经验?我在这里问,而不是在服务器故障,因为解决方案可能涉及编程或代码更改。

+0

您是否可以选择尝试Resque之外的其他功能,比如RabbitMQ? – 2010-10-28 19:40:42

+0

嗨。你有没有找到解决它的工具来捕获段错误? – 2015-01-13 13:51:40

回答

-1

结账Hoptoad,getExceptionalNew Relic。所有的SaaS选项都会为你做到这一点(New Relic也会跟踪性能)。如果您想自己推出,请尝试使用exception_notification宝石。

+0

我们已经有用于捕获Ruby级异常的工具。我们需要工具来捕获Ruby进程本身的分段错误和总线错误。你提出的任何工具是否都这样做?谷歌搜索“Hoptoad分段错误”没有提供任何指示。 – emk 2010-10-28 12:41:53

+0

不,不幸的是,这些需要Ruby解释器仍在运行。对不起,我错过了“分段错误”部分。在这一点上,它不再是一个Ruby问题。服务器故障可能是你最好的选择。 – 2010-10-28 19:38:51