2012-09-26 4 views
25

레일즈 앱에서는 올바른 API 응답을 제공하기 위해 ApplicationController에 대한 대부분의 예외를 구했지만 여전히 ErrorCollector를 사용하여 발생하는 오류를 추적하려고합니다. 수동으로 NewRelic에 오류를 보내는 방법이 있습니까? 그것을 사용하는 방법을 권장하지만,이 완벽하게 작동하는 경우NewRelic 오류를 수동으로 푸시 할 방법이 있습니까?

답변

6

확실하지 : 나는 새로운 유물 에이전트 코드에 표시되는 내용을 바탕으로

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

입니다. 이 메소드는 현재 작동 할 수 있지만 공개 API의 일부가 아니므로 사용해서는 안됩니다. 이는 향후 언제든지 변경 될 수 있습니다. 올바른 방법은 'NewRelic :: Agent.notice_error'입니다. 공개 된 [API 문서] (http://rubydoc.info/github/newrelic/rpm)에 문서화되지 않은 사항은 모두 같은 범주에 속합니다. – grumbler

35

당신이 할 수있는 내가 가진

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을 반환한다는 점이 다릅니다. 따라서 조금 다르게 동작하는 것은 본질적으로 동일하고 훨씬 간략합니다. –

관련 문제