我在本地开发环境中尝试安装 newrelic。以下是我尝试过的 gem 版本列表:
- newrelic_rpm-8.1.0
- newrelic_rpm-8.4.0
- newrelic_rpm-8.8.0
- newrelic_rpm-8.12.0
- newrelic_rpm-8.13.0
- newrelic_rpm-8.13.1
- newrelic_rpm-8.14.0
- newrelic_rpm-8.15.0
- newrelic_rpm-9.0.0
- newrelic_rpm-9.2.2
使用 d/rails s 安装 gem 后,会返回类似以下的错误:
/home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-9.0.0/lib/new_relic/agent/transaction/datastore_segment.rb:34:in `set_instance_info': **stack level too deep (****SystemStackError****)**
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-9.0.0/lib/new_relic/agent/transaction/datastore_segment.rb:26:in `initialize'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-9.0.0/lib/new_relic/agent/tracer.rb:299:in `new'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-9.0.0/lib/new_relic/agent/tracer.rb:299:in `start_datastore_segment'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-9.0.0/lib/new_relic/agent/instrumentation/redis/instrumentation.rb:46:in `with_tracing'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-9.0.0/lib/new_relic/agent/instrumentation/redis/instrumentation.rb:17:in `call_with_tracing'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-9.0.0/lib/new_relic/agent/instrumentation/redis/prepend.rb:17:in `call'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/rack-mini-profiler-3.1.0/lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-9.0.0/lib/new_relic/agent/instrumentation/redis/prepend.rb:17:in `block in call'
... 9348 levels...
from /src/bin/unicorn:96:in `load'
from /src/bin/unicorn:96:in `block in <main>'
from /src/bin/unicorn:95:in `fork'
from /src/bin/unicorn:95:in `<main>'
或者对于旧版本(<=8)的错误是这样的:
/home/discourse/.bundle/gems/ruby/3.2.0/gems/activesupport-7.0.4.3/lib/active_support/core_ext/numeric/deprecated_conversions.rb:6:in `to_s': stack level too deep (SystemStackError)
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-8.12.0/lib/new_relic/agent/transaction/datastore_segment.rb:34:in `set_instance_info'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-8.12.0/lib/new_relic/agent/transaction/datastore_segment.rb:26:in `initialize'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-8.12.0/lib/new_relic/agent/tracer.rb:298:in `new'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-8.12.0/lib/new_relic/agent/tracer.rb:298:in `start_datastore_segment'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-8.12.0/lib/new_relic/agent/instrumentation/redis/instrumentation.rb:35:in `with_tracing'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-8.12.0/lib/new_relic/agent/instrumentation/redis/instrumentation.rb:18:in `call_with_tracing'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-8.12.0/lib/new_relic/agent/instrumentation/redis/prepend.rb:11:in `call'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/rack-mini-profiler-3.1.0/lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'
... 9517 levels...
from /src/bin/unicorn:96:in `load'
from /src/bin/unicorn:96:in `block in <main>'
from /src/bin/unicorn:95:in `fork'
from /src/bin/unicorn:95:in `<main>'