Release 0.10.55 - 2014/10/16 * config: Change v1's non-quoted string literal behaviour to v0's behaviour https://github.com/fluent/fluentd/pull/436 * config: Relax '@' handling in the plugin configuration for backward compatibility https://github.com/fluent/fluentd/pull/455 * config: Add --use-v0-config for keeping old configuration https://github.com/fluent/fluentd/pull/434 * config: Add single quoted literal in v1 configuration https://github.com/fluent/fluentd/pull/437 * config: Improve error message of Array / Hash parse error https://github.com/fluent/fluentd/pull/457 * input: Reduce shutdown time in some network related plugins when use Cool.io 1.2 https://github.com/fluent/fluentd/pull/440 * parser: Use ParserError instead of general exception classes https://github.com/fluent/fluentd/pull/453 * Remove unused zfile buffer plugin https://github.com/fluent/fluentd/pull/445 Release 0.10.54 - skipped Release 0.10.53 - 2014/08/21 * in_tail: Fix forget to detach Closer timer object * in_debug_agent: Fix config_param type of unix_path * in_syslog: Add include_source_host and source_host_Key options * config: Dump V1 escaped parameter correctly at start phase * config: Fix bug for config_param of bool value without defaults * config: Add 'alias' option to config_section and config_param * buffer: Add 'disable_retry_limit' option * engine: Reduce memory usage when retry_limit is large * parser: Add apache_error format * supervisor: Dump Fluentd version at dry run mode * test: InputTestDriver wait 'run' until input plugin emits all test data Release 0.10.52 - 2014/07/15 * in_tail: Fix typo of warning argument. lb to line * config: Fix 'uninitialized constant Fluent::Config::V1Parser::URI' error * config: Reject '@' prefix of parameter name in V1 configuration. @ is reserved prefix. * config; Accept '#' comment in array and hash types * parser: Add time_format option to SyslogParser * parser: SyslogParser now makes ':' optional after pid * process: Fix 'mutex can't lock' issue of DetachMultiProcessMixin on Ruby 2.x * Add --without-source option to ignore sections Release 0.10.51 - 2014/07/04 * in_tail: Fix rotation handling when new file not found * in_syslog: Change debug log level to warn at pattern mismatch * formatter: Use localtime by default * parser: Add SyslogParser * parser: Add "estimate_current_event" attribute to TextParsers not to set current time into parse result * config: Add section to set core parameters via configuration file * test: Support v1 configuration in TestDriver * Add udp and tcp input plugins Release 0.10.50 - 2014/06/17 * in_tail: Fix race condition at shutdown * in_tail: read_from_head now works without pos_file * in_tail: Fix multiline format parsing without format_firstline * formatter: Add add_newline option to SingleValueFormatter * parser: Add block based API to support multi-events parsing * config: Fix encoding mismatch when @include used in v1 * engine: Serialize shutdown order. Now shutdown input plugins first * Update rspec to 3.x Release 0.10.49 - 2014/06/05 * in_http: Add format option to support various input data format * in_http: Accept json / msgpack array in default format * in_tail: Print warning message when file not exist with 'read_from_head true' * out_file: Add append option to disable path increment * out_file: Add format option to support various output data format * config: Fix broken 'include' processing in V1 configuration. Now add @include * fluentd-debug: Fix undefined method 'usage' error when invalid option passed * supervisor: Fix incorrect --group option handling * Add TextFormatter module for output plugins Release 0.10.48 - 2014/05/18 * config: Add inspect method to Section for dumping the status * test: Fix the regression which forget to initialize $log in fluent/test.rb * Engine: Remove undocumented legacy plugin load mechanizm Release 0.10.47 - 2014/05/15 * in_tail: Fix typo in flush_buffer * in_forward: Add chunk_size_warn_limit and chunk_size_limit for large chunks * in_monitor_agent: Add /api/config APIs to expose Fluentd configurations * supervisor: Add Supervisor.default_options to return default Fluentd options * test: Add DummyLogDevise and improve log handling in tests * config: Allow empty string value like `tag_mapped` in v1 configuration Release 0.10.46 - 2014/04/21 * in_tail: Fix typo in rescue for dumping backtrace * in_forward: Add blocking_timeout option to avoid Cool.io loop stuck in shutdown * out_forward: Add phi_failure_detector option to disable "The Phi accrual failure detector" * buf_memory: Add flush_at_shutdown option to discard buffered event at shutdown * parser: Use Engine.now when time_key is missing in ValuesParser * parser: TextParser loads fluent/plugin/parser_xxx.rb automatically when 'xxx' format not found * Fix match cache expiration * Add new v1 configuration format and --use-v1-config option to enable v1 configuration format * Add config_section to Configurable to support nested parameters in plugins * Relax http_parser.rb gem version to support 0.6 series Release 0.10.45 - 2014/03/28 * in_tail: Merge in_tail_ex and in_tail_multiline features * in_forward: Add linger_timeout option * out_exec: Support json and msgpack format * Engine: Fix signal handling when receives SIGTERM before loop starts * Use correct out_forward option in fluent.conf with --setup option * Ignore sigdump exception on signal unsupported environment Release 0.10.44 - 2014/02/26 * in_forward: Print remote address and port in trace log * Remove several methods from fluentd-debug to call remote object method directly * Add --gemfile option to manage Fluentd and plugins using Gemfile and Bundler * Add directive to include the configuration file under the elements * Add 'ruby' keyword to call Kernel method in configuration DSL * Relax Cool.io gem version to allow 1.2.x Release 0.10.43 - 2014/02/03 * Input/Output: Add 'log_level' option to plugins * parser/in_tail: Fix RegexpParser forget to call configure method * parser/in_tail: Improve type conversion performance * in_http: Add add_http_headers option to add HTTP headers to record * Buffer: Improve submit_buffer throughput using round-robin writer selection * add sigdump gem to dump useful information via SIGCONT Release 0.10.42 - 2013/12/25 * parser/in_tail: Add 'types' and related parameters to convert record value type * in_syslog: Add 'protocol_type' option for TCP support. * Buffer: Extract 'storable?' method for hook judge mechanizm by 3rd-party buffer plugins. * Output: Add 'try_flush_interval' parameter for high frequency flush. It is undocumented because almost users never need this feature. * Change configuration unused checking to prevent memory leak when a plugin accesses configuratino keys. Release 0.10.41 - 2013/12/05 * BufferedOutput: Add 'max_retry_wait' to limit retry interval * in_exec/object_space/syslog: Improve emit error message * Log: Add --suppress-repeated-stacktrace option to prevent log size explosion Release 0.10.40 - 2013/11/08 * Dump gem version of fluent-plugin-xxx and fluent-mixin-xxx * in_http: Doesn't set REMOTE_ADDR when IO#getpeername failed * in_tail/parser: Fix RegexpParser which ignores time_format parameter * in_exec: Catch error and dumps error message in run_periodic * in_forward: Show error class in the error message * in_exec/out_exec_filter: Catch more exceptions, not only Errno::ESRCH, at shutdown * Log: Catch exception for log event handling at shutdown Release 0.10.39 - 2013/09/18 * out_file: Improve symlink handling with buf_file * out_copy: Add deep_copy parameter for actual record copy * in_tail/parser: Add none format for supporting non-parse tailing like fluent-agent-lite * in_tail/parser: Improve performance using parsed time caching * Engine: Fix signal related exception in trap context at Ruby 2.0 * buffer: Fix race condition when remove flushed chunk * add --suppress-config-dump option to disable dump configuration at start Release 0.10.38 - 2013/08/29 * Fix require related problem in running test Release 0.10.37 - 2013/08/29 * in_exec: Add format option to support tsv, json and msgpack. Default is tsv * out_stdout: Add output_type to print non-jsonable object * Engine: Skip nil record in emit * Check buffere_path duplication across buffer configurations. * Add experimental DSL to configuration format Release 0.10.36 - 2013/07/31 * Log: add class name on each error logs * out_foward: change log level of node detachment/recovering/standby-failover from info to warn * out_file: add symlink_path parameter to point to latest written file * in_forward, in_http, in_unix: add backlog parameter to change resource backlog size * add --dry-run option to check fluentd setup without actual run * Fluentd now assumes configuration file written in UTF-8 * update cool.io version to 1.1.1 Release 0.10.35 - 2013/06/12 * Log: emits fluentd's log via background thread * Log: use #inspect for non to_msgpack-able object in log event processing * FailureDetector/out_forward: fixed wrong phi calculation * in_stream: fixed unix domain connection leak when parsing json or msgpack failed * buf_file/out_file: sets 0644 permission to each created file for preventing File.umask(0) effect at daemonize mode Release 0.10.34 - 2013/06/03 * fluentd: supports --emit-error-log-interval to suppress log messages with the same message for a certain seconds * BufferedOutput: fixed warning messages so that errors with the same meaning use the same message * Log: ignores ThreadError which could happen in signal handler * Engine: prevents signal handlers from calling stop() method of plugins twice * MessagePackEventStream/in_forward: doesn't cache MessagePack::Unpacker (if it uses msgpack-0.5.5 which doesn't cause performance impact) to not cause problems with out_copy * TextParser/in_tail,in_syslog: 'json' format type removes time key from records * TextParser/in_tail,in_syslog: raises exception if time_format is set while time_key is not set * in_tail: fixed minor bugs Release 0.10.33 - 2013/03/28 * added in_monitor_agent * switched from jeweler to bundler * updated dependency for msgpack from '~> 0.4.4' to '~> 0.4.4 OR ~> 0.5.4' * added PluginId module so that in_monitor_agent can search plugins by id * BufferedOutput: added queued_chunk_flush_interval option to insert delay time before flushing queued chunks * BufferedOutput: randomize retry interval to prevent multiple servers from bursting network traffic at the same time * Configurable: sets @config instance variable Release 0.10.32 - 2013/03/04 * in_tail: fixed the nil error problem which occurs with pos_file option * TextParser/in_tail: supports 'ltsv' (Labeled Tab-Separated Values) format: http://ltsv.org * #105: TextParser/in_tail: fixed 'nginx' format * #102: show log level in log messages * Gemfile: uses https source of rubygems instead of http Release 0.10.31 - 2013/01/31 * out_forward: supports TCP heartbeat * in_tail reads rotated files from its head rather than its end when pos_file option is set * out_/in_ forward set O_NONBLOCK flag to the UDP heartbeat socket * Improved match cache expiration algorithm Release 0.10.30 - 2012/12/06 * Shows configuration file at start time * Changed ruby version dependency from ~> 1.9.2 to => 1.9.2 so that it works with ruby-2.0. * TimeSlicedOutput: overwrites default value of buffer_chunk_limit to 256m. fluent-plugin-s3 will be affected. * TextParser/in_tail: supports 'nginx' preset formats * in/out_forward and in_syslog: support IPv6 * out_forward: fixed a out of bounds bug Release 0.10.29 - 2012/11/26 * buf_file: added flush_at_shutdown option to force flush before shuttingdown * TextParser shows message in warn level if text doesn't match the pattern Release 0.10.28 - 2012/10/30 * in_http: on_request method can get headers as HTTP_* key and remote address as REMOTE_ADDR key of the params argument Release 0.10.27 - 2012/10/11 * added BufferChunk#unique_id which is an unique identifier of a buffered chunk * BufferedOutput: show 'temporarily failed' message Release 0.10.26 - 2012/09/26 * added in_debug_agent plugin and fluent-debug command which enable you to gather internal information of running Fluentd process using interactive shell * supervisor: --user commandline argument also inherits secondary groups (id -G) * out_forward: supports 'expire_dns_cache' option to set DNS expire time or disable caching. Default behavior is 'never expire' which is same as former versions * out_forward: assumes successful data transfer via TCP as a successful heartbeat. * out_forward: lazier failure detection: default phi_threshold 8 -> 10 * in_forward: uses other nodes aggressively if it couldn't send data to the first candidate to not stall during the wait time before detecting failure * in_forward: fixed shutdown procedure * in_tail: seeks to the saved position if detected log rotation actually didn't rotate the file (meaning inode doesn't change). this change enables cronolog to work with Fluentd. * in_tail: fixed a problem that it couldn't recover from uncaught exceptions caused by output plugins * fluentd command supports '-q' option to decrease log level Release 0.10.25 - 2012/07/23 * shutdown won't block * out_exec_filter supports 'child_respawn' option * in_tail doesn't remove whitespaces * out_roundrobin supports 'weight' option Release 0.10.24 - 2012/06/28 * TextParser/in_tail: supports 'tsv' and 'csv' preset formats * supervisor set FD_CLOEXEC to @wait_daemonize_pipe_w in case the child process forked during run_configure Release 0.10.23 - 2012/06/25 * out_exec_filter: show more error messages when child process unexpectedly exited * in_tail: Added 'apache2' format template which converts fields into integers or nil * TextParser creates a parser instance for each output for proper configuration * BufferedOutput: reset @flush_now flag * changed default buffer limit parameters: Fluentd core: buffer_chunk_limit 256MB -> 8MB buffer_queue_limit 128 -> 256 buf_memory: buffer_chunk_limit 32MB -> 8MB buffer_queue_limit 32 -> 64 out_file: buffer_chunk_limit -> 256MB Release 0.10.22 - 2012/05/02 * Fixed in_tail and TextParser not to raise "time_format is required" error * out_exec_filter: fixed JSONFormatter to add \n at the end of records * out_exec_filter: separated {tag_key,time_key,time_format} parameters to {in_,out_}{tag_key,time_key,time_format parameters while keeping compatibility Release 0.10.21 - 2012/05/01 * in_tail and TextParser support 'format json' * in_tail and TextParser support 'time_key' and 'time_format' parameters for 'format json' * in_tail: improved the file reader not to consume too much memory if the file is huge * out_stdout: uses logger instead of STDOUT to show records even if Fluentd is daemonized * Fixed the type of 'retry_wait' parameter of buffered output plugins from 'float' to 'time' * Fixed owner of log files for log rotation to work properly with --user and --group options Release 0.10.20 - 2012/04/27 * Fixed Config#to_s * out_exec_filter: supports 'out_format json' option * out_exec_filter: supports 'in_format json' option Release 0.10.19 - 2012/04/17 * Fixed in_syslog * in_tail: fixed "invalid byte sequence in US-ASCII" error * in_unix is not obsoleted Release 0.10.18 - 2012/04/13 * Use Yajl instead of standard json library to avoid encoding problem * buf_memory: call force_encoding('ASCII-8BIT') to avoid encoding problem Release 0.10.17 - 2012/04/02 * in_tail: don't ignore last line without LF [#44] * Added HandleTagNameMixin * Removed automake/conf style build support Maintainig automake/conf style files are complex, but no user. We've decided not to have those files anymore. Otherwise it's still used at rpm/deb packaging scripts. Release 0.10.16 - 2012/03/26 * Added in_gc plugin * Added in_object_space plugin * Changed dependency yajl-ruby from '~> 1.0.0' to '~> 1.0' Release 0.10.15 - 2012/03/09 * Added experimental in_status plugin * out_forward: normalize the phi value of the failure detector into 1sec * out_forward: improved memory efficiency * out_forward: use weighted moving average for the phi accrual failure detector Release 0.10.14 - 2012/03/05 * Show warnings if in_tcp or out_unix is used * BasicBuffer shows warnings when data.bytesize > @buffer_chunk_limit * out_forward: randomize roundrobin queue correctly * Added development dependencies to the gemspec Release 0.10.13 - 2012/02/21 * Rewrote in_tail * Fixed SIGUSR1 handler to force flush logs Release 0.10.12 - 2012/02/13 * Engine shows warnings when emitted record doesn't match any outputs * in_tail is rewritten to follow symbolic links correctly * out_forward uses independent default value as 'hard_timeout' parameter Release 0.10.11 - 2012/02/10 * out_forward supports 'standby' parameter * out_forward handles 'hard_timeout' correctly Release 0.10.10 - 2012/02/09 * in_forward and out_forward don't raise exceptions in callback handlers of cool.io not to stop Loop#run * TimeSlicedOutput ignores time_slice_wait if flush_interval is specified * in_tail follows symbolic links correctly * in_http supports "Content-Type: application/json" * TestDriver#run sleeps 0.5 seconds for the out_exec_filter plugin Release 0.10.9 - 2012/01/19 * Fixed TimeSlicedOutputTestDriver * Updated cool.io 1.0.0 -> 1.1.0 * TextParser: fixed regexp of syslog parser to work with rsyslog on CentOS * out_exec_filter: improve performance by using buffering * out_exec_filter: added num_children parameter * out_exec_filter: added remove_prefix/add_prefix parameters * out_tail: show warning if pos_file parameter is not set * out_copy: fixed problems when event stream is not repeatable Release 0.10.8 - 2011/12/03 * Added Supervisor: restart process on SIGHUP or unexpected end of process * Added -i commandline option which allows inline config * Added TimeSlicedOutputTestDriver * BufferedOutput outputs 'retry succeeded' message * Use Gem::Specification instead of Gem.searcher which is obsoleted * Added BasicBuffer#chunk_limit -> buffer_chunk_limit alias for backward compatibility * buf_file: fixed to work with keys which contains '/' Release 0.10.7 - 2011/11/16 * Supports multi-threaded on buffered output plugins ('num_threads') * Supports multi-process on input plugins ('detach_process') * Added ObjectBufferedOutput * Ensure to call 'shutdown' method of started plugins * in_tail supports 'pos_file' option that stores read position to a file Release 0.10.6 - 2011/11/11 * Fixed --group NAME cmdline argument * Run configure(conf) after changing user and group * Fixed SIGHUP handling * BasicBuffer plugin uses Configurable module * buf_file uses microseconds + 12 bits random number for unique file name Release 0.10.5 - 2011/11/08 * Added out_forward, in_forward * Added out_exec, in_exec * Added out_exec_filter Release 0.10.4 - 2011/11/07 * TestDriver uses klass.dup.module_eval instead of inheriting class to override methods * fixed encoding problem of String#[] in FileBufferChunk#<<(data) Release 0.10.3 - 2011/10/21 * Supports 'include' in config file * Supports "http://" schema * Supports wildcards Release 0.10.2 - 2011/10/18 * Fixed EventStream#to_msgpack_stream (thanks CkReal) * Added gemspec.required_ruby_version = '~> 1.9.2' (thanks sakuro) Release 0.10.1 - 2011/10/16 * SetTimeKeyMixin accepts include_time_key parameter * SetTagKeyMixin accepts include_tag_key parameter * Fixed Makefile.am * Fixed MemoryBufferChunk#msgpack_each Release 0.10.0 - 2011/10/16 * Removed Event class * def format(tag, event) -> format(time, tag, record) * def emit(tag, event) -> emit(tag, time, record) * Added plugin APIs * Added Configurable * Added TimeFormatter * Added SetTimeKeyMixin * Added SetTagKeyMixin * Added InputTestDriver * Added Gemfile, gemspec and .rvmrc files Release 0.9.20 - 2011/10/07 * Config#has_key? sets used flag not to show warning * in_tcp supports JSON * Depends on Yajl * Fixed fluentd -r option * Fixed autogen.sh to create plugins directory Release 0.9.19 - 2011/10/07 * Secondary outputs work only when error count exceededs retry_limit * Secondary outputs retry upto secondary_limit * Added Output#secondary_init * Added unit test driver for output plugins * Added Fluent::Test.test? method * Added comparision methods (<=>, ==, eql? and hash) to Event class * Added test cases for out_copy, out_roundrobin and out_file Release 0.9.18 - 2011/10/04 * Performance improvements * in_tcp uses lazy deserialization * Engine caches results of Match#match * out_file caches results of strftime * Fixed TextParser.register_template Release 0.9.17 - 2011/10/03 * TimeSlicedOutput caches results of strftime() for performance * Fixed TextParser.register_template (thanks eiichiroi) * Fixed fluent-cat --port argument to work Release 0.9.16 - 2011/10/01 * Fixed it can't use relative path for --plugin command line argument * Fixed out_copy to work with non-repeatable event streams Release 0.9.15 - 2011/09/21 * Set default encoding to ASCII-8BIT * Fixed thread issues in BasicBuffer * Performance improvements Release 0.9.14 - 2011/09/21 * Fixed to write unexpected error to log files * Plugin loader uses GemSpec if it is available to load newer plugin * Added Config.bool_value method for plugins Release 0.9.13 - 2011/09/21 * Updated out_file plugin * Uses localtime by default * Uses \t to separate time, tag and JSON. * Uses ISO-8601 for the time format Release 0.9.12 - 2011/09/20 * Updated out_file plugin * Supports log compression * Slices log files every day by default Release 0.9.11 - 2011/09/19 * Added out_null plugin * Added out_roundrobin plugin * in_http supports keep-alive * in_tcp and in_unix detect network failure Release 0.9.10 - 2011/09/07 * Periodic timer enqueues buffer chunks only when queue is empty Release 0.9.9 - 2011/09/06 * in_tail strips \n at the end of log line * Uses newer one if multiple plugins are found Release 0.9.8 - 2011/08/16 * in_http plugin supports 'Expect: 100-continue' header * Added --user and --group command line arguments to change privilege * Changed default retry_limit parameter from 8 to 17 * Changed default buffer_chunk_limit parameter from 1m to 16m * Changed default buffer_queue_limit parameter from 100 to 64 Release 0.9.7 - 2011/08/06 * Load plugins named fluent_plugin.rb installed by RubyGems * Load plugins located on fluent/plugin/{buf,in,out}_{type} installed by RubyGems * Removed out_tdlog plugin to fluent-plugin-td gem Release 0.9.6 - 2011/08/06 * Force flush buffered events on SIGUSR1 * out_tdlog uses event tag for the database and table name * Fluent can log Fluent logs * Colorize Fluent logs on console * Changed default unix domain socket path to /var/run/fluent/fluent.sock * Makefile.am and configure.in aware fakeroot Release 0.9.5 - 2011/07/23 * Added tag that fallbacks to secondary output when it can't write to primary output. * pattern supports **; matches any fragments recursively. * pattern supports {x,y,...}; matches any of the inner patterns. Release 0.9.4 - 2011/07/22 * Switched EventMachine to Cool.io * in_tail continues to follow file if it is deleted on Linux * Added fluentd --setup option that installs sample configuration file * Added out_tdlog plugin Release 0.9.3 - 2011/07/05 * Disable EventMachine.epoll because it doesn't work correctly on Ruby 1.9 with threads * in_tcp and in_unix uses EventMachine instead of threads * Set BasicSocket.do_not_reverse_lookup = true Release 0.9.2 - 2011/07/03 * Added TimeSlicedOutput that splits buffer chunk exactly based on the time * Changed structure of buffers from queue to map + queue * Show waring if configuration parameters are not used * Added out_time_file plugin Release 0.9.1 - 2011/06/26 * Added in_tail plugin * Added in_syslog plugin * Added out_stdout plugin * Added out_tcp plugin * Added out_unix plugin * Improved performance of in_http plugin by replacing WEBrick + thread with EventMachine Release 0.9.0 - 2011/06/20 * First release