7
votes

Comment surveiller les travailleurs de ratif dans la nouvelle relique lors de la course à Heroku?

Nous avons une application qui exécute des travailleurs de ratification sur Heroku. Nous avons installé le nouveau complément de la relique, et selon le DOCS Le nouvel agent de relique devient des travailleurs de redressement automatique des instruments. Cependant, nous ne voyons aucune sortie sur l'onglet "Emplois de fond" sur le nouveau tableau de bord de la relique.

Selon le même docs , nous avons fait 'T Appuyez sur le fichier newrelic.yml . Nous ne sommes pas sûrs de ce qui ne va pas, ni comment déboguer cela efficacement. Que devons-nous faire?


1 commentaires

Dans les journaux des travailleurs de votre resque, voyez-vous l'agent NewRelic Connecting?


3 Réponses :


4
votes

J'avais le même problème car le nouvel agent relique n'était pas à partir de mes ouvriers. J'ai donc mis à jour mon CréQue: Configuration Code> Tâche Rake sur Démarrez l'agent manuellement :

task "resque:setup" => :environment do
  if ENV['NEW_RELIC_APP_NAME']
    NewRelic::Agent.manual_start :app_name => ENV['NEW_RELIC_APP_NAME']
  end
end  


1 commentaires

Oui, si vous installez le nouveau complément de la relicieuse Heroku, le env [Name_relic_app_name ']] La variable doit être automatiquement définie pour vous.



1
votes

Essayé @Trliner Suggestion mais je garde cette erreur:

heroku config:set NEWRELIC_ENABLE=true


3 commentaires

C'est étrange que ma réponse ne fonctionnait pas pour vous, mais je pense que j'aime mieux votre solution de toute façon. Par curiosité, quelle pile heroku êtes-vous sur?


J'ai accepté trop tôt. Cela n'a pas fait l'affaire. Le nouvel agent de relique a également des instruments automatiques rares. Nous voyons des événements envoyés lorsque nous signalons les machines DEV vers les mêmes informations d'identification NR que l'instance Heroku. Cependant, une fois le code déployé, il n'enverra pas d'événements ...


cette solution a fonctionné pour moi, mais je n'ai eu aucun des trucs avant_fork ou après ...



11
votes

Il s'est avéré que notre problème a été causé par la présence de notre propre resque.before_fork code> et resque.after_fork code> gestionnaires.

Le gemme RPM de NewRelic configurera automatiquement des crochets Avec resque.be_fork code> et resque.after_fork code> pour établir un canal de communication pour les travailleurs. En tant que limitation de la race, il ne fonctionne que le dernier bloc / procédé attribué à l'avant_fork et après les crochets. Donc, si vous avez votre propre coutume avant_fork / After_fork Hooks, vous * devez * configurer le canal de communication de l'agent à la main, par exemple. Dans un fichier de configuration / initialiseurs / personnalisé_resque.rb: p>

Resque.before_fork do |job|
  NewRelic::Agent.register_report_channel(job.object_id)

  # extra custom stuff here
end
  
Resque.after_fork do |job|
  NewRelic::Agent.after_fork(:report_to_channel => job.object_id)

  # extra custom stuff here
end


5 commentaires

Je travaille pour une nouvelle relique, et cela est complètement correct. Nous mettrons à jour la documentation pour rendre cela plus clair à l'avenir. Merci pour le travail de la découverte.


Nous avons un doc décrit ici les crochets avant_fork / après_fork ici: NewRelic.com/docs/Ruby / Resque-Instrumentation concernant la fuite de descripteur de fichier - il est en réalité sans rapport avec la fonctionnalité de plan expliquant et ne se produit que dans certaines conditions, mais je pense que nous le comprenons maintenant et travaille sur une solution.


Juste une note sur la mise à jour des bogues 1/28/2013: nous avons été en contact avec un nouveau support de relique à ce sujet et dit que cela prendra du temps jusqu'à ce qu'ils aient un nouveau gemme qui corrige le problème. Entre-temps, vous pouvez contourner le problème de monkeyyPatching n'importe quel endroit qui soulève un Resque :: Job :: Dontperform Pour appeler NewRelic :: Agent.shutdown juste avant l'exception soulevé.


Suite de la mise à jour de bogue: nous avons maintenant corrigé le problème avec resque-lonely_job , à la version 3.6.0 de l'agent 3.6.0.


Je peux confirmer que; La dernière mise à jour de la nouvelle relique GEM corrige cela. Merci nouvelle relique pour être réactif à ce sujet!