Есть ли способ вручную нажать ошибку NewRelic?

В нашем приложении Rails мы сохраняем большинство исключений в ApplicationController, чтобы дать правильный ответ API, но все еще хотим отслеживать ошибки, возникающие с помощью ErrorCollector. Есть ли способ вручную отправить ошибку в NewRelic?


person Igor R.    schedule 26.09.2012    source источник


Ответы (3)


Основываясь на том, что я вижу в коде агента 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
person nort    schedule 15.05.2013
comment
Вот документация для этого: rdoc.info/github/newrelic/rpm/NewRelic/ Agent:notice_error По сути, это псевдоним метода, который Игорь включил в свое решение, за исключением того, что он возвращает nil вместо исключения. Так что, хотя он ведет себя немного по-другому, по сути это то же самое и гораздо менее многословно. - person Sean Moubry; 20.09.2013
comment
Чтобы добавить больше контекста, я предваряю это: NewRelic::Agent.add_custom_attributes({ custom_params: params.to_unsafe_h.merge(current_user: current_user.id), uri: request.original_url}) - person Alberto T.; 10.01.2019

Не уверен, что это рекомендуемый способ использования, но это работает отлично:

NewRelic::Agent.agent.error_collector.notice_error( exception )
person Igor R.    schedule 26.09.2012
comment
Я работаю в Нью Реликт. Хотя этот метод может работать сегодня, он не является частью нашего общедоступного API, и поэтому его не следует использовать — он может измениться в любой момент в будущем. Правильный метод — NewRelic::Agent.notice_error, как указано в ответе nor. Все, что не задокументировано в нашей общедоступной документации по API, относится к той же категории. - person grumbler; 16.05.2014

Полная документация по вызову API для уведомления об ошибках и увеличения метрики ошибок приведена в документации по API New Relic Ruby Agent здесь http://rdoc.info/github/newrelic/rpm/NewRelic/Agent/Transaction.notice_error

person Nočnica    schedule 07.06.2013