問題
Unicornでデータが表示されない場合は、お使いのNew Relic Rubyエージェントのバージョンに応じて、以下の手順を行ってください。
解決策
Ruby エージェントのバージョン 3.8.0 以上を使用している場合は、追加の設定は必要ありません。 サポートされているウェブフレームワーク を使用している場合、Unicorn の設定にかかわらず、エージェントはすぐに動作するはずです。
Rubyエージェントのバージョン 3.8.0 より前のものをUnicornで使用している場合、データレポートを取得するためには以下のいずれかを行う必要があります。
前述の通り、newrelic_rpm gemのバージョン3.8.0以降であれば、unicornの設定に関わらず自動的に正しく動作するはずです。
preload_app true
ディレクティブをUnicornの設定ファイルで使用します。詳細については、この構成設定に関する Unicorn の ドキュメントを参照してください 。 -c<path>
オプションを unicorn
の起動時に指定することで、Unicornが設定ファイルを見ていることを確認する必要があります(Herokuユーザーの場合)。これは、 Procfile
に記載されています。)
ヒント
ディレクティブは `preload_app true` であり、`preload_app = true` ではありません。等号の付いたフォームは静かに失敗します。
preload_app true
を使用したくない場合は、 config/initializers`
にあるイニシャライザファイルから、New Relic Ruby エージェントのウェブサーバーをフォークするハンドラを手動で呼び出すことができます。
# Ensure the agent is started using Unicorn.
# This is needed when using Unicorn and preload_app is not set to true.
# See https://docs.newrelic.com/docs/ruby/no-data-with-unicorn
if defined?(Unicorn) && File.basename($0).start_with?('unicorn')
::NewRelic::Agent.manual_start()
::NewRelic::Agent.after_fork(:force_reconnect => true)
変更を有効にするには、"clean" restart (full stop and start)を行ってください。 SIGUSR2
で通常のUnicornの再起動を行うと、gemが正しく初期化されないことがあります。