ruby - Sidekiq 正在提升我在 New Relic 中的性能监控

标签 ruby heroku newrelic sidekiq

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

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

最佳答案

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

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

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

关于ruby - Sidekiq 正在提升我在 New Relic 中的性能监控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16424457/

相关文章:

Ruby 查找所有常量

sql - Heroku Postgres 上 SQL 查询中的字符串比较

Heroku 登录错误 : self signed certificate in certificate chain

performance - Newrelic intrumentation 减慢了 Grails 服务的初始化速度

newrelic - INNER_SELECT - SELECT 是什么意思?

ruby - 从 Ruby 类返回对象

ruby - 将方法作为参数传递

ruby - 拆分字符串并分配给不同的变量

azure - 如何在 NewRelic 中监视 Azure 辅助角色?

php - Heroku 连接到 RDS MySQL 时出现连接超时错误