12

Rails サーバーを起動しようとすると、次のエラーが表示されます。

ルビー1.9.2を使用しています

 => Booting WEBrick 
 => Rails 3.1.8 application starting in development on http://0.0.0.0:3000
 => Call with -d to detach
 => Ctrl-C to shutdown server
/Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/newrelic_rpm-3.4.2/lib/new_relic/agent/agent.rb:318:in `log_app_names': undefined method `join' for nil:NilClass (NoMethodError)
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/newrelic_rpm-3.4.2/lib/new_relic/agent/agent.rb:439:in `start'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/newrelic_rpm-3.4.2/lib/new_relic/control/instance_methods.rb:95:in `start_agent'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/newrelic_rpm-3.4.2/lib/new_relic/control/instance_methods.rb:83:in `init_plugin'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/newrelic_rpm-3.4.2/lib/newrelic_rpm.rb:36:in `block in <class:Railtie>'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/initializable.rb:30:in `instance_exec'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/initializable.rb:30:in `run'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/initializable.rb:55:in `block in run_initializers'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/initializable.rb:54:in `each'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/initializable.rb:54:in `run_initializers'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/application.rb:96:in `initialize!'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/railtie/configurable.rb:30:in `method_missing'
from /Users/toptier/Desktop/Proyectos/CursoIngles/config/environment.rb:5:in `<top (required)>'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/activesupport-3.1.8/lib/active_support/dependencies.rb:240:in `require'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/activesupport-3.1.8/lib/active_support/dependencies.rb:240:in `block in require'

次の gem を使用しています: newrelic_rpm (3.4.2)。gemfile の newrelic 行にコメントを付けるとうまくいきます。

何か案が?

4

4 に答える 4

10

私は New Relic で働いており、問題を突き止めました。

これは、nilがアプリ名として明示的に設定されている場合に発生します。これは通常、 からアプリ名を取得する heroku アプリのローカル開発で発生しますENV["NEW_RELIC_APP_NAME"]。通常、この環境変数はローカル dev ボックスでは設定されないため、エージェントの構成に nil として入り、ローカル サーバーをクラッシュさせます。この変数が設定されているアプリのデプロイされたバージョンには影響しません。

明らかに、エージェントはこのケースを適切に処理する必要があり、翌日か 2 日以内にパッチを適用します。エージェントの構成の主要なリファクタリングを完了したところですが、このエッジ ケースは内部テストで見落とされていました。

etoleb は、コメントで適切な回避策を示しています。このような頭痛の種をおかけして、誠に申し訳ございません。

ご質問やご不明な点がございましたら、sam@newrelic.com まで直接メールでお問い合わせください。

ありがとう!

于 2012-09-10T22:37:39.190 に答える
3

app_nameこの問題は、newrelic 構成で設定が空白になっていることに関連しているようです。個人的には、Heroku のインストールを行いました (構成が異なる場合があります) が、これは私が行ったことです。

( https://gist.github.com/2253296config/newrelic.ymlからコピー)内で、行を削除しました

  app_name: <%= ENV["NEW_RELIC_APP_NAME"] %>

common構成(私にとっては35行目)からproduction構成(私にとっては247行目の後)に、次のようになります

production:
  <<: *default_settings
  monitor_mode: true
  app_name: <%= ENV["NEW_RELIC_APP_NAME"] %>
于 2012-09-10T19:15:45.043 に答える
3

責任感のある方からの返信嬉しいです!よくやった、New Relic。ありがとう、@サムグ。

この問題は、gem をダウングレードしたり、構成ファイルをいじったりするのではなく、env 値がゼロであるため、環境変数を追加しただけです。

heroku の設定を簡単に確認できます。

$ heroku config
  ...
NEW_RELIC_APP_NAME:    my_app_name
NEW_RELIC_ID:          123456
NEW_RELIC_LICENSE_KEY: 982987ae987987af98798something7e897987987c7b9d7
NEW_RELIC_LOG:         stdout
 ...

次に、プロジェクトの .rvmrc ファイルを介してローカル環境変数を設定することを選択しました。

rvm use ruby-1.9.2-p290@ConTracker --create
export PATH=bin:$PATH
export NEW_RELIC_APP_NAME=my_app_name

その後、私のプロジェクトcd ..cd戻って、バージョン 3.4.2 の gem で作業していました。

パーティー!

于 2012-09-11T05:39:35.013 に答える
1

コメントありがとうございます。答えは、3.4.1 にダウングレードすることです。

于 2012-09-08T21:13:07.763 に答える