2

帮助!我最近开始在我的 Ruby 应用程序中实现 Sidekiq ( https://github.com/mperham/sidekiq )。我没有注意到具体的性能下降。但是在 New Relic 中,在我的监控页面上,似乎对我的概览图产生了额外的影响,其中似乎 DB 时间刚刚超过了整个应用程序响应时间层堆栈。

澄清:在我上次部署后,突然我的概览图显示没有 Ruby 时间和一大堆数据库时间,但我的数据库使用没有改变,我确信我的应用程序正在处理 Web 请求。是什么原因造成的?

4

2 回答 2

3

此问题的最常见原因是不直接为 Web 请求提供服务的后台作业(例如 Resque、Sidekiq、DelayedJob 或其他手动检测的脚本,如 rake 任务)正在被具有相同应用程序名称的 New Relic 代理检测为Web应用程序。发生这种情况时,后台任务使用的数据库时间将与来自 Web 应用程序的指标相结合。

最简单的解决方案通常是将后台任务与主应用程序分开,方法是让它们以不同的应用程序名称报告。您可以通过NEW_RELIC_APP_NAME在启动后台工作程序时将环境变量设置为自定义应用程序名称来做到这一点。

在 Heroku 上,您可以通过NEW_RELIC_APP_NAME='<your name> (background)'在 Procfile 中添加用于启动后台工作程序的命令来执行此操作。在其他环境中,您可以类似地编辑用于启动后台工作程序的命令。

于 2013-05-07T22:01:02.720 回答
0

我不认为 N​​ew Relic 与 SideKiq 一起使用。

于 2013-05-07T22:14:57.123 回答