コンテキスト:Tomcat、Log4j 2バージョン2.5で動作するJava Webアプリケーション。ログは、Raven connectorと1つのELK(ElasticSearch + Logstash + Kibana)インスタンスを使用して、1つのSentryインスタンスに移動するように設定されています。Log4jの回路ブレーカ2
設定が(匿名化)次のようになります。
<configuration>
<appenders>
<Raven name="Sentry">
<dsn>https://[email protected]/1</dsn>
</Raven>
<Socket name="Logstash" host="1.2.3.4" port="1234">
<SerializedLayout />
</Socket>
</appenders>
<loggers>
<root level="info">
<appender-ref ref="Sentry" level="warn" />
<appender-ref ref="Logstash" />
</root>
</loggers>
</configuration>
問題であることを歩哨やELKは演技開始した場合(長い応答時間を、到達不能、...)、アプリケーション・スレッドがログインしようとしてブロックされますと、アプリケーションは効果的に消滅します。
この問題の解決法はありますか?何らかの種類の回路ブレーカが理想的です。遠隔ロギング先の問題を検出した後、Log4j 2はしばらくアペンダーを無効にします。
<Async/>
appenderでラップされた別のアペンダーを使用していますが、これはロギングを行う良い解決策であると理解しています...非同期ですが、応答しないログの宛先の問題を修正しません。
Sentryアペンダ自体がデフォルトでは完全に非同期であるため、ロガーをバックアップしないでください。 – Brett
@Brettあなたは、あなたが意味するSentryアペンダーを明確にしていただけますか?私はまだ古いRavenアペンダを使用しています。私は、ここで述べたhttps://docs.sentry.io/clients/java/ – vektor
のレガシー 'raven-java'クライアントでもSentryにアップグレードする必要があることを知っています。非常に長い時間非同期接続。 Sentryの遅れがあなたの伐採を遅らせているという証拠はありますか?彼らは間違いなくすべきです - それはバグでしょう。何か情報がある場合はGithubで問題を作りましょう。ありがとう! – Brett