2012-09-26 19 views
25

在我們的Rails應用程序中,我們挽救了ApplicationController上的大部分異常,以提供正確的API響應,但仍然想要跟蹤使用ErrorCollector發生的錯誤。有沒有辦法手動發送錯誤NewRelic?是否有辦法手動推NewRelic錯誤?

回答

6

不知道它的建議的方式來使用,但這種完美的作品:

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

我在New Relic的工作。儘管此方法今天可能有效,但它不是我們公共API的一部分,因此不應使用 - 它可能會在將來的任何時候發生變化。正如nort的迴應所述,正確的方法是使用'NewRelic :: Agent.notice_error'。任何未在我們的公開[API文檔](http://rubydoc.info/github/newrelic/rpm)中記錄的內容屬於同一類別。 – grumbler

35

基於我在New Relic的代理代碼中看到的,你可以做

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 
+3

這是這裏的文檔:http://rdoc.info/github/newrelic/rpm/NewRelic/Agent:notice_error 它基本上是Igor在他的解決方案中包含的方法的別名,除了它返回nil而不是異常。所以雖然表現方式稍有不同,但它本質上是相同的,而且更加冗長。 –

相關問題