Бесконечная рекурсия стека при использовании Sentry

Привет!

Я хотел опубликовать здесь сообщение, чтобы узнать, есть ли у кого-нибудь идеи по поводу этой ошибки, с которой я столкнулся при попытке использовать Sentry с Discourse. Я планирую использовать Sentry (на основе реализации сервера с открытым исходным кодом Glitchtip) для сбора всех ошибок, возникающих в фоновых задачах и на сервере. Я знаю, что в Discourse есть собственный механизм сбора ошибок через Logster, но я хотел попробовать использовать Sentry, чтобы отслеживать все возникающие ошибки и анализировать их с большим контекстом.

Я добавил инициализатор с конфигурацией Sentry:

Sentry.init do |config|
  config.breadcrumbs_logger = [:active_support_logger, :http_logger]

  config.dsn =  ENV['SENTRY_DSN']
end

Однако обнаружил, что при вызовах HTTP в задачах rake и sidekiq происходит бесконечная рекурсия (даже если они завершались корректно до добавления Sentry). Более подробную информацию и способ воспроизведения проблемы можно найти в issue, который я создал в репозитории sentry-ruby на GitHub:

Я понимаю, что не использую поддерживаемый репозиторий discourse_docker, но всё равно решил опубликовать это здесь, чтобы узнать, сталкивался ли кто-то ещё с подобной ошибкой и есть ли какие-то идеи по её решению.

Обратите внимание, что существует существующий плагин Discourse для Sentry (Discourse Sentry), но он использует неподдерживаемую клиентскую библиотеку (sentry-raven), поэтому я решил не использовать его.

Для всех, кто заинтересован в использовании Sentry с Discourse, один из разработчиков пакета предложил решение.

Он указал, что проблема возникает из-за MethodProfiler в Discourse, который использует alias_method. В качестве решения он предложил заменить это на prepend, что, по его словам, становится всё более распространённым подходом и позволит обоим инструментам работать совместно.

Я недостаточно хорошо знаком с Ruby, чтобы понять различия. Пока что я попробую закомментировать этот фрагмент кода, чтобы отключить профилирование методов в Discourse.