Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Sentry Concurrency Limits

オープン
#932 コメント 2 件 リアクション 0 件 担当者 1 名 GitHub で見る

メンテナーはふだん 2 日以内に返信

@solnic がすでに取り組んでいます。

2025年12月9日 から。

  • #983 @solnic による — マージされずにクローズ

評価

この issue はまだ評価されていません。

説明

Elixir Improvement
Problem Statement

What we want to do is be able to use send_event type :none while not risking blowing up the node because too many asynchronous errors are created. At the moment if you use send_event type :none then there are two places where events can start queuing up if they are not processed fast enough and which will eventually lead to an out of memory error. This is in the hackney pool, if there are not enough connections available because they are being used to process requests then requests start queuing up in hackney. Also, a similar thing can happen with Transport.Sender where each sender can only process 1 request at a time and if the incoming request rate is higher than what the Transport.Senders are capable of processing then a queue will form in the Transport.Senders message queues.

Ideally for us we would like to either just start dropping messages once queues begin to form or to limit the size of the queue to something that won't cause a node to run out of memory. One option for us is to just use send_event_type :sync and then just wrap calls to Sentry.capture_message, Sentry.capture_exception to go through some kind of semaphore that would limit the concurrency to X where X is a manageable amount for us. This is fine but it also means we have to rewrite Sentry.LoggerBackend to call our wrapper instead of Sentry as well.

Solution Brainstorm

So I'm wondering if adding some kind of concurrency limit would be something that Sentry would be willing to add to the library. Or alternatively, maybe just adding something to LoggerBackend to allow an alternative wrapped Sentry implementation to be used.

主要言語
Elixir
スター
693
フォーク
219
平均マージ
3日 14時間
マージ済み PR(30日)
19

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

getsentry/sentry-elixir のほかの issue

getsentry/sentry-elixir の issue をすべて見る

似ている issue

Elixir の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。