【发布时间】:2012-09-26 17:38:03
【问题描述】:
在我们的 Rails 应用程序中,我们挽救了 ApplicationController 上的大多数异常以提供正确的 API 响应,但仍希望使用 ErrorCollector 跟踪发生的错误。有没有办法手动向 NewRelic 发送错误?
【问题讨论】:
在我们的 Rails 应用程序中,我们挽救了 ApplicationController 上的大多数异常以提供正确的 API 响应,但仍希望使用 ErrorCollector 跟踪发生的错误。有没有办法手动向 NewRelic 发送错误?
【问题讨论】:
根据我在 New Relic 代理代码中看到的你可以做的事情
NewRelic::Agent.notice_error(exception, options)
我已经对此进行了测试,并在我的堆栈中运行了它
这是控制器中的一个示例:
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
【讨论】:
不确定它是否是推荐的使用方式,但这很有效:
NewRelic::Agent.agent.error_collector.notice_error( exception )
【讨论】:
NewRelic::Agent.notice_error,如nort 的回复中所述。任何未在我们的公共 API docs 中记录的内容都属于同一类别。
用于通知错误和增加错误指标的 API 调用的完整文档是此处的 New Relic Ruby Agent API 文档http://rdoc.info/github/newrelic/rpm/NewRelic/Agent/Transaction.notice_error
【讨论】: