@@ -176,10 +176,7 @@ init([Args=#{reg_name := RegName}]) ->
176
176
exporter_config = ExporterConfig ,
177
177
resource = Resource ,
178
178
handed_off_table = undefined ,
179
- max_queue_size = case SizeLimit of
180
- infinity -> infinity ;
181
- _ -> SizeLimit div erlang :system_info (wordsize )
182
- end ,
179
+ max_queue_size = SizeLimit ,
183
180
exporting_timeout_ms = ExportingTimeout ,
184
181
check_table_size_ms = CheckTableSize ,
185
182
scheduled_delay_ms = ScheduledDelay ,
@@ -193,11 +190,17 @@ callback_mode() ->
193
190
idle (enter , _OldState , Data = # data {exporter = undefined ,
194
191
exporter_config = ExporterConfig ,
195
192
scheduled_delay_ms = SendInterval ,
193
+ check_table_size_ms = CheckInterval ,
196
194
reg_name = RegName }) ->
197
195
Exporter = init_exporter (RegName , ExporterConfig ),
198
- {keep_state , Data # data {exporter = Exporter }, [{{timeout , export_spans }, SendInterval , export_spans }]};
199
- idle (enter , _OldState , # data {scheduled_delay_ms = SendInterval }) ->
200
- {keep_state_and_data , [{{timeout , export_spans }, SendInterval , export_spans }]};
196
+ {keep_state , Data # data {exporter = Exporter },
197
+ [{{timeout , export_spans }, SendInterval , export_spans },
198
+ {{timeout , check_table_size }, CheckInterval , check_table_size }]};
199
+ idle (enter , _OldState , # data {scheduled_delay_ms = SendInterval ,
200
+ check_table_size_ms = CheckInterval }) ->
201
+ {keep_state_and_data ,
202
+ [{{timeout , export_spans }, SendInterval , export_spans },
203
+ {{timeout , check_table_size }, CheckInterval , check_table_size }]};
201
204
idle (_ , export_spans , Data = # data {exporter = undefined ,
202
205
exporter_config = ExporterConfig ,
203
206
reg_name = RegName }) ->
@@ -274,15 +277,15 @@ handle_event_(_State, _, force_flush, Data) ->
274
277
handle_event_ (_State , {timeout , check_table_size }, check_table_size , # data {max_queue_size = infinity }) ->
275
278
keep_state_and_data ;
276
279
handle_event_ (_State , {timeout , check_table_size }, check_table_size , # data {max_queue_size = MaxQueueSize ,
280
+ check_table_size_ms = CheckInterval ,
277
281
reg_name = RegName }) ->
278
282
case ets :info (? CURRENT_TABLE (RegName ), size ) of
279
283
M when M >= MaxQueueSize ->
280
- disable (RegName ),
281
- keep_state_and_data ;
284
+ disable (RegName );
282
285
_ ->
283
- enable (RegName ),
284
- keep_state_and_data
285
- end ;
286
+ enable (RegName )
287
+ end ,
288
+ { keep_state_and_data , [{{ timeout , check_table_size }, CheckInterval , check_table_size }]} ;
286
289
handle_event_ (_ , {call , From }, {set_exporter , ExporterConfig }, Data = # data {exporter = OldExporter ,
287
290
reg_name = RegName }) ->
288
291
otel_exporter :shutdown (OldExporter ),
0 commit comments