Fluentd
v1.20.0ObservabilityOct 26, 2026
A feature-rich release adds configuration and platform capabilities, updates the JIT default, and removes Ruby 3.2 support. It also fixes correctness issues across input handling, buffering, and HTTP processing.
Check if affected (2)
breakingThe
enable_jitdefault changed totrueApplies if you do not set
enable_jit.The system configuration
enable_jitnow defaults totruein this release.breaking
Ruby 3.support removed2 Applies if you run
Ruby 3..2 Support for
Ruby 3.is removed in this release.2
All 30 other recorded changesfixes 15 · additions 10 · constraints 2 · removals 2 · value changes 1
fixes (15)
- Fix IPv6 bind address support in URI construction
- out_file: create symlinks for all chunks sharing the latest timekey
- time: fix TimeFormatter returning nil for the Unix epoch
- in_tail: fix log duplication when a rotated file is appended during
rotate_waitwithfollow_inodes - in_tail: fix
NameErrorraised when flushing buffered lines withemit_unmatched_lines true - in_tail: fix unread lines never being collected when a throttled file is removed from the watch list
- in_tail: fix shutdown errors and timeouts caused by an ongoing watcher refresh
- in_tail: fix closed stream error when file rotation overlaps with shutdown
- in_tail: use a monotonic clock for multiline flush timers so that they are not affected by wall-clock adjustments
- buffer: fix a race that could make the buffer
stage_sizegauge transiently negative while a write and a chunk enqueue overlap - buffer: fix an enqueued unstaged file chunk being re-staged and flushed twice, which caused
closed stream/ENOENTerrors and leaked buffer size gauges - parser_msgpack: fix leftover data from one parse call leaking into the next
- http_server helper: fix HTTP endpoints never recovering after a bind failure
- root_agent: fix
emit_recordsandemit_sizenever counted for inputs with@label - supervisor: fix graceful config reload failing for YAML configuration
additions (10)
- out_forward: add
send_keepalive_packetoption to enable TCP keepalive (SO_KEEPALIVE) - in_exec: add
command_timeoutoption to limit child process execution time - system_config: add
umaskoption to<system>directive - add opt-in
enable_dir_watcheranddir_watcher_limitto discover new files earlier by watching directories×2 - in_tail: add opt-in worker-thread parsing via
num_threadsto offload parsing from the event loop - In worker mode,
monitor_agentalso reportsworker_pending_batch_count,worker_pending_bytesandworker_parse_error_count. - buffer: add
evacuate_limit_sizeto keep evacuated chunks from filling the disk - gem: add aarch64-mingw-ucrt gem
- gem: add json gem (>= 2.21) as runtime dependency and remove Refinements workaround
constraints (2)
- parser_syslog: accept a space after RFC3164 priority
- in_forward: accept metadata on encapsulated timestamps sent by Fluent Bit v5.0.5 or later
removals (2)
- Replace Yajl with built-in JSON for simple cases
- out_http: remove the Net::HTTP extra_chain_cert monkey patch
value changes (1)
- When an input stream ends in the middle of a JSON document, Fluentd now logs a warning and discards the incomplete tail instead of raising
ParseError.
Add Fluentd to your stack
A weekly email arrives when a release needs action. Like the breaking changes in this release.