@@ -394,17 +394,6 @@ defmodule Sentry.Config do
394394 Use `Sentry.LogsHandler` to capture log events from Erlang's `:logger`.
395395 *Available since 12.0.0*.
396396 """
397- ] ,
398- max_log_events: [
399- type: :non_neg_integer ,
400- default: 100 ,
401- doc: """
402- The maximum number of log events to buffer before flushing to Sentry.
403- Log events are buffered and sent in batches to reduce network overhead.
404- When the buffer reaches this size, it will be flushed immediately.
405- Otherwise, logs are flushed every 5 seconds. Only applies when `:enable_logs`
406- is `true`. *Available since 12.0.0*.
407- """
408397 ]
409398 ]
410399
@@ -486,6 +475,41 @@ defmodule Sentry.Config do
486475 connections to keep in the pool. Only applied if `:client` is set to
487476 `Sentry.HackneyClient`.
488477 """
478+ ] ,
479+ telemetry_buffer_capacities: [
480+ type: { :map , { :in , [ :log ] } , :pos_integer } ,
481+ default: % { } ,
482+ type_doc: "`%{category => pos_integer()}`" ,
483+ doc: """
484+ Overrides for the maximum number of items each telemetry buffer can hold.
485+ When a buffer reaches capacity, oldest items are dropped to make room.
486+ Currently only the `:log` category is managed by the TelemetryProcessor.
487+ Default: log=1000.
488+ *Available since v12.0.0*.
489+ """
490+ ] ,
491+ telemetry_scheduler_weights: [
492+ type: { :map , { :in , [ :low ] } , :pos_integer } ,
493+ default: % { } ,
494+ type_doc: "`%{priority => pos_integer()}`" ,
495+ doc: """
496+ Overrides for the weighted round-robin scheduler priority weights.
497+ Higher weights mean more sending slots for that priority level.
498+ Currently only the `:low` priority (logs) is managed by the TelemetryProcessor.
499+ Default: low=2.
500+ *Available since v12.0.0*.
501+ """
502+ ] ,
503+ transport_capacity: [
504+ type: :pos_integer ,
505+ default: 1000 ,
506+ doc: """
507+ Maximum number of items the transport queue can hold. For log envelopes,
508+ each log event counts as one item toward capacity. When the queue is full,
509+ the scheduler stops dequeuing from buffers until space becomes available.
510+ The transport queue processes one envelope at a time.
511+ *Available since v12.0.0*.
512+ """
489513 ]
490514 ]
491515
@@ -827,8 +851,14 @@ defmodule Sentry.Config do
827851 @ spec enable_logs? ( ) :: boolean ( )
828852 def enable_logs? , do: fetch! ( :enable_logs )
829853
830- @ spec max_log_events ( ) :: non_neg_integer ( )
831- def max_log_events , do: fetch! ( :max_log_events )
854+ @ spec telemetry_buffer_capacities ( ) :: % { Sentry.Telemetry.Category . t ( ) => pos_integer ( ) }
855+ def telemetry_buffer_capacities , do: fetch! ( :telemetry_buffer_capacities )
856+
857+ @ spec telemetry_scheduler_weights ( ) :: % { Sentry.Telemetry.Category . priority ( ) => pos_integer ( ) }
858+ def telemetry_scheduler_weights , do: fetch! ( :telemetry_scheduler_weights )
859+
860+ @ spec transport_capacity ( ) :: pos_integer ( )
861+ def transport_capacity , do: fetch! ( :transport_capacity )
832862
833863 @ spec before_send_log ( ) ::
834864 ( Sentry.LogEvent . t ( ) -> Sentry.LogEvent . t ( ) | nil | false ) | { module ( ) , atom ( ) } | nil
0 commit comments