使用 Rack::Timeout 时的 NewRelic 报告

Kri*_*fer 5 ruby rack sinatra newrelic

我们运行在一个环境(Heroku)中,超过 30 秒的请求将被中断。因此,我们的 Web 服务器 (Unicorn) 设置为 15 秒后中止。我们注意到,当请求被中断时,NewRelic 中似乎不会记录任何信息。

关于如何解决这个问题有什么建议吗?我的第一个想法是使用 Rack::Timeout 让 Rack 取消请求。这可以与 newrelic_rpm 一起使用吗?newrelic 是在中间件链的哪个位置注入的?

我们正在使用 Sinatra 运行 Ruby 1.9.3。

先感谢您!

rkb*_*rkb 2

您应该能够使用 Rack::Timeout 并让 New Relic 将生成的异常报告为错误。

Unicorn 超时导致工作线程被杀死,其中包括 New Relic 报告线程。