Skip to content

Latest commit

 

History

History
2886 lines (2302 loc) · 105 KB

CHANGELOG.md

File metadata and controls

2886 lines (2302 loc) · 105 KB

v1.18

Release v1.18.0 - 2024/11/29

Enhancement

  • Add zero-downtime-restart feature for non-Windows #4624
  • Add with-source-only feature #4661
    • fluentd command: Add --with-source-only option
    • System configuration: Add with_source_only option
  • Embedded plugin: Add out_buffer plugin, which can be used for buffering and relabeling events #4661
  • Config File Syntax: Extend Embedded Ruby Code support for Hashes and Arrays #4580
    • Example: key {"foo":"#{1 + 1}"} => key {"foo":"2"}
    • Please note that this is not backward compatible, although we assume that this will never affect to actual existing configs.
    • In case the behavior changes unintentionally, you can disable this feature by surrounding the entire value with single quotes.
      • key '{"foo":"#{1 + 1}"}' => key {"foo":"#{1 + 1}"}
  • transport tls: Use SSL_VERIFY_NONE by default #4718
  • transport tls: Add ensure_fips option to ensure FIPS compliant mode #4720
  • plugin_helper/server: Add receive_buffer_size parameter in transport section #4649
  • filter_parser: Now able to handle multiple parsed results #4620
  • in_http: add add_tag_prefix option #4655
  • System configuration: add path option in log section #4604

Bug Fix

  • command: fix NoMethodError of --daemon under Windows #4716
  • fluentd command: fix --plugin (-p) option not to overwrite default value #4605

Misc

v1.17

Release v1.17.1 - 2024/08/19

Enhancement

  • out_http: Add compress gzip option #4528
  • in_exec: Add encoding option to handle non-ascii characters #4533
  • in_tail: Add throttling metrics #4578
  • compat: Improve method call performance #4588
  • in_sample: Add reuse_record parameter to reuse the sample data #4586
    • in_sample has changed to copy sample data by default to avoid the impact of destructive changes by subsequent plugins.
    • This increases the load when generating large amounts of sample data.
    • You can use this new parameter to have the same performance as before.

Bug Fix

  • logger: Fix LoadError with console gem v1.25 #4492
  • parser_json: Fix wrong LoadError warning #4522
  • in_tail: Fix an issue where a large single line could consume a large amount of memory even though max_line_size is set #4530
  • yaml_parser: Support $log_level element #4482

Misc

  • Comment out inappropriate default configuration about out_forward #4523
  • gemspec: Remove unnecessary files from released gem #4534
  • plugin-generator: Update gemspec to remove unnecessary files #4535
  • Suppress non-parenthesis warnings #4594
  • Fix FrozenError in http_server plugin helper #4598
  • Add logger gem dependency for Ruby 3.5 #4589
  • out_file: Add warn message for symlink_path setting #4502

Release v1.17.0 - 2024/04/30

Enhancement

  • in_http: Recognize CSP reports as JSON data #4282
  • out_http: Add option to reuse connections #4330
  • in_tail: Expand glob capability for square brackets and one character matcher #4401
  • out_http: Support AWS Signature Version 4 authentication #4459

Bug Fix

  • Make sure parser_json and parser_msgpack return Hash. Make parser_json and parser_msgpack accept only Hash or Array of Hash. #4474
  • filter_parser: Add error event for multiple parsed results #4478

Misc

v1.16

Release v1.16.5 - 2024/03/27

Bug Fix

  • Buffer: Fix emit error of v1.16.4 sometimes failing to process large data exceeding chunk size limit #4447

Release v1.16.4 - 2024/03/14

Bug Fix

  • Fix to avoid processing discarded chunks in write_step_by_step. It fixes not to raise pile of IOError when many chunk bytes limit exceeds errors are occurred. #4342
  • in_tail: Fix tail watchers in rotate_wait state not being managed. #4334

Misc

  • buffer: Avoid unnecessary log processing. It will improve performance. #4331

Release v1.16.3 - 2023/11/14

Bug Fix

  • in_tail: Fix a stall bug on !follow_inode case #4327
  • in_tail: add warning for silent stop on !follow_inodes case #4339
  • Buffer: Fix NoMethodError with empty unstaged chunk arrays #4303
  • Fix for rotate_age where Fluentd passes as Symbol #4311

Release v1.16.2 - 2023/07/14

Bug Fix

  • in_tail: Fix new watcher is wrongly detached on rotation when follow_inodes, which causes stopping tailing the file #4208
  • in_tail: Prevent wrongly unwatching when follow_inodes, which causes log duplication #4237
  • in_tail: Fix warning log about overwriting entry when follow_inodes #4214
  • in_tail: Ensure to discard TailWatcher with missing target when follow_inodes #4239
  • MessagePackFactory: Make sure to reset local unpacker to prevent received broken data from affecting other receiving data #4178
  • Fix failure to launch Fluentd on Windows when the log path isn't specified in the command line #4188
  • logger: Prevent growing cache size of ignore_same_log_interval unlimitedly #4229
  • Update sigdump to 0.2.5 to fix wrong value of object counts #4225

Misc

  • in_tail: Check detaching inode when follow_inodes #4191
  • in_tail: Add debug log for pos file compaction #4228
  • Code improvements detected by RuboCop Performance #4201 #4210
  • Add notice for unused argument unpacker of ChunkMessagePackEventStreamer.each #4159

Release v1.16.1 - 2023/04/17

Enhancement

  • in_tcp: Add message_length_limit to drop large incoming data #4137

Bug Fix

  • Fix NameError of SecondaryFileOutput when setting secondary other than out_secondary_file #4124
  • Server helper: Suppress error of UDPServer over max_bytes on Windows #4131
  • Buffer: Fix that compress setting causes unexpected error when receiving already compressed MessagePack #4147

Misc

  • Update MAINTAINERS.md #4119
  • Update security policy #4123
  • Plugin template: Remove unnecessary code #4128
  • Revive issue auto closer #4116
  • Fix a link for the repository of td-agent #4145
  • in_udp: add test of message_length_limit #4117
  • Fix a typo of an argument of Fluent::EventStream#each #4148
  • Test in_tcp: Fix undesirable way to assert logs #4138

Release v1.16.0 - 2023/03/29

Enhancement

  • in_tcp: Add send_keepalive_packet option #3961
  • buffer: backup broken file chunk #4025
  • Add warning messages for restoring buffer with flush_at_shutdown true #4027
  • Add logs for time period of restored buffer possibly broken #4028

Bug Fix

  • http_server_helper: Fix format of log messages originating from Async gem #3987
  • Change to not generate a sigdump file after receiving a SIGTERM signal on non-Windows #4034 #4043
  • out_forward: fix error of ack handling conflict on stopping with require_ack_response enabled #4030
  • Fix problem that some system configs are not reflected #4064 #4065 #4086 #4090 #4096
  • Fix bug that the logger outputs some initial log messages without applying some settings such as format #4091
  • Windows: Fix a bug that the wrong log file is reopened with log rotate setting when flushing or graceful reloading #4054
  • Fix race condition of out_secondary_file #4081
  • Suppress warning using different secondary for out_secondary_file #4087
  • Fix value of system_config.workers at run_configure. Change argument type of Fluent::Plugin::Base::configure() to Fluent::Config::Element only. #4066
  • Fix bug that Fluentd sometimes tries to use an unavailable port and fails to start on Windows #4092

Misc

v1.15

Release v1.15.3 - 2022/11/02

Bug Fix

  • Support glob for !include directive in YAML config format #3917
  • Remove meaningless oj options #3929
  • Fix log initializer to correctly create per-process files on Windows #3939
  • out_file: Fix the multi-worker check with <worker 0-N> directive #3942

Misc

Release v1.15.2 - 2022/08/22

Enhancement

  • Add a new system configuration enable_jit #3857

Bug Fix

  • out_file: Fix append mode with --daemon flag #3864
  • child_process: Plug file descriptor leak #3844

Misc

  • Drop win32-api gem to support Ruby 3.2 #3849 #3866

Release v1.15.1 - 2022/07/27

Bug Fix

  • Add support for concurrent append in out_file #3808

Misc

  • in_tail: Show more information on skipping update_watcher #3829

Release v1.15.0 - 2022/06/29

Enhancement

  • in_tail: Add log throttling in files based on group rules #3535 #3771
  • Add dump command to fluent-ctl #3680
  • Handle YAML configuration format on configuration file #3712
  • Add restart_worker_interval parameter in <system> directive to set interval to restart workers that has stopped for some reason. #3768

Bug fixes

  • out_forward: Fix to update timeout of cached sockets #3711
  • in_tail: Fix a possible crash on file rotation when follow_inodes true #3754
  • output: Fix a possible crash of flush thread #3755
  • in_tail: Fix crash bugs on Ruby 3.1 on Windows #3766
  • in_tail: Fix a bug that in_tail cannot open non-ascii path on Windows #3774
  • Fix a bug that fluentd doesn't release its own log file even after rotated by external tools #3782

Misc

  • in_tail: Simplify TargetInfo related code #3489
  • Fix a wrong issue number in CHANGELOG #3700
  • server helper: Add comments to linger_timeout behavior about Windows #3701
  • service_discovery: Fix typo #3724
  • test: Fix unstable tests and warnings #3745 #3753 #3767 #3783 #3784 #3785 #3787

v1.14

Release v1.14.6 - 2022/03/31

Enhancement

  • Enable server plugins to specify socket-option SO_LINGER #3644
  • Add --umask command line parameter #3671 #3679

Bug fixes

  • Fix metric name typo #3630 #3673
  • Apply modifications in pipeline to the records being passed to @ERROR label #3631
  • Fix wrong calculation of retry interval #3640 #3649 #3685 #3686
  • Support IPv6 address for rpc_endpoint in system config #3641

Misc

  • CI: Support Ruby 3.1 except Windows #3619
  • Switch to GitHub Discussions #3654
  • Fix CHANGELOG.md heading styles #3648
  • Declare null_value_pattern as regexp #3650

Release v1.14.5 - 2022/02/09

Enhancement

  • Add support for "application/x-ndjson" to in_http #3616
  • Add support for ucrt binary for Windows #3613

Bug fixes

  • Don't retry when retry_max_times == 0 #3608
  • Fix hang-up issue during TLS handshake in out_forward #3601
  • Bump up required ServerEngine to v2.2.5 #3599
  • Fix "invalid byte sequence is replaced" warning on Kubernetes #3596
  • Fix "ArgumentError: unknown keyword: :logger" on Windows with Ruby 3.1 #3592

Release v1.14.4 - 2022/01/06

Enhancement

  • in_tail: Add option to skip long lines (max_line_size) #3565

Bug fix

  • Incorrect BufferChunkOverflowError when each event size is < chunk_limit_size #3560
  • On macOS with Ruby 2.7/3.0, out_file fails to write events if append is true. #3579
  • test: Fix unstable test cases #3574 #3577

Release v1.14.3 - 2021/11/26

Enhancement

  • Changed to accept http_parser.rb 0.8.0. http_parser.rb 0.8.0 is ready for Ractor. #3544

Bug fix

  • in_tail: Fixed a bug that no new logs are read when enable_stat_watcher true and enable_watch_timer false is set. #3541
  • in_tail: Fixed a bug that the beginning and initial lines are lost after startup when read_from_head false and path includes wildcard '*'. #3542
  • Fixed a bug that processing messages were lost when BufferChunkOverflowError was thrown even though only a specific message size exceeds chunk_limit_size. #3553 #3562

Misc

  • Bump up required version of win32-service gem. newer version is required to implement additional fluent-ctl commands. #3556

Release v1.14.2 - 2021/10/29

IMPORTANT: This release contain the fix for CVE-2021-41186 - ReDoS vulnerability in parser_apache2. This vulnerability is affected from Fluentd v0.14.14 to v1.14.1. We recommend to upgrade Fluentd to v1.14.2 or use patched version of parser_apache2 plugin.

Enhancement

  • fluent-cat: Add --event-time option to send specified event time for testing. #3528

Bug fix

  • Fixed to generate correct epoch timestamp even after switching Daylight Saving Time #3524
  • Fixed ReDoS vulnerability in parser_apache2. This vulnerability is caused by a certain pattern of a broken apache log.

Release v1.14.1 - 2021/09/29

Enhancement

  • in_tail: Added file related metrics. These metrics should be collected same as fluent-bit's in_tail. #3504
  • out_forward: Changed to use metrics mechanism for node statistics #3506

Bug fix

  • in_tail: Fixed a crash bug that it raise undefined method of eof? error. This error may happen only when read_bytes_limit_per_second was specified. #3500
  • out_forward: Fixed a bug that node statistics information is not included correctly. #3503 #3507
  • Fixed a error when using @include directive It was occurred when http/https scheme URI is used in @include directive with Ruby 3. #3517
  • out_copy: Fixed to suppress a wrong warning for ignore_if_prev_success It didn't work even if a user set it. #3515
  • Fixed not to output nanoseconds field of next retry time in warning log Then, inappropriate labels in log are also fixed. (retry_time -> retry_times, next_retry_seconds -> next_retry_time) #3518

Release v1.14.0 - 2021/08/30

Enhancement

  • Added enable_input_metrics, enable_size_metrics system configuration parameter This feature might need to pay higher CPU cost, so input event metrics features are disabled by default. These features are also enabled by --enable-input-metrics,--enable-size-metrics command line option. #3440
  • Added reserved word @ROOT for getting root router. This is incompatible change. Do not use @ROOT for label name. #3358
  • in_syslog: Added send_keepalive_packet option #3474
  • in_http: Added cors_allow_credentials option. This option tells browsers whether to expose the response to frontend when the credentials mode is "include". #3481 #3491

Bug fix

  • in_tail: Fixed a bug that deleted paths are not removed from pos file by file compaction at start up #3467
  • in_tail: Revived a warning message of retrying unaccessible file #3478
  • TLSServer: Fixed a crash bug on logging peer host name errors #3483

Misc

  • Added metrics plugin mechanism The implementations is changed to use metrics plugin. In the future, 3rd party plugin will be able to handle these metrics. #3471 #3473 #3479 #3484

v1.13

Release v1.13.3 - 2021/07/27

Bug fix

  • in_tail: Care DeletePending state on Windows #3457 #3460
  • in_tail: Fix some pos_file bugs. Avoid deleting pos_file entries unexpectedly when both pos_file_compaction_interval and follow_inode are enabled. Use bytesize instead of size for path length. #3459
  • in_tail: Fix detecting rotation twice on follow_inode. #3466

Misc

  • Remove needless spaces in a sample config file #3456

Release v1.13.2 - 2021/07/12

Enhancement

  • fluent-plugin-generate: Storage plugin was supported. #3426
  • parser_json: Added support to customize configuration of oj options. Use FLUENT_OJ_OPTION_BIGDECIMAL_LOAD, FLUENT_OJ_OPTION_MAX_NESTING, FLUENT_OJ_OPTION_MODE, and FLUENT_OJ_OPTION_USE_TO_JSON environment variable to configure it. #3315

Bug fix

  • binlog_reader: Fixed a crash bug by missing "fluent/env" dependency. #3443
  • Fixed a crash bug on outputting log at the early stage when parsing config file. This is a regression since v1.13.0. If you use invalid '@' prefix parameter, remove it as a workaround. #3451
  • in_tail: Fixed a bug that when rotation is occurred, remaining lines will be discarded if the throttling feature is enabled. #3390
  • fluent-plugin-generate: Fixed a crash bug during gemspec generation. It was unexpectedly introduced by #3305, thus this bug was a regression since 1.12.3. #3444

Misc

  • Fixed the runtime dependency version of http_parse.rb to 0.7.0. It was fixed because false positive detection is occurred frequently by security scanning tools. #3450

Release v1.13.1 - 2021/06/25

Bug fix

  • out_forward: Fixed a race condition on handshake It's caused by using a same unpacker from multiple threads. #3405 #3406
  • in_tail: Fixed to remove too much verbose debugging logs It was unexpectedly introduced by #3185 log throttling feature. #3418
  • Fixed not to echo back the provides path as is on a 404 error There was a potential cross-site scripting vector even though it is quite difficult to exploit. #3427

Misc

  • Pretty print for Fluent::Config::Section has been supported for debugging #3398
  • CI: Dropped to run CI for Ruby 2.5 #3412

Release v1.13.0 - 2021/05/29

Enhancement

  • in_tail: Handle log throttling per file feature #3185 #3364 #3379
  • Extend to support service discovery manager in simpler way #3299 #3362
  • in_http: HTTP GET requests has been supported #3373
  • The log rotate settings in system configuration has been supported #3352

Bug fix

  • Fix to disable trace_instruction when RubyVM::InstructionSequence is available. It improves compatibility with truffleruby some extent. #3376
  • in_tail: Safely skip files which are used by another process on Windows. It improves exception handling about ERROR_SHARING_VIOLATION on Windows. #3378
  • fluent-cat: the issue resending secondary file in specific format has been fixed #3368
  • in_tail: Shutdown immediately & safely even if reading huge files Note that skip_refresh_on_startup must be enabled. #3380

Misc

  • example: Change a path to backup_path in counter_server correctly #3359
  • README: Update link to community forum to discuss.fluentd.org #3360

v1.12

Release v1.12.4 - 2021/05/26

Bug fix

  • in_tail: Fix a bug that refresh_watcher fails to handle file rotations #3393

Release v1.12.3 - 2021/04/23

Enhancement

  • plugin_helper: Allow TLS to use keep-alive socket option #3308

Bug fix

  • parser_csv, parser_syslog: Fix a naming conflict on parser_type #3302
  • in_tail: Fix incorrect error code & message on Windows #3325 #3329 #3331 #3337
  • in_tail: Fix a crash bug on catching a short-lived log #3328
  • storage_local: Fix position file corruption issue on concurrent gracefulReloads #3335
  • Fix incorrect warnings about ${chunk_id} with out_s3 #3339
  • TLS Server: Add peer information to error log message #3330

Misc

  • fluent-plugin-generate: add note about plugin name #3303
  • fluent-plugin-generate: Use same depended gem version with fluentd #3305
  • Fix some broken unit tests and improve CI's stability #3304 #3307 #3312 #3313 #3314 #3316 #3336
  • Permit to install with win32-service 2.2.0 on Windows #3343

Release v1.12.2 - 2021/03/29

Enhancement

  • out_copy: Add ignore_if_prev_successes #3190 #3287
  • Support multiple kind of timestamp format #3252
  • formatter_ltsv: suppress delimiters in output #1666 #3288 #3289

Bug fix

  • in_tail: Expect ENOENT during stat #3275
  • out_forward: Prevent transferring duplicate logs on restart #3267 #3285
  • in_tail: Handle to send rotated logs when mv is used for rotating #3294
  • fluent-plugin-config-format: Fill an uninitialized instance variable #3297
  • Fix MessagePackEventStream issue with Enumerable methods #2116

Misc

Release v1.12.1 - 2021/02/18

Enhancement

  • out_http: Add headers_from_placeholders parameter #3241
  • fluent-plugin-config-format: Add --table option to use markdown table #3240
  • Add --disable-shared-socket/disable_shared_socket to disable ServerEngine's shared socket setup #3250

Bug fix

  • ca_generate: Fix creating TLS certification files which include broken extensions #3246
  • test: Drop TLS 1.1 tests #3256
  • Remove old gem constraints to support Ruby 3

Misc

Release v1.12.0 - 2021/01/05

New feature

  • in_tail: Add follow_inode to support log rotation with wild card #3182
  • in_tail: Handle linux capability #3155 #3162
  • windows: Add win32 events alternative to unix signals #3131

Enhancement

  • buffer: Enable metadata comparison optimization on all platforms #3095
  • fluent-plugin-config-formatter: Handle service_discovery type #3178
  • in_http: Add add_query_params parameter to add query params to event record #3197
  • inject: Support unixtime_micros and unixtime_nanos in time_type #3220
  • Refactoring code #3167 #3170 #3180 #3196 #3213 #3222

Bug fix

  • output: Prevent retry.step from being called too many times in a short time #3203

v1.11

Release v1.11.5 - 2020/11/06

Enhancement

  • formatter: Provide newline parameter to support CRLF #3152
  • out_http: adding support for intermediate certificates #3146
  • Update serverengine dependency to 2.2.2 or later

Bug fix

  • Fix a bug that windows service isn't stopped gracefuly #3156

Release v1.11.4 - 2020/10/13

Enhancement

  • inject: Support unixtime_millis in time_type parameter #3145

Bug fix

  • out_http: Fix broken data with json_array true #3144
  • output: Fix wrong logging issue for ${chunk_id} #3134

Release v1.11.3 - 2020/09/30

Enhancement

  • in_exec: Add connect_mode parameter to read stderr #3108
  • parser_json: Improve the performance #3109
  • log: Add ignore_same_log_interval parameter #3119
  • Upgrade win32 gems #3100
  • Refactoring code #3094 #3118

Bug fix

  • buffer: Fix calculation of timekey stats #3018
  • buffer: fix binmode usage for prevent gc #3138

Release v1.11.2 - 2020/08/04

Enhancement

  • in_dummy renamed to in_sample #3065
  • Allow regular expression in filter/match directive #3071
  • Refactoring code #3051

Bug fix

  • buffer: Fix log message for chunk_limit_records case #3079
  • buffer: Fix timekey optimization for non-windows platform #3092
  • cert: Raise an error for broken certificate file #3086
  • cert: Set TLS ciphers list correcty on older OpenSSL #3093

Release v1.11.1 - 2020/06/22

Enhancement

  • in_http: Add dump_error_log parameter #3035
  • in_http: Improve time field handling #3046
  • Refactoring code #3047

Bug fix

  • in_tail: Use actual path instead of based pattern for ignore list #3042
  • child_process helper: Fix child process failure due to SIGPIPE if the command uses stdout #3044

Release v1.11.0 - 2020/06/04

New feature

  • in_unix: Use v1 API #2992

Enhancement

  • parser_syslog: Support any time_format for RFC3164 string parser #3014
  • parser_syslog: Add new parser for RFC5424 #3015
  • Refactoring code #3019

Bug fix

  • in_gc_stat: Add use_symbol_keys parameter to emit string key record #3008

v1.10

Release v1.10.4 - 2020/05/12

Enhancement

  • out_http: Support single json array payload #2973
  • Refactoring #2988

Bug fix

  • supervisor: Call File.umask(0) for standalone worker #2987
  • out_forward: Fix ZeroDivisionError issue with weight 0 #2989

Release v1.10.3 - 2020/05/01

Enhancement

Bug fix

  • out_forward: Disable linger_timeout setting on Windows #2959
  • out_forward: Fix warning of service discovery manager when fluentd stops #2974

Release v1.10.2 - 2020/04/15

Enhancement

  • out_copy: Add plugin_id to log message #2934
  • socket: Allow cert chains in mutual auth #2930
  • system: Add ignore_repeated_log_interval parameter #2937
  • windows: Allow to launch fluentd from whitespace included path #2920
  • Refactor code #2935 #2936 #2938 #2939 #2946

Bug fix

  • in_syslog: Fix octet-counting mode bug #2942
  • out_forward: Create timer for purging obsolete sockets when keepalive_timeout is not set #2943
  • out_forward: Need authentication when sending tcp heartbeat with keepalive #2945
  • command: Fix fluent-debug start failure #2948
  • command: Fix regression of supervisor's worker and --daemon combo #2950

Release v1.10.1 - 2020/04/02

Enhancement

  • command: --daemon and --no-supervisor now work together #2912
  • Refactor code #2913

Bug fix

  • in_tail: Fix pos_file_compaction_interval parameter type #2921
  • in_tail: Fix seek position update after compaction #2922
  • parser_syslog: Fix regression in the with_priority and RFC5424 case #2923

Misc

  • Add document for security audit #2911

Release v1.10.0 - 2020/03/24

New feature

  • sd plugin: Add SRV record plugin #2876

Enhancement

Bug fix

  • out_forward: windows: Permit to specify linger_timeout #2868
  • parser_syslog: Fix syslog format detection #2879
  • buffer: Fix available_buffer_space_ratio calculation #2882
  • tls: Support CRLF based X.509 certificates #2890
  • msgpack_factory mixin: Fix performance penalty for deprecation log #2903

v1.9

Release v1.9.3 - 2020/03/05

Enhancement

  • in_tail: Emit buffered lines as unmatched_line at shutdown phase when emit_unmatched_lines true #2837
  • Specify directory mode explicitly #2827
  • server helper: Change SSLError log level to warn in accept #2861
  • Refactor code #2829 #2830 #2832 #2836 #2838 #2842 #2843

Bug fix

  • buffer: Add seq to metadata that it can be unique #2824 #2853
  • buffer: Use Tempfile as binmode for decompression #2847

Misc

Release v1.9.2 - 2020/02/13

Enhancement

  • in_tail: Add pos_file_compaction_interval parameter for auto compaction #2805
  • command: Use given encoding when RUBYOPT has -E #2814

Bug fix

  • command: Accept RUBYOPT with two or more options #2807
  • command: Fix infinite loop bug when RUBYOPT is invalid #2813
  • log: serverengine's log should be formatted with the same format of fluentd #2812
  • in_http: Fix NoMethodError when OPTIONS request doesn't have 'Origin' header #2823
  • parser_syslog: Improved for parsing RFC5424 structured data in parser_syslog #2816

Release v1.9.1 - 2020/01/31

Enhancement

  • http_server helper: Support HTTPS #2787
  • in_tail: Add path_delimiter to split with any char #2796
  • in_tail: Remove an entry from PositionaFile when it is unwatched #2803
  • out_http: Add warning for retryable_response_code #2809
  • parser_syslog: Add multiline RFC5424 support #2767
  • Add TLS module to unify TLS related code #2802

Bug fix

  • output: Add EncodingError to unrecoverable errors #2808
  • tls: Fix TLS version handling in secure mode #2802

Release v1.9.0 - 2020/01/22

New feature

  • New light-weight config reload mechanizm #2716
  • Drop ruby 2.1/2.2/2.3 support #2750

Enhancement

  • output: Show better message for secondary warning #2751
  • Use ext_monitor gem if it is installed. For ruby 2.6 or earlier #2670
  • Support Ruby's Time class in msgpack serde #2775
  • Clean up code/test #2753 #2763 #2764 #2780

Bug fix

  • buffer: Disable the optimization of Metadata instance comparison on Windows #2778
  • outut/buffer: Fix stage size computation #2734
  • server: Ignore Errno::EHOSTUNREACH in TLS accept to avoid fluentd restart #2773
  • server: Fix IPv6 dual stack mode issue for udp socket #2781
  • config: Support @include/include directive for spaces included path #2780

v1.8

Release v1.8.1 - 2019/12/26

Enhancement

  • in_tail: Add path_timezone parameter to format path with the specified timezone #2719
  • out_copy: Add copy_mode parameter. deep_copy parameter is now deprecated. #2747
  • supervisor: Add deprecated log for inline_config #2746

Bug fixes

  • parser_ltsv: Prevent garbage result by checking label_delimiter #2748

Release v1.8.0 - 2019/12/11

New feature

  • Add service discovery plugin and out_forward use it #2541
  • config: Add strict mode and support default/nil value in ruby embedded mode #2685

Enhancement

  • formatter_csv: Support nested fields #2643
  • record_accessor helper: Make code simple and bit faster #2660
  • Relax tzinfo dependency to accept v1 #2673
  • log: Deprecate top-level match for capturing fluentd logs #2689
  • in_monitor_agent: Expose Fluentd verion in REST API #2706
  • time: Accept localtime xor utc #2720 #2731
  • formatter_stdout: Make time_format configurable in stdout format #2721
  • supervisor: create log directory when it doesn't exists #2732
  • clean up internal classes / methods / code #2647 #2648 #2653 #2654 #2657 #2667 #2674 #2677 #2680 #2709 #2730

Bug fixes

  • output: Fix warning printed when chunk key placeholder not replaced #2523 #2733
  • Fix dry-run mode #2651
  • suppress warning #2652
  • suppress keyword argument warning for ruby2.7 #2664
  • RPC: Fix debug log text #2666
  • time: Properly show class names in error message #2671
  • Fix a potential bug that ThreadError may occur on SIGUSR1 #2678
  • server helper: Ignore ECONNREFUSED in TLS accept to avoid fluentd restart #2695
  • server helper: Fix IPv6 dual stack mode issue for tcp socket. #2697
  • supervisor: Fix inline config handling #2708
  • Fix typo #2710 #2714

v1.7

Release v1.7.4 - 2019/10/24

Enhancement

  • in_http: Add use_204_response parameter to return proper 204 response instead of 200. fluentd v2 will change this parameter to true. #2640

Bug fixes

  • child_process helper: fix stderr blocking for discard case #2649
  • log: Fix log rotation handling on Windows #2663

Release v1.7.3 - 2019/10/01

Enhancement

  • in_syslog: Replace priority_key with severity_key #2636

Bug fixes

  • out_forward: Fix nil error after purge obsoleted sockets in socket cache #2635
  • fix typo in ChangeLog #2633

Release v1.7.2 - 2019/09/19

Enhancement

  • in_tcp: Add security/client to restrict access #2622

Bug fixes

  • buf_file/buf_file_single: fix to handle compress data during restart #2620
  • plugin: Use __send__ to avoid conflict with user defined send #2614
  • buffer: reject invalid timekey at configure phase #2615

Release v1.7.1 - 2019/09/08

Enhancement

  • socket helper/out_forward: Support Windows certstore to load certificates #2601
  • parser_syslog: Add faster parser for rfc3164 message #2599

Bug fixes

  • buf_file/buf_file_single: fix to ignore placeholder based path. #2594
  • server helper: Ignore ETIMEDOUT error in SSL_accept #2595
  • buf_file: ensure to remove metadata after buffer creation failure #2598
  • buf_file_single: fix duplicated path setting check #2600
  • fix msgpack-ruby dependency to use recent feature #2606

Release v1.7.0 - 2019/08/20

New feature

  • buffer: Add file_single buffer plugin #2579
  • output: Add http output plugin #2488

Enhancement

  • buffer: Improve the performance of buffer routine #2560 #2563 #2564
  • output: Use Mutex instead of Monitor #2561
  • event: Add OneEventStrea#empty? method #2565
  • thread: Set thread name for ruby 2.3 or later #2574
  • core: Cache msgpack packer/unpacker to avoid the object allocation #2559
  • time: Use faster way to get sec and nsec #2557
  • buf_file: Reduce IO flush by removing IO#truncate #2551
  • in_tcp: Improve the performance for multiple event case #2567
  • in_syslog: support source_hostname_key and source_address_key for unmatched event #2553
  • formatter_csv: Improve the format performance. #2529
  • parser_csv: Add fast parser for typical cases #2535
  • out_forward: Refactor code #2516 #2532

Bug fixes

v1.6

Release v1.6.3 - 2019/07/29

Enhancement

  • in_syslog: Add emit_unmatched_lines parameter #2499
  • buf_file: Add path_suffix parameter #2524
  • in_tail: Improve the performance of split lines #2527

Bug fixes

  • http_server: Fix re-define render_json method #2517

Release v1.6.2 - 2019/07/11

Bug fixes

  • http_server helper: Add title argument to support multiple servers #2493

Release v1.6.1 - 2019/07/10

Enhancement

  • socket/cert: Support all private keys OpenSSL supports, not only RSA. #2487
  • output/buffer: Improve statistics method performance #2491

Bug fixes

  • plugin_config_formatter: update new doc URL #2481
  • out_forward: Avoid zero division error when there are no available nodes #2482

Release v1.6.0 - 2019/07/01

New feature

  • plugin: Add http_server helper and in_monitor_agent use it #2447

Enhancement

  • in_monitor_agent: Add more metrics for buffer/output #2450
  • time/plugin: Add EventTime#to_time method for fast conversion #2469
  • socket helper/out_forward: Add connect_timeout parameter #2467
  • command: Add --conf-encoding option #2453
  • parser_none: Small performance optimization #2455

Bug fixes

  • cert: Fix cert match pattern #2466
  • output: Fix forget to increment rollback count #2462

v1.5

Release v1.5.2 - 2019/06/13

Bug fixes

  • out_forward: Fix duplicated handshake bug in keepalive #2456

Release v1.5.1 - 2019/06/05

Enhancement

  • in_tail: Increase read block size to reduce IO call #2418
  • in_monitor_agent: Refactor code #2422

Bug fixes

  • out_forward: Fix socket handling of keepalive #2434
  • parser: Fix the use of name based timezone #2421
  • in_monitor_agent: Fix debug parameter handling #2423
  • command: Fix error handling of log rotation age option #2427
  • command: Fix ERB warning for ruby 2.6 or later #2430

Release v1.5.0 - 2019/05/18

New feature

  • out_forward: Support keepalive feature #2393
  • in_http: Support TLS via server helper #2395
  • in_syslog: Support TLS via server helper #2399

Enhancement

  • in_syslog: Add delimiter parameter #2378
  • in_forward: Add tag/add_tag_prefix parameters #2396
  • parser_json: Add stream_buffer_size parameter for yajl #2381
  • command: Add deprecated message to show-plugin-config option #2401
  • storage_local: Ignore empty file. Call sync after write for XFS. #2409

Bug fixes

  • out_forward: Don't use SO_LINGER on SSL/TLS WinSock #2398
  • server helper: Fix recursive lock issue in TLSServer #2341
  • Fix typo #2369

v1.4

Release v1.4.2 - 2019/04/02

Enhancements

  • in_http: subdomain support in CORS domain #2337
  • in_monitor_agent: Expose current timekey list as a buffer metrics #2343
  • in_tcp/in_udp: Add source_address_key parameter #2347
  • in_forward: Add send_keepalive_packet parameter to check the remote connection is available or not #2352

Bug fixes

  • out_exec_filter: Fix typo of child_respawn description #2341
  • in_tail: Create parent directories for symlink #2353
  • in_tail: Fix encoding duplication check for non-specified case #2361
  • log: Fix time format handling of plugin logger when log format is JSON #2356

Release v1.4.1 - 2019/03/18

Enhancements

  • system: Add worker_id to process_name when workers is larger than 1 #2321
  • parser_regexp: Check named captures. When no named captures, configuration error is raised #2331

Bug fixes

  • out_forward: Make tls_client_private_key_passphrase secret #2324
  • in_syslog: Check message length when read from buffer in octet counting #2323

Release v1.4.0 - 2019/02/24

New features

  • multiprocess: Support syntax #2292
  • output: Work and retry_forever together #2276
  • out_file: Support placeholders in symlink_path #2254

Enhancements

  • output: Add MessagePack unpacker error to unrecoverable error list #2301
  • output: Reduce flush delay when large timekey and small timekey_wait are specified #2291
  • config: Support embedded ruby code in section argument. #2295
  • in_tail: Improve encoding parameter handling #2305
  • in_tcp/in_udp: Add section check #2267

Bug fixes

  • server: Ignore IOError and related errors in UDP #2310
  • server: Ignore EPIPE in TLS accept to avoid fluentd restart #2253

v1.3

Release v1.3.3 - 2019/01/06

Enhancements

  • parser_syslog: Use String#squeeze for performance improvement #2239
  • parser_syslog: Support RFC5424 timestamp without subseconds #2240

Bug fixes

  • server: Ignore ECONNRESET in TLS accept to avoid fluentd restart #2243
  • log: Fix plugin logger ignores fluentd log event setting #2252

Release v1.3.2 - 2018/12/10

Enhancements

  • out_forward: Support mutual TLS #2187
  • out_file: Create pos_file directory if it doesn't exist #2223

Bug fixes

  • output: Fix logs during retry #2203

Release v1.3.1 - 2018/11/27

Enhancements

  • out_forward: Separate parameter names for certificate #2181 #2190
  • out_forward: Add verify_connection_at_startup parameter to check connection setting at startup phase #2184
  • config: Check right slash position in regexp type #2176
  • parser_nginx: Support multiple IPs in http_x_forwarded_for field #2171

Bug fixes

  • fluent-cat: Fix retry limit handling #2193
  • record_accessor helper: Delete top level field with bracket style #2192
  • filter_record_transformer: Keep class methond to avoid undefined method error #2186

Release v1.3.0 - 2018/11/10

New features

  • output: Change thread execution control #2170
  • in_syslog: Support octet counting frame #2147
  • Use flush_thread_count value for queued_chunks_limit_size when queued_chunks_limit_size is not specified #2173

Enhancements

  • output: Show backtrace for unrecoverable errors #2149
  • in_http: Implement support for CORS preflight requests #2144

Bug fixes

  • server: Fix deadlock between on_writable and close in sockets #2165
  • output: show correct error when wrong plugin is specified for secondary #2169

v1.2

Release v1.2.6 - 2018/10/03

Enhancements

  • output: Add disable_chunk_backup for ignore broken chunks. #2117
  • parser_syslog: Improve regexp for RFC5424 #2141
  • in_http: Allow specifying the wildcard '*' as the CORS domain #2139

Bug fixes

  • in_tail: Prevent thread switching in the interval between seek and read/write operations to pos_file #2118
  • parser: Handle LoadError properly for oj #2140

Release v1.2.5 - 2018/08/22

Bug fixes

  • in_tail: Fix resource leak by file rotation #2105
  • fix typos

Release v1.2.4 - 2018/08/01

Bug fixes

  • output: Consider timezone when calculate timekey #2054
  • output: Fix bug in suppress_emit_error_log_interval #2069
  • server-helper: Fix connection leak by close timing issue. #2087

Release v1.2.3 - 2018/07/10

Enhancements

  • in_http: Consider <parse> parameters in batch mode #2055
  • in_http: Support gzip payload #2060
  • output: Improve compress performance #2031
  • in_monitor_agent: Add missing descriptions for configurable options #2037
  • parser_syslog: update regex of pid field for conformance to RFC5424 spec #2051

Bug fixes

  • in_tail: Fix to rescue Errno::ENOENT for File.mtime() #2063
  • fluent-plugin-generate: Fix Parser plugin template #2026
  • fluent-plugin-config-format: Fix NoMethodError for some plugins #2023
  • config: Don't warn message for reserved parameters in DSL #2034

Release v1.2.2 - 2018/06/12

Enhancements

  • filter_parser: Add remove_key_name_field parameter #2012
  • fluent-plugin-config-format: Dump config_argument #2003

Bug fixes

  • in_tail: Change pos file entry handling to avoid read conflict for other plugins #1963
  • buffer: Wait for all chunks being purged before deleting @queued_num items #2016

Release v1.2.1 - 2018/05/23

Enhancements

  • Counter: Add wait API to client #1997

Bug fixes

  • in_tcp/in_udp: Fix source_hostname_key to set hostname correctly #1976
  • in_monitor_agent: Fix buffer_total_queued_size calculation #1990
  • out_file: Temporal fix for broken gzipped files with gzip and append #1995
  • test: Fix unstable backup test #1979
  • gemspec: Remove deprecated has_rdoc

Release v1.2.0 - 2018/04/30

New Features

  • New Counter API #1857
  • output: Backup for broken chunks #1952
  • filter_grep: Support for <and> and <or> sections #1897
  • config: Support regexp type in configuration parameter #1927

Enhancements

  • parser_nginx: Support optional http-x-forwarded-for field #1932
  • filter_grep: Improve the performance #1940

Bug fixes

  • log: Fix unexpected implementation bug when log rotation setting is applied #1957
  • server helper: Close invalid socket when ssl error happens on reading #1942
  • output: Buffer chunk's unique id should be formatted as hex in the log

v1.1

Release v1.1.3 - 2018/04/03

Enhancements

  • output: Support negative index for tag placeholders #1908
  • buffer: Add queued_chunks_limit_size to control the number of queued chunks #1916
  • time: Make Fluent::EventTime human readable for inspect #1915

Bug fixes

  • output: Delete empty queued_num field after purging chunks #1919
  • fluent-debug: Fix usage message of fluent-debug command #1920
  • out_forward: The node should be disabled when TLS socket for ack returns an error #1925

Release v1.1.2 - 2018/03/18

Enhancements

  • filter_grep: Support pattern starts with character classes with // #1887

Bug fixes

  • in_tail: Handle records in the correct order on file rotation #1880
  • out_forward: Fix race condition with <security> on multi thread environment #1893
  • output: Prevent flushing threads consume too much CPU when retry happens #1901
  • config: Fix boolean param handling for comment without value #1883
  • test: Fix random test failures in test/plugin/test_out_forward.rb #1881 #1890
  • command: Fix typo in binlog_reader #1898

Release v1.1.1 - 2018/03/05

Enhancements

  • in_debug_agent: Support multi worker environment #1869
  • in_forward: Improve SSL setup to support mutual TLS #1861
  • buf_file: Skip and delete broken file chunks to avoid unsuccessful retry in resume #1874
  • command: Show fluentd version for debug purpose #1839

Bug fixes

  • in_forward: Do not close connection until write is complete on failed auth PONG #1835
  • in_tail: Fix IO event race condition during shutdown #1876
  • in_http: Emit event time instead of raw time value in batch #1850
  • parser_json: Add EncodingError to rescue list for oj 3.x. #1875
  • config: Fix config_param for string type with frozen string #1838
  • timer: Fix a bug to leak non-repeating timer watchers #1864

Release v1.1.0 - 2018/01/17

New features / Enhancements

  • config: Add hostname and worker_id short-cut #1814
  • parser_ltsv: Add delimiter_pattern parameter #1802
  • record_accessor helper: Support nested field deletion #1800
  • record_accessor helper: Expose internal instance @keys variable #1808
  • log: Improve Log#on_xxx API performance #1809
  • time: Improve time formatting performance #1796
  • command: Port certificates generating command from secure-forward #1818

Bug fixes

  • server helper: Fix TCP + TLS degradation #1805
  • time: Fix the method for TimeFormatter#call #1813

v1.0

Release v1.0.2 - 2017/12/17

New features / Enhancements

  • Use dig_rb instead of ruby_dig to support dig method in more objects #1794

Release v1.0.1 - 2017/12/14

New features / Enhancements

  • in_udp: Add receive_buffer_size parameter #1788
  • in_tail: Add enable_stat_watcher option to disable inotify events #1775
  • Relax strptime gem version

Bug fixes

  • in_tail: Properly handle moved back and truncated case #1793
  • out_forward: Rebuild weight array to apply server setting properly #1784
  • fluent-plugin-config-formatter: Use v1.0 for URL #1781

Release v1.0.0 - 2017/12/6

See CNCF announcement :)

New features / Enhancements

  • out_copy: Support ignore_error argument in <store> #1764
  • server helper: Improve resource usage of TLS transport #1764
  • Disable tracepoint feature to omit unnecessary insts #1764

Bug fixes

  • out_forward: Don't update retry state when failed to get ack response. #1686
  • plugin: Combine before_shutdown and shutdown call in one sequence. #1763
  • Add description to parsers #1776 #1777 #1778 #1779 #1780
  • filter_parser: Add parameter description #1773
  • plugin: Combine before_shutdown and shutdown call in one sequence. #1763

v0.14

Release v0.14.25 - 2017/11/29

New features / Enhancements

  • Disable tracepoint feature to omit unnecessary insts #1764

Bug fixes

  • out_forward: Don't update retry state when failed to get ack response. #1686
  • plugin: Combine before_shutdown and shutdown call in one sequence. #1763

Release v0.14.24 - 2017/11/24

New features / Enhancements

  • plugin-config-formatter: Add link to plugin helper result #1753
  • server helper: Refactor code #1759

Bug fixes

  • supervisor: Don't call change_privilege twice #1757

Release v0.14.23 - 2017/11/15

New features / Enhancements

  • in_udp: Add remove_newline parameter #1747

Bug fixes

  • buffer: Lock buffers in order of metadata #1722
  • in_tcp: Fix log corruption under load. #1729
  • out_forward: Fix elapsed time miscalculation in tcp heartbeat #1738
  • supervisor: Fix worker pid handling during worker restart #1739
  • in_tail: Skip setup failed watcher to avoid resource leak and log bloat #1742
  • agent: Add error location to emit error logs #1746
  • command: Consider hyphen and underscore in fluent-plugin-generate arguments #1751

Release v0.14.22 - 2017/11/01

New features / Enhancements

  • formatter_tsv: Add add_newline parameter #1691
  • out_file/out_secondary_file: Support ${chunk_id} placeholder. This includes extrace_placeholders API change #1708
  • record_accessor: Support double quotes in bracket notation #1716
  • log: Show running ruby version in startup log #1717
  • log: Log message when chunk is created #1718
  • in_tail: Add pos_file duplication check #1720

Bug fixes

  • parser_apache2: Delay time parser initialization #1690
  • cert_option: Improve generated certificates' conformance to X.509 specification #1714
  • buffer: Always lock chunks first to avoid deadlock #1721

Release v0.14.21 - 2017/09/07

New features / Enhancements

  • filter_parser: Support record_accessor in key_name #1654
  • buffer: Support record_accessor in chunk keys #1662

Bug fixes

  • compat_parameters: Support all syslog parser parameters #1650
  • filter_record_transformer: Don't create new keys if the original record doesn't have keep_keys keys #1663
  • in_tail: Fix the error when 'tag *' is configured #1664
  • supervisor: Clear previous worker pids when receive kill signals. #1683

Release v0.14.20 - 2017/07/31

New features / Enhancements

  • plugin: Add record_accessor plugin helper #1637
  • log: Add format and time_format parameters to <system> setting #1644

Bug fixes

  • buf_file: Improve file handling to mitigate broken meta file #1628
  • in_syslog: Fix the description of resolve_hostname parameter #1633
  • process: Fix signal handling. Send signal to all workers #1642
  • output: Fix error message typo #1643

Release v0.14.19 - 2017/07/12

New features / Enhancements

  • in_syslog: More characters are available in tag part of syslog format #1610
  • in_syslog: Add resolve_hostname parameter #1616
  • filter_grep: Support new configuration format by config_section #1611

Bug fixes

  • output: Fix race condition of retry state in flush thread #1623
  • test: Fix typo in test_in_tail.rb #1622

Release v0.14.18 - 2017/06/21

New features / Enhancements

  • parser: Add rfc5424 regex without priority #1600

Bug fixes

  • in_tail: Fix timing issue that the excluded_path doesn't apply. #1597
  • config: Fix broken UTF-8 encoded configuration file handling #1592
  • out_forward: Don't stop heartbeat when error happen #1602
  • Fix command name typo in plugin template #1603

Release v0.14.17 - 2017/05/29

New features / Enhancements

  • in_tail: Add ignore_repeated_permission_error #1574
  • server: Accept private key for TLS server without passphrase #1575
  • config: Validate workers option on standalone mode #1577

Bug fixes

  • config: Mask all secret parameters in worker section #1580
  • out_forward: Fix ack handling #1581
  • plugin-config-format: Fix markdown format generator #1585

Release v0.14.16 - 2017/05/13

New features / Enhancements

  • config: Allow null byte in double-quoted string #1552
  • parser: Support %iso8601 special case for time_format #1562

Bug fixes

  • out_forward: Call proper method for each connection type #1560
  • in_monitor_agent: check variable buffer is a Buffer instance #1556
  • log: Add missing '<<' method to delegators #1558
  • command: uninitialized constant Fluent::Engine in fluent-binlog-reader #1568

Release v0.14.15 - 2017/04/23

New features / Enhancements

  • Add <worker N> directive #1507
  • in_tail: Do not warn that directories are unreadable in the in_tail plugin #1540
  • output: Add formatted_to_msgpack_binary? to Output plugin API #1547
  • windows: Allow the Windows Service name Fluentd runs as to be configurable #1548

Bug fixes

  • in_http: Fix X-Forwarded-For header handling. Accpet multiple headers #1535
  • Fix backward compatibility with Fluent::DetachProcess and Fluent::DetachMultiProcess #1522
  • fix typo #1521 #1523 #1544
  • test: Fix out_file test with timezone #1546
  • windows: Quote the file path to the Ruby bin directory when starting fluentd as a windows service #1536

Release v0.14.14 - 2017/03/23

New features / Enhancements

  • in_http: Support 'application/msgpack` header #1498
  • in_udp: Add message_length_limit parameter for parameter name consistency with in_syslog #1515
  • in_monitor_agent: Start one HTTP server per worker on sequential port numbers #1493
  • in_tail: Skip the refresh of watching list on startup #1487
  • filter_parser: filter_parser: Add emit_invalid_record_to_error parameter #1494
  • parser_syslog: Support RFC5424 syslog format #1492
  • parser: Allow escape sequence in Apache access log #1479
  • config: Add actual value in the placeholder error message #1497
  • log: Add Fluent::Log#<< to support some SDKs #1478

Bug fixes

  • Fix cleanup resource #1483
  • config: Set encoding forcefully to avoid UndefinedConversionError #1477
  • Fix Input and Output deadlock when buffer is full during startup #1502
  • config: Fix log_level handling in <system> #1501
  • Fix typo in root agent error log #1491
  • storage: Fix a bug storage_create cannot accept hash as conf keyword argument #1482

Release v0.14.13 - 2017/02/17

New features / Enhancements

  • in_tail: Add 'limit_recently_modified' to limit watch files. #1474
  • configuration: Improve 'flush_interval' handling for better message and backward compatibility #1442
  • command: Add 'fluent-plugin-generate' command #1427
  • output: Skip record when 'Output#format' returns nil #1469

Bug fixes

  • output: Secondary calculation should consider 'retry_max_times' #1452
  • Fix regression of deprecated 'process' module #1443
  • Fix missing parser_regex require #1458 #1453
  • Keep 'Fluent::BufferQueueLimitError' for existing plugins #1456
  • in_tail: Untracked files should be removed from watching list to avoid memory bloat #1467
  • in_tail: directories should be skipped when the ** pattern is used #1464
  • record_transformer: Revert "Use BasicObject for cleanroom" for enable_ruby regression. #1461
  • buf_file: handle "Too many open files" error to keep buffer and metadata pair #1468

Release v0.14.12 - 2017/01/30

New features / Enhancements

  • Support multi process workers by workers option #1386
  • Support TLS transport security layer by server plugin helper, and forward input/output plugins #1423
  • Update internal log event handling to route log events to @FLUENT_LOG label if configured, suppress log events in startup/shutdown in default #1405
  • Rename buffer plugin chunk limit parameters for consistency #1412
  • Encode string values from configuration files in UTF8 #1411
  • Reorder plugin load paths to load rubygem plugins earlier than built-in plugins to overwrite them #1410
  • Clock API to control internal thread control #1425
  • Validate config_param options to restrict unexpected specifications #1437
  • formatter: Add add_newline option to get formatted lines without newlines #1420
  • in_forward: Add ignore_network_errors_at_startup option for automated cluster deployment #1399
  • in_forward: Close listening socket in #stop, not to accept new connection request in early stage of shutdown #1401
  • out_forward: Ensure to pack values in str type of msgpack #1413
  • in_tail: Add emit_unmatched_lines to capture lines which unmatch configured regular expressions #1421
  • in_tail: Add open_on_every_update to read lines from files opened in exclusive mode on Windows platform #1409
  • in_monitor_agent: Add with_ivars query parameter to get instance variables only for specified instance variables #1393
  • storage_local: Generate file store path using usage, with root_dir configuration #1438
  • Improve test stability #1426

Bug fixes

  • Fix bug to ignore command line options: --rpc-endpoint, --suppress-config-dump, etc #1398
  • Fix bug to block infinitely in shutdown when buffer is full and overflow_action is block #1396
  • buf_file: Fix bug not to use root_dir even if configured correctly #1417
  • filter_record_transformer: Fix to use BasicObject for clean room #1415
  • filter_record_transformer: Fix bug that remove_keys doesn't work with renew_time_key #1433
  • in_monitor_agent: Fix bug to crash with NoMethodError for some output plugins #1365

Release v0.14.11 - 2016/12/26

New features / Enhancements

  • Add "root_dir" parameter in <system> directive to configure server root directory, used for buffer/storage paths #1374
  • Fix not to restart Fluentd processes when unrecoverable errors occur #1359
  • Show warnings in log when output flush operation takes longer time than threshold #1370
  • formatter_csv: Raise configuration error when no field names are specified #1369
  • in_syslog: Update implementation to use plugin helpers #1382
  • in_forward: Add a configuration parameter "source_address_key" #1382
  • in_monitor_agent: Add a parameter "include_retry" to get detail retry status #1387
  • Add Ruby 2.4 into supported ruby versions

Bug fixes

  • Fix to set process name of supervisor process #1380
  • in_forward: Fix a bug not to handle "require_ack_response" correctly #1389

Release v0.14.10 - 2016/12/14

New features / Enhancement

  • Add socket/server plugin helper to write TCP/UDP clients/servers as Fluentd plugin #1312 #1350 #1356 #1362
  • Fix to raise errors when injected hostname is also specified as chunk key #1357
  • in_tail: Optimize to read lines from file #1325
  • in_monitor_agent: Add new parameter "include_config"(default: true) #1317
  • in_syslog: Add "priority_key" and "facility_key" options #1351
  • filter_record_transformer: Remove obsoleted syntax like "${message}" and not to dump records in logs #1328
  • Add an option "--time-as-integer" to fluent-cat command to send events from v0.14 fluent-cat to v0.12 fluentd #1349

Bug fixes

  • Specify correct Oj options for newer versions (Oj 2.18.0 or later) #1331
  • TimeSlice output plugins (in v0.12 style) raise errors when "utc" parameter is specified #1319
  • Parser plugins cannot use options for regular expressions #1326
  • Fix bugs not to raise errors to use logger in v0.12 plugins #1344 #1332
  • Fix bug about shutting down Fluentd in Windows #1367
  • in_tail: Close files explicitly in tests #1327
  • out_forward: Fix bug not to convert buffer configurations into v0.14 parameters #1337
  • out_forward: Fix bug to raise error when "expire_dns_cache" is specified #1346
  • out_file: Fix bug to raise error about buffer chunking when it's configured as secondary #1338

Release v0.14.9 - 2016/11/15

New features / Enhancement

  • filter_parser: Port fluent-plugin-parser into built-in plugin #1191
  • parser/formatter plugin helpers with default @type in plugin side #1267
  • parser: Reconstruct Parser related classes #1286
  • filter_record_transformer: Remove old behaviours #1311
  • Migrate some built-in plugins into v0.14 API #1257 (out_file) #1297 (out_exec, out_exec_filter) #1306 (in_forward, out_forward) #1308 (in_http)
  • test: Improve test drivers #1302 #1305

Bug fixes

  • log: Avoid name conflict between Fluent::Logger #1274
  • fluent-cat: Fix fluent-cat command to send sub-second precision time #1277
  • config: Fix a bug not to overwrite default value with nil #1296
  • output: Fix timezone for compat timesliced output plugins #1307
  • out_forward: fix not to raise error when out_forward is initialized as secondary #1313
  • output: Event router for secondary output #1283
  • test: fix to return the block value as expected by many rubyists #1284

Release v0.14.8 - 2016/10/13

Bug fixes

  • Add msgpack_each to buffer chunks in compat-layer output plugins #1273

Release v0.14.7 - 2016/10/07

New features / Enhancement

  • Support data compression in buffer plugins #1172
  • in_forward: support to transfer compressed data #1179
  • out_stdout: fix to show nanosecond resolution time #1249
  • Add option to rotate Fluentd daemon's log #1235
  • Add extract plugin helper, with symmetric time parameter support in parser/formatter and inject/extract #1207
  • Add a feature to parse/format numeric time (unix time [+ subsecond value]) #1254
  • Raise configuration errors for inconsistent <label> configurations #1233
  • Fix to instantiate an unconfigured section even for multi: true #1210
  • Add validators of placeholders for buffering key extraction #1255
  • Fix to show log messages about filter optimization only when needed #1227
  • Add some features to write plugins more easily #1256
  • Add a tool to load dumped events from file #1165

Bug fixes

  • Fix Oj's default option to encode/decode JSON in the same way with Yajl #1147 #1239
  • Fix to raise correct configuration errors #1223
  • Fix a bug to call shutdown method (and some others) twice #1242
  • Fix to enable chunk.each only when it's encoded by msgpack #1263
  • Fix a bug not to stop enqueue/flush threads correctly #1264
  • out_forward: fix a bug that UDP heartbeat doesn't work #1238
  • out_file: fix a crash bug when v0.14 enables symlink and resumes existing buffer file chunk generated by v0.12 #1234
  • in_monitor_agent: fix compatibility problem between outputs of v0.12 and v0.14 #1232
  • in_tail: fix a bug to crash to read large amount logs #1259 #1261

Release v0.14.6 - 2016/09/07

Bug fixes

  • in_tail: Add a missing parser_multiline require #1212
  • forward: Mark secret parameters of forward plugins as secret #1209

Release v0.14.5 - 2016/09/06

New features / Enhancement

  • Add authentication / authorization feature to forward protocol and in/out_forward plugins #1136
  • Add a new plugin to dump buffers in retries as secondary plugin #1154
  • Merge out_buffered_stdout and out_buffered_null into out_stdout and out_null #1200

Bug fixes

  • Raise configuration errors to clarify what's wrong when "@type" is missing #1202
  • Fix the bug not to launch Fluentd when v0.12 MultiOutput plugin is configured #1206

Release v0.14.4 - 2016/08/31

New features / Enhancement

  • Add a method to Filter API to update time of events #1140
  • Improve performance of filter pipeline #1145
  • Fix to suppress not to warn about different plugins for primary and secondary without any problems #1153
  • Add deprecated/obsoleted options to config_param to show removed/warned parameters #1186
  • in_forward: Add a feature source_hostname_key to inject source hostname into records #807
  • in_tail: Add a feature from_encoding to specify both encoding from and to #1067
  • filter_record_transformer: Fix to prevent overwriting reserved placeholder keys #1176
  • Migrate some built-in plugins into v0.14 API #1149 #1151
  • Update dependencies #1193

Bug fixes

  • Fix to start/stop/restart Fluentd processes correctly on Windows environment #1171 #1192
  • Fix to handle Windows events correctly in winsvc.rb #1155 #1170
  • Fix not to continue to restart workers for configuration errors #1183
  • Fix output threads to start enqueue/flush buffers until plugins' start method ends #1190
  • Fix a bug not to set umask 0 #1152
  • Fix resource leak on one-shot timers #1178
  • Fix to call plugin helper methods in configure #1184
  • Fix a bug to count event size https://github.com/fluent/fluentd/pull/1164/files
  • Fix to require missed compat modules #1168
  • Fix to start properly for plugins under MultiOutput #1167
  • Fix test drivers to set class name into plugin instances #1069
  • Fix tests not to use mocks for Time (improve test stabilization) #1194

Release 0.14.3 - 2016/08/30

  • Fix the dependency for ServerEngine 1.x

Release 0.14.2 - 2016/08/09

New features / Enhancement

  • Fix to split large event stream into some/many chunks in buffers #1062
  • Add parser and filter support in compat_parameters plugin helper #1079
  • Add a RPC call to flush buffers and stop workers #1134
  • Update forward protocol to pass the number of events in a payload #1137
  • Improve performance of some built-in formatter plugins #1082 #1086
  • Migrate some built-in plugins and plugin util modules into v0.14 API #1058 #1061 #1076 #1078 #1081 #1083 #1091
  • Register RegExpParser as a parser plugin explicitly #1094
  • Add delimiter option to CSV parser #1108
  • Add an option to receive longer udp syslog messages #1127
  • Add a option to suspend internal status in dummy plugin #900
  • Add a feature to capture filtered records in test driver for Filter plugins #1077
  • Add some utility methods to plugin test drivers #1114

Bug fixes

  • Fix bug to read non buffer-chunk files as buffer chunks when Fluentd resumed #1124
  • Fix bug not to load Filter plugins which are specified in configurations #1118
  • Fix bug to ignore -p option to specify directories of plugins #1133
  • Fix bug to overwrite base class configuration section definitions by subclasses #1119
  • Fix to stop Fluentd worker process by Ctrl-C when --no-supervisor specified #1089
  • Fix regression about RPC call to reload configuration #1093
  • Specify to ensure Oj JSON parser to use strict mode #1147
  • Fix unexisting path handling in Windows environment #1104

Release 0.14.1 - 2016/06/30

New features / Enhancement

  • Add plugin helpers for parsers and formatters #1023
  • Extract some mixins into compat modules #1044 #1052
  • Add utility methods for tests and test drivers #1047
  • Migrate some built-in plugins to v0.14 APIs #1049 #1057 #1060 #1064
  • Add support of X-Forwarded-For header in in_http plugin #1051
  • Warn not to create too many staged chunks at configure #1054
  • Add a plugin helper to inject tag/time/hostname #1063

Bug fixes

  • Fix in_monitor_agent for v0.14 plugins #1003
  • Fix to call #format_stream of plugins themselves when RecordFilter mixin included #1005
  • Fix shutdown sequence to wait force flush #1009
  • Fix a deadlock bug in shutdown #1010
  • Fix to require DetachProcessMixin in default for compat plugins #1014
  • Fix to overwrite configure_proxy name only for root sections for debugging #1015
  • Rename file for in_unix plugin #1017
  • Fix a bug not to create pid file when daemonized #1021
  • Fix wrong DEFAULT_PLUGIN_PATH #1028
  • Fix a bug not to use primary plugin type for secondary in default #1032
  • Add --run-worker option to distinguish to run as worker without supervisor #1033
  • Fix regression of fluent-debug command #1046
  • Update windows-pr dependency to 1.2.5 #1065
  • Fix supervisor to pass RUBYOPT to worker processes #1066

Release 0.14.0 - 2016/05/25

New features / Enhancement

This list includes changes of 0.14.0.pre.1 and release candidates.

  • Update supported Ruby version to 2.1 or later #692
  • Sub-second event time support #653
  • Windows support and supervisor improvement #674 #831 #880
  • Add New plugin API #800 #843 #866 #905 #906 #917 #928 #943 #964 #965 #972 #983
  • Add standard chunking format #914
  • Add Compatibility layer for v0.12 plugins #912 #969 #974 #992 #999
  • Add Plugin Storage API #864 #910
  • Enforce to use router.emit instead of Engine.emit #883
  • log: Show plugin name and id in logs #860
  • log: Dump configurations with v1 syntax in logs #867
  • log: Dump errors with class in logs #899
  • config: Add simplified syntax for configuration values of hash and array #875
  • config: Add 'init' option to config_section to initialize section objects #877
  • config: Support multiline string in quoted strings #929
  • config: Add optional arguments on Element#elements to select child elements #948
  • config: Show deprecated warnings for reserved parameters #971
  • config: Make the detach process forward interval configurable #982
  • in_tail: Add 'path_key' option to inject tailing path #951
  • Remove in_status plugin #690

Bug fixes

  • config: Enum list must be of symbols #821
  • config: Fix to dup values in default #827
  • config: Fix problems about overwriting subsections #844 #981
  • log: Serialize Fluent::EventTime as Integer in JSON #904
  • out_forward: Add missing error class and tests for it #922

Internal fix / Refactoring

See https://github.com/fluent/fluentd/blob/v0.12/CHANGELOG.md for v0.12 changelog