こんにちは!
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
そして、Sentry を追加する前に、Rake タスクや Sidekiq タスクの HTTP 呼び出し中に無限再帰が発生していることがわかりました(正常に終了するはずのタスクでも発生していました)。sentry-ruby で開いた GitHub の issue には、より詳細な情報と再現方法が記載されています。
サポートされていない discourse_docker リポジトリを使用していることは承知していますが、同様のエラーに遭遇した方がいないか、何かアイデアがないかと思い、ここに投稿しました。
既存の Discourse Sentry プラグイン(https://meta.discourse.org/t/discourse-sentry/109187)があることは知っていますが、サポートされていないクライアントライブラリ(`sentry-raven`)を使用しているため、私はそれを使用しないことにしました。
Discourse で Sentry を使用することに興味がある方は、パッケージのメンテナーの 1 人が修正案を返信しました。
問題は Discourse の MethodProfiler に起因しているとのことです。これは alias_method を使用しています。彼らは、これを prepend に置き換えることを提案しました。これはより一般的になりつつあり、両方のツールが連携できるようになるとのことです。
私は Ruby に精通していないため、その違いを理解できません。今のところ、このコードの一部をコメントアウトして Discourse のメソッドプロファイリングを無効にしてみます。
「いいね!」 1
system
(system)
クローズされました:
3
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.