문제
New Relic Ruby APM과 Unicorn을 함께 사용하고 있지만 지표 및 사용자 지정 이벤트의 수가 너무 적은 것 같습니다.
해결책
Unicorn이 NewRelic::Agent.shutdown
수동으로 호출하여 에이전트의 종료 핸들러를 실행하도록 합니다. Unicorn의 종료 방법 중 일부는 에이전트가 예상대로 종료되지 않도록 합니다. 아래 변경 사항은 Unicorn 프로세스를 종료하기 전에 New Relic의 종료 방법을 실행합니다.
이 수정은 @expectedbehavior의 unicorn-worker-killer gem포크에 의존합니다.
다음을 사용하여 이것을 Gemfile에 추가하십시오.
gem 'unicorn-worker-killer', git: 'https://github.com/expectedbehavior/unicorn-worker-killer'Gemfile에서 이미
unicorn-worker-killer
사용하고 있다면 이 포크를 사용하도록 참조를 업데이트하세요.묶음:
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서버를 다시 시작하십시오