Fluentd Blog https://www.fluentd.org/blog Get the Latest Updates on Fluentd and More td-agent v4.3.1.1 for Windows has been released https://www.fluentd.org/blog/td-agent-v4.3.1.1-has-been-released <p>We have released td-agent v4.3.1.1 for Windows. This version is a bug fix release of v4.3.1 only for Windows platform.</p> <h3>Changes from td-agent v4.3.1</h3> <ul> <li>Update OpenSSL to v1.1.1.o-2 to fix memory leak: <a href="https://github.com/fluent/fluent-package-builder/issues/374">fluent-package-builder#374</a></li> <li>Update nokogiri to 1.13.6 to fix some vulnerabilities.</li> </ul> <h3>Download</h3> <p>Please see <a href="/download">the download page</a>.</p> 2022-05-26 <p>We have released td-agent v4.3.1.1 for Windows. This version is a bug fix release of v4.3.1 only for Windows platform.</p> <h3>Changes from td-agent v4.3.1</h3> <ul> <li>Update OpenSSL to v1.1.1.o-2 to fix memory leak: <a href="https://github.com/fluent/fluent-package-builder/issues/374">fluent-package-builder#374</a></li> <li>Update nokogiri to 1.13.6 to fix some vulnerabilities.</li> </ul> <h3>Download</h3> <p>Please see <a href="/download">the download page</a>.</p> td-agent v4.3.1 has been released https://www.fluentd.org/blog/td-agent-v4.3.1-has-been-released <p>Hi users!</p> <p>We have released td-agent v4.3.1. td-agent is a stable distribution package of Fluentd.</p> <h3>Changes from td-agent v4.3.0</h3> <ul> <li>Update bundled Fluentd from v1.14.3 to v1.14.6. Please see each release announcement of Fluentd for more detail: <ul> <li><a href="fluentd-v1.14.4-has-been-released">Fluentd v1.14.4 has been released</a></li> <li><a href="fluentd-v1.14.5-has-been-released">Fluentd v1.14.5 has been released</a></li> <li><a href="fluentd-v1.14.6-has-been-released">Fluentd v1.14.6 has been released</a></li> </ul></li> <li>Update bundled Ruby from <a href="https://www.ruby-lang.org/en/news/2021/11/24/ruby-2-7-5-released/">v2.7.5</a> to <a href="https://www.ruby-lang.org/en/news/2022/04/12/ruby-2-7-6-released/">v2.7.6</a></li> <li>Add some new plugins <ul> <li>fluent-plugin-opensearch</li> <li>fluent-plugin-metrics-cmetrics</li> <li>fluent-plugin-calyptia-monitoring</li> <li>fluent-plugin-windows-exporter</li> </ul></li> <li>rpm: Remove .build-id directories</li> </ul> <p>Please see <a href="https://github.com/fluent-plugins-nursery/fluent-package-builder/blob/master/CHANGELOG.md#release-v431---20220429">ChangeLog</a> for more detail.</p> <h3>Download</h3> <p>Please see <a href="/download">the download page</a>.</p> <h3>About packages for latest distributions</h3> <p>Although Ubuntu 22.04 LTS (Jammy Jellyfish) is already released, we don&#39;t yet provide the official td-agent package for it. An experimental package which bundles Ruby 3.1 is <a href="https://github.com/fluent/fluent-package-builder/pull/381">work in progress</a>.</p> <h3>End of life announcement</h3> <ul> <li>The package for Ubuntu xenial won&#39;t be provided from the next minor update (td-agent 4.4.0) because Ubuntu 16.04.x had already reached to <a href="https://wiki.ubuntu.com/Releases">End of Standard Support</a>.</li> <li><a href="schedule-for-td-agent-3-eol">td-agent 3 series won&#39;t be maintained anymore</a>.</li> </ul> 2022-04-29 <p>Hi users!</p> <p>We have released td-agent v4.3.1. td-agent is a stable distribution package of Fluentd.</p> <h3>Changes from td-agent v4.3.0</h3> <ul> <li>Update bundled Fluentd from v1.14.3 to v1.14.6. Please see each release announcement of Fluentd for more detail: <ul> <li><a href="fluentd-v1.14.4-has-been-released">Fluentd v1.14.4 has been released</a></li> <li><a href="fluentd-v1.14.5-has-been-released">Fluentd v1.14.5 has been released</a></li> <li><a href="fluentd-v1.14.6-has-been-released">Fluentd v1.14.6 has been released</a></li> </ul></li> <li>Update bundled Ruby from <a href="https://www.ruby-lang.org/en/news/2021/11/24/ruby-2-7-5-released/">v2.7.5</a> to <a href="https://www.ruby-lang.org/en/news/2022/04/12/ruby-2-7-6-released/">v2.7.6</a></li> <li>Add some new plugins <ul> <li>fluent-plugin-opensearch</li> <li>fluent-plugin-metrics-cmetrics</li> <li>fluent-plugin-calyptia-monitoring</li> <li>fluent-plugin-windows-exporter</li> </ul></li> <li>rpm: Remove .build-id directories</li> </ul> <p>Please see <a href="https://github.com/fluent-plugins-nursery/fluent-package-builder/blob/master/CHANGELOG.md#release-v431---20220429">ChangeLog</a> for more detail.</p> <h3>Download</h3> <p>Please see <a href="/download">the download page</a>.</p> <h3>About packages for latest distributions</h3> <p>Although Ubuntu 22.04 LTS (Jammy Jellyfish) is already released, we don&#39;t yet provide the official td-agent package for it. An experimental package which bundles Ruby 3.1 is <a href="https://github.com/fluent/fluent-package-builder/pull/381">work in progress</a>.</p> <h3>End of life announcement</h3> <ul> <li>The package for Ubuntu xenial won&#39;t be provided from the next minor update (td-agent 4.4.0) because Ubuntu 16.04.x had already reached to <a href="https://wiki.ubuntu.com/Releases">End of Standard Support</a>.</li> <li><a href="schedule-for-td-agent-3-eol">td-agent 3 series won&#39;t be maintained anymore</a>.</li> </ul> Fluentd v1.14.6 has been released https://www.fluentd.org/blog/fluentd-v1.14.6-has-been-released <p>Hi users!</p> <p>We have released v1.14.6. ChangeLog is <a href="https://github.com/fluent/fluentd/blob/master/CHANGELOG.md#release-v1146---20220331">here</a>.</p> <p>This release is a maintenance release of v1.14 series.</p> <h2>Enhancement</h2> <h3>Enable server plugins to specify socket-option <code>SO_LINGER</code></h3> <p>In this release, we add a new option <code>linger_timeout</code> to <code>server</code> plugin-helper so that we can specify <code>SO_LINGER</code> socket-option when using TCP or TLS server function of the helper.</p> <p>The helper has used <code>0</code> for <code>linger_timeout</code> internally before. This made the connection closing immediate, and especially on non-Windows, this made the server send RST rather than FIN on the closing.</p> <p>The main use of this option is to make the server send FIN on closing on non-Windows, by setting a positive value such as <code>1</code>.</p> <p>This new option is in <code>transport</code> section, and we can specify this for plugins using TCP or TLS server function of the helper, such as <code>in_tcp</code>, <code>in_http</code>, <code>in_syslog</code>, and <code>in_forward</code>. </p> <pre><code>&lt;source&gt; @type tcp ... &lt;parse&gt; ... &lt;/parse&gt; &lt;transport tcp&gt; linger_timeout 1 &lt;/transport&gt; &lt;/source&gt; </code></pre> <p>Note: <code>in_forward</code> plugin had <code>linger_timeout</code> option before, but the option is now deprecated and unified to <code>transport</code> section.</p> <p>See <a href="https://github.com/fluent/fluentd/pull/3644">#3644</a> for more information.</p> <h3>Add <code>--umask</code> to <code>fluentd</code> command line parameter</h3> <p>When we launch Fluentd with <code>--no-supervisor</code>, the umask value of the environment is not applied because Fluentd overwrites the value.</p> <p>In this release, We can use <code>--umask</code> option as a <code>fluentd</code> command line parameter to specify the umask value in the case of launching Fluentd with <code>--no-supervisor</code>.</p> <pre><code class="console">$ fluentd -c {config_path} --no-supervisor --umask 002 </code></pre> <p>See <a href="https://github.com/fluent/fluentd/pull/3671">#3671</a>, <a href="https://github.com/fluent/fluentd/pull/3679">#3679</a> for more information.</p> <h2>Bug Fixes</h2> <h3>Fix wrong calculation of retry count and interval</h3> <p>There were mistakes in the calculation about <code>exponential_backoff</code> retry_type.</p> <p>In this release, the calculation is fixed, and the count and the interval change as following.</p> <p><strong>Count</strong></p> <ul> <li>Before: At most <code>retry_max_times + 1</code> retries were triggered.</li> <li>This Release: At most <code>retry_max_times</code> retries are triggered.</li> </ul> <p><strong>Interval</strong></p> <ul> <li>Before: By default, n-th retry was triggered after 2^(n-1) seconds elapsed since the <strong>first</strong> time.</li> <li>This Release: By default, n-th retry is triggered after 2^(n-1) seconds elapsed since the <strong>last</strong> time.</li> </ul> <p><strong>When to switch to secondary</strong></p> <ul> <li>Before: The total time calculation was wrong. Although <code>retry_max_times</code> + 1 retries were mistakenly triggered, <code>retry_secondary_threshold</code> was applied to the total time to the (<code>retry_max_times</code>)-th retry. So switching to secondary occurred earlier than the correct time.</li> <li>This Release: <code>retry_secondary_threshold</code> is correctly applied to the total retry time.</li> </ul> <p>The examples of <code>retry_max_times: 10</code> are as follows. (Set <code>retry_randomize: false</code> for testing.)</p> <p><strong>Only primary output</strong></p> <table><thead> <tr> <th style="text-align: right">N-th retry</th> <th style="text-align: right">&nbsp; Elapsed (Before)</th> <th style="text-align: right">&nbsp; Elapsed (This Release)</th> </tr> </thead><tbody> <tr> <td style="text-align: right">1th</td> <td style="text-align: right">1s</td> <td style="text-align: right">1s</td> </tr> <tr> <td style="text-align: right">2th</td> <td style="text-align: right">2s</td> <td style="text-align: right">3s</td> </tr> <tr> <td style="text-align: right">3th</td> <td style="text-align: right">4s</td> <td style="text-align: right">7s</td> </tr> <tr> <td style="text-align: right">4th</td> <td style="text-align: right">8s</td> <td style="text-align: right">15s</td> </tr> <tr> <td style="text-align: right">5th</td> <td style="text-align: right">16s</td> <td style="text-align: right">31s</td> </tr> <tr> <td style="text-align: right">6th</td> <td style="text-align: right">32s</td> <td style="text-align: right">63s</td> </tr> <tr> <td style="text-align: right">7th</td> <td style="text-align: right">64s</td> <td style="text-align: right">127s</td> </tr> <tr> <td style="text-align: right">8th</td> <td style="text-align: right">128s</td> <td style="text-align: right">255s</td> </tr> <tr> <td style="text-align: right">9th</td> <td style="text-align: right">256s</td> <td style="text-align: right">511s</td> </tr> <tr> <td style="text-align: right">10th</td> <td style="text-align: right">512s</td> <td style="text-align: right">1023s</td> </tr> <tr> <td style="text-align: right">11th</td> <td style="text-align: right">1024s</td> <td style="text-align: right">None</td> </tr> </tbody></table> <p><br/></p> <p><strong>With secondary output</strong></p> <table><thead> <tr> <th style="text-align: right">N-th retry</th> <th style="text-align: right">&nbsp; Elapsed (Before)</th> <th style="text-align: right">&nbsp; Elapsed (This Release)</th> </tr> </thead><tbody> <tr> <td style="text-align: right">1th</td> <td style="text-align: right">1s</td> <td style="text-align: right">1s</td> </tr> <tr> <td style="text-align: right">2th</td> <td style="text-align: right">2s</td> <td style="text-align: right">3s</td> </tr> <tr> <td style="text-align: right">3th</td> <td style="text-align: right">4s</td> <td style="text-align: right">7s</td> </tr> <tr> <td style="text-align: right">4th</td> <td style="text-align: right">8s</td> <td style="text-align: right">15s</td> </tr> <tr> <td style="text-align: right">5th</td> <td style="text-align: right">16s</td> <td style="text-align: right">31s</td> </tr> <tr> <td style="text-align: right">6th</td> <td style="text-align: right">32s</td> <td style="text-align: right">63s</td> </tr> <tr> <td style="text-align: right">7th</td> <td style="text-align: right">64s</td> <td style="text-align: right">127s</td> </tr> <tr> <td style="text-align: right">8th</td> <td style="text-align: right">128s</td> <td style="text-align: right">255s</td> </tr> <tr> <td style="text-align: right">9th</td> <td style="text-align: right">256s</td> <td style="text-align: right">511s</td> </tr> <tr> <td style="text-align: right">10th</td> <td style="text-align: right">(SEC) 409s</td> <td style="text-align: right">(SEC) 818s</td> </tr> <tr> <td style="text-align: right">11th</td> <td style="text-align: right">(SEC) 410s</td> <td style="text-align: right">None</td> </tr> </tbody></table> <p><br/></p> <p>See <a href="https://github.com/fluent/fluentd/pull/3649">#3649</a> for more information.</p> <h3>Apply modifications to the records being passed to <code>@ERROR</code> label</h3> <p><code>Filter</code> plugins such as <code>filter_record_transformer</code> can modify the contents of records before the output.</p> <p>If an error occurred in <code>Output</code> plugin such that records were passed to <code>@ERROR</code> label, those modifications were not applied to those records being passed.</p> <p>In this release, records reflecting those modifications are now passed to <code>@ERROR</code> label.</p> <p>See <a href="https://github.com/fluent/fluentd/pull/3631">#3631</a> for more information.</p> <h2>Miscellaneous fixes</h2> <ul> <li>Support IPv6 address for <code>rpc_endpoint</code> in <code>system</code> config. <a href="https://github.com/fluent/fluentd/pull/3641">#3641</a>.</li> <li>Fix some typo of metric names. <a href="https://github.com/fluent/fluentd/pull/3630">#3630</a>, <a href="https://github.com/fluent/fluentd/pull/3673">#3673</a>.</li> <li>Declare <code>null_value_pattern</code> as <code>regexp</code>. <a href="https://github.com/fluent/fluentd/pull/3650">#3650</a>.</li> <li>CI: Support Ruby 3.1 except Windows. <a href="https://github.com/fluent/fluentd/pull/3619">#3619</a>.</li> <li>Fix <code>CHANGELOG.md</code> heading styles. <a href="https://github.com/fluent/fluentd/pull/3648">#3648</a>.</li> <li>Switch to GitHub Discussions. <a href="https://github.com/fluent/fluentd/pull/3654">#3654</a>.</li> </ul> <p>Enjoy logging!</p> 2022-03-31 <p>Hi users!</p> <p>We have released v1.14.6. ChangeLog is <a href="https://github.com/fluent/fluentd/blob/master/CHANGELOG.md#release-v1146---20220331">here</a>.</p> <p>This release is a maintenance release of v1.14 series.</p> <h2>Enhancement</h2> <h3>Enable server plugins to specify socket-option <code>SO_LINGER</code></h3> <p>In this release, we add a new option <code>linger_timeout</code> to <code>server</code> plugin-helper so that we can specify <code>SO_LINGER</code> socket-option when using TCP or TLS server function of the helper.</p> <p>The helper has used <code>0</code> for <code>linger_timeout</code> internally before. This made the connection closing immediate, and especially on non-Windows, this made the server send RST rather than FIN on the closing.</p> <p>The main use of this option is to make the server send FIN on closing on non-Windows, by setting a positive value such as <code>1</code>.</p> <p>This new option is in <code>transport</code> section, and we can specify this for plugins using TCP or TLS server function of the helper, such as <code>in_tcp</code>, <code>in_http</code>, <code>in_syslog</code>, and <code>in_forward</code>. </p> <pre><code>&lt;source&gt; @type tcp ... &lt;parse&gt; ... &lt;/parse&gt; &lt;transport tcp&gt; linger_timeout 1 &lt;/transport&gt; &lt;/source&gt; </code></pre> <p>Note: <code>in_forward</code> plugin had <code>linger_timeout</code> option before, but the option is now deprecated and unified to <code>transport</code> section.</p> <p>See <a href="https://github.com/fluent/fluentd/pull/3644">#3644</a> for more information.</p> <h3>Add <code>--umask</code> to <code>fluentd</code> command line parameter</h3> <p>When we launch Fluentd with <code>--no-supervisor</code>, the umask value of the environment is not applied because Fluentd overwrites the value.</p> <p>In this release, We can use <code>--umask</code> option as a <code>fluentd</code> command line parameter to specify the umask value in the case of launching Fluentd with <code>--no-supervisor</code>.</p> <pre><code class="console">$ fluentd -c {config_path} --no-supervisor --umask 002 </code></pre> <p>See <a href="https://github.com/fluent/fluentd/pull/3671">#3671</a>, <a href="https://github.com/fluent/fluentd/pull/3679">#3679</a> for more information.</p> <h2>Bug Fixes</h2> <h3>Fix wrong calculation of retry count and interval</h3> <p>There were mistakes in the calculation about <code>exponential_backoff</code> retry_type.</p> <p>In this release, the calculation is fixed, and the count and the interval change as following.</p> <p><strong>Count</strong></p> <ul> <li>Before: At most <code>retry_max_times + 1</code> retries were triggered.</li> <li>This Release: At most <code>retry_max_times</code> retries are triggered.</li> </ul> <p><strong>Interval</strong></p> <ul> <li>Before: By default, n-th retry was triggered after 2^(n-1) seconds elapsed since the <strong>first</strong> time.</li> <li>This Release: By default, n-th retry is triggered after 2^(n-1) seconds elapsed since the <strong>last</strong> time.</li> </ul> <p><strong>When to switch to secondary</strong></p> <ul> <li>Before: The total time calculation was wrong. Although <code>retry_max_times</code> + 1 retries were mistakenly triggered, <code>retry_secondary_threshold</code> was applied to the total time to the (<code>retry_max_times</code>)-th retry. So switching to secondary occurred earlier than the correct time.</li> <li>This Release: <code>retry_secondary_threshold</code> is correctly applied to the total retry time.</li> </ul> <p>The examples of <code>retry_max_times: 10</code> are as follows. (Set <code>retry_randomize: false</code> for testing.)</p> <p><strong>Only primary output</strong></p> <table><thead> <tr> <th style="text-align: right">N-th retry</th> <th style="text-align: right">&nbsp; Elapsed (Before)</th> <th style="text-align: right">&nbsp; Elapsed (This Release)</th> </tr> </thead><tbody> <tr> <td style="text-align: right">1th</td> <td style="text-align: right">1s</td> <td style="text-align: right">1s</td> </tr> <tr> <td style="text-align: right">2th</td> <td style="text-align: right">2s</td> <td style="text-align: right">3s</td> </tr> <tr> <td style="text-align: right">3th</td> <td style="text-align: right">4s</td> <td style="text-align: right">7s</td> </tr> <tr> <td style="text-align: right">4th</td> <td style="text-align: right">8s</td> <td style="text-align: right">15s</td> </tr> <tr> <td style="text-align: right">5th</td> <td style="text-align: right">16s</td> <td style="text-align: right">31s</td> </tr> <tr> <td style="text-align: right">6th</td> <td style="text-align: right">32s</td> <td style="text-align: right">63s</td> </tr> <tr> <td style="text-align: right">7th</td> <td style="text-align: right">64s</td> <td style="text-align: right">127s</td> </tr> <tr> <td style="text-align: right">8th</td> <td style="text-align: right">128s</td> <td style="text-align: right">255s</td> </tr> <tr> <td style="text-align: right">9th</td> <td style="text-align: right">256s</td> <td style="text-align: right">511s</td> </tr> <tr> <td style="text-align: right">10th</td> <td style="text-align: right">512s</td> <td style="text-align: right">1023s</td> </tr> <tr> <td style="text-align: right">11th</td> <td style="text-align: right">1024s</td> <td style="text-align: right">None</td> </tr> </tbody></table> <p><br/></p> <p><strong>With secondary output</strong></p> <table><thead> <tr> <th style="text-align: right">N-th retry</th> <th style="text-align: right">&nbsp; Elapsed (Before)</th> <th style="text-align: right">&nbsp; Elapsed (This Release)</th> </tr> </thead><tbody> <tr> <td style="text-align: right">1th</td> <td style="text-align: right">1s</td> <td style="text-align: right">1s</td> </tr> <tr> <td style="text-align: right">2th</td> <td style="text-align: right">2s</td> <td style="text-align: right">3s</td> </tr> <tr> <td style="text-align: right">3th</td> <td style="text-align: right">4s</td> <td style="text-align: right">7s</td> </tr> <tr> <td style="text-align: right">4th</td> <td style="text-align: right">8s</td> <td style="text-align: right">15s</td> </tr> <tr> <td style="text-align: right">5th</td> <td style="text-align: right">16s</td> <td style="text-align: right">31s</td> </tr> <tr> <td style="text-align: right">6th</td> <td style="text-align: right">32s</td> <td style="text-align: right">63s</td> </tr> <tr> <td style="text-align: right">7th</td> <td style="text-align: right">64s</td> <td style="text-align: right">127s</td> </tr> <tr> <td style="text-align: right">8th</td> <td style="text-align: right">128s</td> <td style="text-align: right">255s</td> </tr> <tr> <td style="text-align: right">9th</td> <td style="text-align: right">256s</td> <td style="text-align: right">511s</td> </tr> <tr> <td style="text-align: right">10th</td> <td style="text-align: right">(SEC) 409s</td> <td style="text-align: right">(SEC) 818s</td> </tr> <tr> <td style="text-align: right">11th</td> <td style="text-align: right">(SEC) 410s</td> <td style="text-align: right">None</td> </tr> </tbody></table> <p><br/></p> <p>See <a href="https://github.com/fluent/fluentd/pull/3649">#3649</a> for more information.</p> <h3>Apply modifications to the records being passed to <code>@ERROR</code> label</h3> <p><code>Filter</code> plugins such as <code>filter_record_transformer</code> can modify the contents of records before the output.</p> <p>If an error occurred in <code>Output</code> plugin such that records were passed to <code>@ERROR</code> label, those modifications were not applied to those records being passed.</p> <p>In this release, records reflecting those modifications are now passed to <code>@ERROR</code> label.</p> <p>See <a href="https://github.com/fluent/fluentd/pull/3631">#3631</a> for more information.</p> <h2>Miscellaneous fixes</h2> <ul> <li>Support IPv6 address for <code>rpc_endpoint</code> in <code>system</code> config. <a href="https://github.com/fluent/fluentd/pull/3641">#3641</a>.</li> <li>Fix some typo of metric names. <a href="https://github.com/fluent/fluentd/pull/3630">#3630</a>, <a href="https://github.com/fluent/fluentd/pull/3673">#3673</a>.</li> <li>Declare <code>null_value_pattern</code> as <code>regexp</code>. <a href="https://github.com/fluent/fluentd/pull/3650">#3650</a>.</li> <li>CI: Support Ruby 3.1 except Windows. <a href="https://github.com/fluent/fluentd/pull/3619">#3619</a>.</li> <li>Fix <code>CHANGELOG.md</code> heading styles. <a href="https://github.com/fluent/fluentd/pull/3648">#3648</a>.</li> <li>Switch to GitHub Discussions. <a href="https://github.com/fluent/fluentd/pull/3654">#3654</a>.</li> </ul> <p>Enjoy logging!</p> Fluentd v1.14.5 has been released https://www.fluentd.org/blog/fluentd-v1.14.5-has-been-released <p>Hi users!</p> <p>We have released v1.14.5. ChangeLog is <a href="https://github.com/fluent/fluentd/blob/master/CHANGELOG.md#release-v1145---20220209">here</a>.</p> <p>This release is a maintenance release of v1.14 series.</p> <h3><code>in_http</code>: Add support for &quot;application/x-ndjson&quot;</h3> <p>In this release, <code>in_http</code> supports the new Content-Type &quot;application/x-ndjson&quot;. Its format is &quot;ndjson&quot;, which is basically a list of JSON objects separated by &quot;\n&quot;.</p> <p>Here is an example of the format.</p> <pre><code class="json">{&quot;foo&quot;: &quot;bar&quot;} {&quot;buz&quot;: &quot;hoge&quot;} </code></pre> <p>See <a href="https://github.com/fluent/fluentd/pull/3616">#3616</a> for more information.</p> <h3>Add support for the UCRT binary for Windows RubyInstaller 3.1</h3> <p>RubyInstaller 3.1 has switched C-Runtime from MSVCRT to UCRT, and the ruby and gem platform has changed to <code>x64-mingw-ucrt</code>. There was a problem in this environment that Windows-specific dependent gems could not be installed because Fluentd for this architecture had not been released.</p> <p>Beginning with this release, Fluentd for this architecture is also released and this problem is solved.</p> <p>See <a href="https://github.com/fluent/fluentd/pull/3613">#3613</a> for more information.</p> <h3><code>out_forward</code>: Fix hang-up issue during TLS handshake</h3> <p>There was a known issue that TLS handshake takes a long time or hangs when <code>out_forward</code> uses TLS transport, even though <code>connect_timeout</code> is specified.</p> <p>With this release, <code>connect_timeout</code> is now reliably applied to TLS transport and able to prevent hangs.</p> <p>See <a href="https://github.com/fluent/fluentd/pull/3601">#3601</a> for more information.</p> <h3>Miscellaneous fixes</h3> <ul> <li>Fix a bug of retrying once when <code>retry_max_times</code> is <code>0</code>. <a href="https://github.com/fluent/fluentd/pull/3608">#3608</a></li> <li>Fix &quot;invalid byte sequence is replaced&quot; warning not to write out invalid characters. <a href="https://github.com/fluent/fluentd/pull/3596">#3596</a></li> <li>Bump up required ServerEngine to v2.2.5. <a href="https://github.com/fluent/fluentd/pull/3599">#3599</a></li> </ul> <p>Enjoy logging!</p> 2022-02-09 <p>Hi users!</p> <p>We have released v1.14.5. ChangeLog is <a href="https://github.com/fluent/fluentd/blob/master/CHANGELOG.md#release-v1145---20220209">here</a>.</p> <p>This release is a maintenance release of v1.14 series.</p> <h3><code>in_http</code>: Add support for &quot;application/x-ndjson&quot;</h3> <p>In this release, <code>in_http</code> supports the new Content-Type &quot;application/x-ndjson&quot;. Its format is &quot;ndjson&quot;, which is basically a list of JSON objects separated by &quot;\n&quot;.</p> <p>Here is an example of the format.</p> <pre><code class="json">{&quot;foo&quot;: &quot;bar&quot;} {&quot;buz&quot;: &quot;hoge&quot;} </code></pre> <p>See <a href="https://github.com/fluent/fluentd/pull/3616">#3616</a> for more information.</p> <h3>Add support for the UCRT binary for Windows RubyInstaller 3.1</h3> <p>RubyInstaller 3.1 has switched C-Runtime from MSVCRT to UCRT, and the ruby and gem platform has changed to <code>x64-mingw-ucrt</code>. There was a problem in this environment that Windows-specific dependent gems could not be installed because Fluentd for this architecture had not been released.</p> <p>Beginning with this release, Fluentd for this architecture is also released and this problem is solved.</p> <p>See <a href="https://github.com/fluent/fluentd/pull/3613">#3613</a> for more information.</p> <h3><code>out_forward</code>: Fix hang-up issue during TLS handshake</h3> <p>There was a known issue that TLS handshake takes a long time or hangs when <code>out_forward</code> uses TLS transport, even though <code>connect_timeout</code> is specified.</p> <p>With this release, <code>connect_timeout</code> is now reliably applied to TLS transport and able to prevent hangs.</p> <p>See <a href="https://github.com/fluent/fluentd/pull/3601">#3601</a> for more information.</p> <h3>Miscellaneous fixes</h3> <ul> <li>Fix a bug of retrying once when <code>retry_max_times</code> is <code>0</code>. <a href="https://github.com/fluent/fluentd/pull/3608">#3608</a></li> <li>Fix &quot;invalid byte sequence is replaced&quot; warning not to write out invalid characters. <a href="https://github.com/fluent/fluentd/pull/3596">#3596</a></li> <li>Bump up required ServerEngine to v2.2.5. <a href="https://github.com/fluent/fluentd/pull/3599">#3599</a></li> </ul> <p>Enjoy logging!</p> Fluentd v1.14.4 has been released https://www.fluentd.org/blog/fluentd-v1.14.4-has-been-released <p>Hi users!</p> <p>We have released v1.14.4. ChangeLog is <a href="https://github.com/fluent/fluentd/blob/master/CHANGELOG.md#release-v1144---20220106">here</a>.</p> <p>This release is a maintenance release of v1.14 series.</p> <h3><code>in_tail</code>: Add <code>max_line_size</code> option to skip long lines</h3> <p>Starting from v1.14.4, <code>in_tail</code> supports a new option <code>max_line_size</code> that allows to skip lines above a certain size.</p> <pre><code>&lt;source&gt; @type tail path /var/log/nginx/*.log ... max_line_size 8MB # skip very long lines ... &lt;/source&gt; </code></pre> <p>This option can be used to ensure that messages coming from <code>in_tail</code> is within <code>chunk_limit_size</code>, and will eliminate costly error handling on very large messages.</p> <h3>Improvement on <code>BufferChunkOverflowError</code> handling</h3> <p>Beginning with this release, Fluentd will no longer raise <code>BufferChunkOverflowError</code> on an oversized event stream if each event in the stream is smaller than <code>chunk_limit_size</code></p> <p><strong>Example</strong></p> <pre><code class="ruby">es = Fluent::ArrayEventStream.new([[timestamp, {&quot;message&quot; =&gt; &quot;a&quot; * 1_000_000}], [timestamp, {&quot;message&quot; =&gt; &quot;b&quot; * 1_000_000}], [timestamp, {&quot;message&quot; =&gt; &quot;c&quot; * 1_000_000}]]) # Previously this could result in BufferChunkOverflowError even # when chunk_limit_size is large enough (e.g. 1.2MB). router.emit_stream(@tag, es) </code></pre> <p>See <a href="https://github.com/fluent/fluentd/issues/3560">#3560</a> for more information.</p> <h3><code>out_file</code>: Fix inccorect append writes on macOS</h3> <p>Prior to this release, <code>out_file</code> failed to write to files if <code>append</code> option was enabled on macOS with Ruby 2.7/3.0.</p> <p>This issue was due to a bug in Ruby&#39;s IO implementation. This release contains a workaround for that bug.</p> <p>See <a href="https://github.com/fluent/fluentd/pull/3579">#3579</a> for details.</p> <p>Enjoy logging!</p> 2022-01-06 <p>Hi users!</p> <p>We have released v1.14.4. ChangeLog is <a href="https://github.com/fluent/fluentd/blob/master/CHANGELOG.md#release-v1144---20220106">here</a>.</p> <p>This release is a maintenance release of v1.14 series.</p> <h3><code>in_tail</code>: Add <code>max_line_size</code> option to skip long lines</h3> <p>Starting from v1.14.4, <code>in_tail</code> supports a new option <code>max_line_size</code> that allows to skip lines above a certain size.</p> <pre><code>&lt;source&gt; @type tail path /var/log/nginx/*.log ... max_line_size 8MB # skip very long lines ... &lt;/source&gt; </code></pre> <p>This option can be used to ensure that messages coming from <code>in_tail</code> is within <code>chunk_limit_size</code>, and will eliminate costly error handling on very large messages.</p> <h3>Improvement on <code>BufferChunkOverflowError</code> handling</h3> <p>Beginning with this release, Fluentd will no longer raise <code>BufferChunkOverflowError</code> on an oversized event stream if each event in the stream is smaller than <code>chunk_limit_size</code></p> <p><strong>Example</strong></p> <pre><code class="ruby">es = Fluent::ArrayEventStream.new([[timestamp, {&quot;message&quot; =&gt; &quot;a&quot; * 1_000_000}], [timestamp, {&quot;message&quot; =&gt; &quot;b&quot; * 1_000_000}], [timestamp, {&quot;message&quot; =&gt; &quot;c&quot; * 1_000_000}]]) # Previously this could result in BufferChunkOverflowError even # when chunk_limit_size is large enough (e.g. 1.2MB). router.emit_stream(@tag, es) </code></pre> <p>See <a href="https://github.com/fluent/fluentd/issues/3560">#3560</a> for more information.</p> <h3><code>out_file</code>: Fix inccorect append writes on macOS</h3> <p>Prior to this release, <code>out_file</code> failed to write to files if <code>append</code> option was enabled on macOS with Ruby 2.7/3.0.</p> <p>This issue was due to a bug in Ruby&#39;s IO implementation. This release contains a workaround for that bug.</p> <p>See <a href="https://github.com/fluent/fluentd/pull/3579">#3579</a> for details.</p> <p>Enjoy logging!</p>