有没有办法手动推送NewRelic错误?

Igo*_* R. 27 ruby-on-rails newrelic

在我们的Rails应用程序中,我们拯救ApplicationController上的大多数异常以提供正确的API响应,但仍希望使用ErrorCollector跟踪发生的错误.有没有办法手动向NewRelic发送错误?

nor*_*ort 37

基于我在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
Run Code Online (Sandbox Code Playgroud)

  • 这是以下文档:http://rdoc.info/github/newrelic/rpm/NewRelic/Agent:notice_error它基本上是他的解决方案中包含的方法Igor的别名,除了它返回nil而不是异常.因此,虽然它的行为略有不同,但它基本上是相同的,而且更加冗长. (3认同)

Igo*_* R. 6

不确定是否推荐使用方式,但这完美地运作:

NewRelic::Agent.agent.error_collector.notice_error( exception )
Run Code Online (Sandbox Code Playgroud)

  • 我在New Relic工作.虽然这种方法今天可能有效,但它不是我们公共API的一部分,因此不应该使用 - 它可能在将来的任何时候发生变化.正确使用的方法是`NewRelic :: Agent.notice_error`,如nort的回复中所述.我们的公共[API docs](http://rubydoc.info/github/newrelic/rpm)中没有记录的任何内容属于同一类别. (16认同)