हमारे रेल ऐप में हम सही एपीआई प्रतिक्रिया देने के लिए एप्लिकेशन कंट्रोलर पर अधिकांश अपवादों को बचाते हैं, लेकिन फिर भी त्रुटिकोलेक्टर का उपयोग करके त्रुटियों को ट्रैक करना चाहते हैं। क्या न्यूरेलिक में मैन्युअल रूप से त्रुटि भेजने का कोई तरीका है?क्या न्यूरेलिक त्रुटि को मैन्युअल रूप से धक्का देने का कोई तरीका है?
उत्तर
सुनिश्चित नहीं हैं कि अगर यह उपयोग करने के लिए जिस तरह से अनुशंसा की जाती है, लेकिन यह पूरी तरह से काम करता है:
NewRelic::Agent.agent.error_collector.notice_error(exception)
मैं क्या नई अवशेष एजेंट कोड में देख के आधार पर आप कर सकते हैं
NewRelic::Agent.notice_error(exception, options)
मेरे पास है इसका परीक्षण किया और यह मेरे स्टैक
पर चल रहा है यह नियंत्रक में एक उदाहरण है:
त्रुटि देखें और त्रुटि मीट्रिक बढ़ाने के लिए API कॉल की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
यहां इसके लिए प्रलेखन है: http://rdoc.info/github/newrelic/rpm/NewRelic/Agent:notice_error यह मूल रूप से उनके समाधान में शामिल इगोर विधि के लिए एक उपनाम है, सिवाय इसके कि यह अपवाद के बजाय शून्य लौटाता है। इसलिए जब यह थोड़ा अलग व्यवहार करता है, यह अनिवार्य रूप से वही बात और बहुत कम वर्बोज़ है। –
सभी दस्तावेज़ नई अवशेष रूबी एजेंट एपीआई यहाँ प्रलेखन http://rdoc.info/github/newrelic/rpm/NewRelic/Agent/Transaction.notice_error
मैं न्यू अवशेष पर काम करते हैं। हालांकि यह विधि आज काम कर सकती है, यह हमारे सार्वजनिक एपीआई का हिस्सा नहीं है, और इस प्रकार इसका उपयोग नहीं किया जाना चाहिए - यह भविष्य में किसी भी बिंदु पर बदल सकता है। उपयोग करने के लिए सही विधि 'न्यूरेलिक :: एजेंट.नोटिस_error' है, जैसा कि उत्तर की प्रतिक्रिया में उल्लेख किया गया है। कुछ भी जो हमारे सार्वजनिक [एपीआई दस्तावेज़] में दस्तावेज नहीं है [http://rubydoc.info/github/newrelic/rpm) एक ही श्रेणी में आता है। – grumbler