Problème
Vous utilisez New Relic Ruby APM et Unicorn ensemble, mais les nombres de métriques et d'événements personnalisés semblent trop faibles.
Solution
Demandez à Unicorn d'appeler manuellement NewRelic::Agent.shutdown
pour exécuter les gestionnaires de sortie de l'agent. Certaines méthodes de sortie d'Unicorn empêchent l'agent de s'arrêter comme prévu. Le changement ci-dessous exécute la méthode d'arrêt de New Relic avant de tuer le processus Unicorn.
Ce correctif s'appuie sur le fork de @expectedbehavior du gem unicorn-worker-killer.
Ajoutez ceci à votre Gemfile en utilisant :
gem 'unicorn-worker-killer', git: 'https://github.com/expectedbehavior/unicorn-worker-killer'Si vous utilisez déjà
unicorn-worker-killer
dans votre Gemfile, mettez à jour la référence pour utiliser ce fork.Paquet:
bash$bundle installMettez à jour la configuration de votre licorne pour inclure :
require "unicorn/worker_killer"::Unicorn::WorkerKiller.configure do |config|config.before_kill do |signal|::NewRelic::Agent.increment_metric("Custom/UnicornWorkerBeforeKillSignal/#{signal}")::NewRelic::Agent.shutdownendendRedémarrez votre serveur