Fluentd v0.12.21 has been released

Hi users!

We have released Fluentd version 0.12.21. Here are the changes:

New features / Enhancement

  • output: Use error stream in TimeSlicedOutput#emit: #791
  • in_tail: Avoid unnecessary open call: #788
  • in_tail: Add enable_watch_timer option: #811
  • filter_record_transformer: Relax conditions which auto_typecast is applied: #817
  • Backport v0.14 refactoring changes

Bug fixes

  • in_tail: Fix input messages loss when receive_lines fail with BufferQueueLimitError: #810
  • in_monitor_agent: Remove unnecessary fields from API response with debug mode: #802
  • filter_record_transformer: Fix record_transformer to be thread-safe: #816

in_tail: Stop reading logs until buffer fill is resolved

Recently, we added buffer_queue_full_action parameter to prevent event drop by BufferQueueLimitError without @ERROR label. buffer_queue_full_action affects all input plugins so setting buffer_queue_full_action is sometimes not answer when use several input plugins and one output destination.

in_tail is most used plugin so in_tail should care BufferQueueLimitError. Now in_tail stop reading logs when receive BufferQueueLimitError during emit action without buffer_queue_full_action block.
in_tail keeps to ignore other errors in emit action, e.g. output plugin can't handle emitted event. In such cases, use @ERROR label instead.

filter_record_transformer: Fix race condition

<source>
  @type tail
  tag foo.bar
</source>

<source>
  @type tail
  tag foo.baz
</source>

<filter foo.**>
  @type record_transformer
  <record>
    field1 ${tag_parts[1]}
  </record>
</record>

If you share one record_transformer between several input plugins like above, record_transformer had a race condition. field1 is sometimes mixed, e.g. foo.bar event may have baz in field1. We fixed this problem.


Lastly, v0.12.21 docker image has also been available on Docker Hub.


Happy logging!

Subscribed to the RSS feed here.

Written by Masahiro Nakagawa

Masahiro (@repeatedly) is the main maintainer of Fluentd. He works on Fluentd development and support full-time. He is also a committer of the D programming language.