2016-10-06 5 views
0

Ich möchte mein Skript in einem Cron-Job ausführen. Dieses Skript erstellt mehrere Que-Jobs, die die harte Arbeit erledigen. Wie kann ich die Aktivität jedes Jobs in einem neuen Relikt verfolgen?Wie verfolgen Sie Que-Jobs in newrelic?

Ich habe diesen Beitrag https://blog.newrelic.com/2012/05/30/using-new-relic-to-monitor-ruby-background-tasks/ darüber gelesen, wie man Cronjobs verfolgt, aber da der Que-Job in seinem eigenen Arbeiter verwaltet wird (ich benutze Puma), wird es nicht verfolgt.

Dies ist ein Beispiel-Skript, das es zu tun versucht (aber es hat nichts Spuren):

class NewrelicTest 

    def run 
    Order.all.find_each do |order| 
     Job.enqueue(order.id) 
    end 
    end 

    class Job < Que::Job 
    include NewRelic::Agent::Instrumentation::ControllerInstrumentation 

    def run(id) 
     order = Order.find(id) 
     do_heavy_work_here(order) 
    end 

    add_transaction_tracer :run, :category => "OtherTransaction/cronjobs" 
    end 
end 

NewRelic::Agent.manual_start :app_name => "Background Jobs" 
NewrelicTest.new.run 

Danke

Antwort

0

Ihr Skript mir gut aussieht, aber doesn New Relic‘ t Unterstützung Que out of the box.

Zumindest scheint es nicht auf der Liste der offiziell unterstützten Frameworks in ihren Dokumenten aufgeführt zu sein. Das könnte erklären, warum Sie nicht die Daten erhalten, die Sie benötigen.

Ich würde definitiv die Möglichkeit der "benutzerdefinierten Instrumentierung" suchen, um dies zu erreichen. Ruby-Agent New Relic API kann angepasst werden, um zu sammeln/trace zusätzliche Kennzahlen:

https://docs.newrelic.com/docs/agents/ruby-agent/features/ruby-custom-instrumentation

Ich werde auch hinzufügen (der Link unten) ist ein guter Anfang, wenn ein Hintergrundrahmen wird nicht von New Relic mit:

https://docs.newrelic.com/docs/agents/ruby-agent/background-jobs/monitoring-ruby-background-processes-daemons

Hoffnung, die Sie näher kommt.

Verwandte Themen