帮助!我最近开始在我的Ruby应用程序中实现Sidekiq(https://github.com/mperham/sidekiq)。我没有注意到特定的性能下降。但是在New Relic中,在我的监控页面上,似乎对我的概览图有一个额外的影响,它显示数据库时间刚刚超过整个应用程序响应时间层。
澄清:在我上次部署之后,我的概述图突然显示没有Ruby时间和一大堆数据库时间,但我的数据库使用没有改变,我确信我的应用程序正在提供Web请求。什么可能导致这种情况?答案 0 :(得分:3)
此问题的最常见原因是,没有直接为Web请求提供服务的后台作业(例如Resque,Sidekiq,DelayedJob或其他手动检测的脚本,如rake任务)正由New Relic代理使用相同的应用程序进行检测将其命名为Web应用程序。发生这种情况时,后台任务使用的数据库时间将与Web应用程序中的指标结合使用。
最简单的解决方案通常是将后台任务与主应用程序分开,方法是让它们以不同的应用程序名称进行报告。您可以通过在启动后台工作程序时将NEW_RELIC_APP_NAME
环境变量设置为自定义应用程序名称来执行此操作。
在Heroku上,您可以通过将NEW_RELIC_APP_NAME='<your name> (background)'
添加到用于在Procfile中启动后台工作程序的命令来执行此操作。在其他环境中,您可以类似地编辑用于启动后台工作程序的命令。
答案 1 :(得分:0)
我认为New Relic不适用于SideKiq。