2012-09-26 18 views
25

Rails uygulamasında, doğru API yanıtı vermek için ApplicationController'daki istisnaların çoğunu kurtarıyoruz, ancak yine de ErrorCollector kullanılarak gerçekleşen hataları izlemek istiyoruz. NewRelic'e el ile hata göndermenin bir yolu var mı? kullanımı yolu önerilir, ancak bu mükemmel çalışıyor eğerNewRelic hatasını manuel olarak itmenin bir yolu var mı?

cevap

6

emin değil: New Relic ajan kodunda gördükleri dayanarak

NewRelic::Agent.agent.error_collector.notice_error(exception) 
+16

olduğunu. Bu yöntem bugün çalışabilir olsa da, bu bizim * Kamu API'mızın bir parçası değildir ve bu nedenle kullanılmamalıdır - gelecekte herhangi bir noktada değişebilir. Kullanılacak doğru yöntem nort'un yanıtında belirtildiği gibi 'NewRelic :: Agent.notice_error'. Kamu [API dokümanlar] 'da (http://rubydoc.info/github/newrelic/rpm) belgelenmeyen her şey aynı kategoriye girer. – grumbler

35

Yapabileceğiniz Ben

NewRelic::Agent.notice_error(exception, options)

Bunu test ettim ve bunu yığınımda çalıştırıyorum

Burada bir denetleyicide örnek var:

hata birimini hataları fark edip artırmak API çağrısı
class ApplicationController < ActionController::Base 
    rescue_from ActiveRecord::RecordInvalid, with: :rescue_invalid_record 

    private 

    def rescue_invalid_record(exception) 
    NewRelic::Agent.notice_error(exception) 
    end 
end 
+3

Bunun için aşağıdaki belgelere bakın: http://rdoc.info/github/newrelic/rpm/NewRelic/Agent:notice_error Temel olarak, çözüm yerine Igor'un kullandığı yöntemle ilgili bir takma addır, istisna yerine nil döndürür. Yani biraz farklı davrandığında, aslında aynı şey ve daha az ayrıntılıdır. –