В нашем приложении Rails мы сохраняем большинство исключений в ApplicationController, чтобы дать правильный ответ API, но все еще хотим отслеживать ошибки, возникающие с помощью ErrorCollector. Есть ли способ вручную отправить ошибку в NewRelic?
Есть ли способ вручную нажать ошибку NewRelic?
Ответы (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
Вот документация для этого: rdoc.info/github/newrelic/rpm/NewRelic/ Agent:notice_error По сути, это псевдоним метода, который Игорь включил в свое решение, за исключением того, что он возвращает nil вместо исключения. Так что, хотя он ведет себя немного по-другому, по сути это то же самое и гораздо менее многословно.
- person Sean Moubry; 20.09.2013
Чтобы добавить больше контекста, я предваряю это: 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
Я работаю в Нью Реликт. Хотя этот метод может работать сегодня, он не является частью нашего общедоступного 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