Rollbar 对 rails 性能的影响

Rollbar impact on rails performance

rollbar 会影响 rails 应用程序性能吗? 从开发和质量的角度来看,它非常有用。但是我担心生产性能。

Rollbar 将对应用程序性能产生不同的影响,具体取决于您如何配置它以及您的应用程序报告错误的频率。

默认情况下,Rollbar 同步发送错误数据,API 的典型响应时间为 10 秒到低 100 毫秒。

为了尽量减少对性能的影响,您可以使用以下选项之一将 Rollbar 配置为 异步发送数据

girl_friday

config/initializers/rollbar.rb中添加以下内容:

config.use_async = true

如果未安装 girl_friday,则异步报告回退到线程。

sucker_punch

config/initializers/rollbar.rb中添加以下内容:

config.use_sucker_punch

Sidekiq

在config/initializers/rollbar.rb中添加以下内容:

config.use_sidekiq

默认的 Sidekiq 队列是 rollbar,但您也可以提供自定义的 Sidekiq 选项:

config.use_sidekiq 'queue' => 'default'

您还需要将队列名称添加到您的 sidekiq.yml

:queues:
- default
- rollbar

启动redis服务器:

$ redis-server

从您的 Rails 应用程序的根目录启动 Sidekiq 并声明您的队列名称。除非您另行配置,否则队列名称为 rollbar:

$ bundle exec sidekiq -q rollbar

对于每个错误作业,都会向 Rollbar API 发送一份新报告,对于错误重试的作业也是如此。您可以配置重试阈值以开始向 rollbar 报告:

config.sidekiq_threshold = 3 # Start reporting from 3 retries jobs

重新请求

config/initializers/rollbar.rb中添加以下内容:

config.use_resque

您还可以提供自定义 Resque 队列:

config.use_resque :queue => 'my_queue'

现在您可以在该队列中启动一个新的 Resque worker 处理作业:

$ QUEUE=my_queue bundle exec resque:work

延迟作业

config/initializers/rollbar.rb中添加以下内容:

config.use_delayed_job

线程

config/initializers/rollbar.rb中添加以下内容:

config.use_thread

可用选项的完整详细信息在 rollbar-gem docs