問題
New Relic Ruby APM と Unicorn を一緒に使用していますが、メトリクスとカスタム イベントの数が少なすぎるようです。
解決
Unicorn に手動で NewRelic::Agent.shutdown を呼び出して、エージェントの終了ハンドラーを実行させます。Unicorn の終了メソッドの一部が原因で、エージェントが期待どおりにシャットダウンされません。以下の変更は、Unicorn プロセスを強制終了する前に、New Relic のシャットダウン メソッドを実行します。
この修正は 、unicorn-worker-killer gemの@expectedbehaviorのフォークに依存しています。
- 以下を使用して、これを Gemfile に追加します。 gem 'unicorn-worker-killer', git: 'https://github.com/expectedbehavior/unicorn-worker-killer'- unicorn-worker-killerGemfile で既に使用している場合は、参照を更新してこのフォークを使用してください。
- バンドル: bash$bundle install
- ユニコーン構成を更新して、以下を含めます。 require "unicorn/worker_killer"::Unicorn::WorkerKiller.configure do |config|config.before_kill do |signal|::NewRelic::Agent.increment_metric("Custom/UnicornWorkerBeforeKillSignal/#{signal}")::NewRelic::Agent.shutdownendend
- サーバーを再起動します