Fluentd v0.10.58 is released

Hi users!

We have just released Fluentd version 0.10.58. Here are the changes:

  • parser/formatter: Add base class and Plugin.new_xxx / Plugin.register_xxx APIs: #495,#497
  • parser: Fix blank column handling of TSVParser: #506
  • formatter: Add new CSV formatter: #489
  • formatter: Add msgpack format to built-in Formatter to dump records: #479
  • config: Add self.name to configure_proxy error message: #490
  • config: Fix system config using double memory: #496
  • config: Fix v1 config to support multiple tag match: #478
  • config: Fix Config.bool_value regression for nil value: #477
  • input: Add in_dummy plugin: #484
  • in_http: Add respond_with_empty_img parameter to return empty gif image: #480
  • in_http: Add cors_allow_origins parameter to support CORS request: #473
  • buffer: Prevent an exception with large num_retries: #502
  • out_file: Don't create world writable directory in daemon mode: #483
  • Add router.emit and router= for compatibility with v0.12: #510
  • Use router.emit instead of Engine.emit: #511

This release is mainly for improving compatibility with v0.12.

New Parser and Formatter API

In v0.10.57 or earlier, we use following APIs to implement Parser class.

# Parser implementation
module Fluent
  class TextParser
    # Not inherit base class
    class FooParser
      include Configurable

      # Overwrite initialize, configure and parse method

      # register this parser
      TextParser.register_template('foo', Proc.new { FooParser.new })
    end
  end
end

# Instantiate parser
parser = TextParser.new
parser.configure(conf)

New APIs are below:

# Parser implementation
module Fluent
  class TextParser
    # inherit Parser base class
    class FooParser < Parser
      # register this plugin without Proc.new trick
      Plugin.register_parser('foo', self)

      # Overwrite initialize, configure and parse method
    end
  end
end

# Instantiate parser
parser = Plugin.new_parser('foo')
parser.configure(conf)

Formatter also has same APIs. New API is consistent with Input / Output plugins. We still have old API but we recommend to use new API for new parser / formatter plugins.

Add router attribute to Input / Output

In v0.12, Input / Output plugins have router attribute for Label and Engine.emit is deprecated(Engine.emit forwards events to root_agent.emit).

v0.10.58 adds router attribute to Input / Output plugins for API compatibility with v0.12. Changing Engine.emit to router.emit has no effect on v0.10 but such plugin works on both v0.10 and v0.12 properly.

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.


About Fluentd

Fluentd is an open source data collector to unify log management.

Learn

Want to learn the basics of Fluentd? Check out these pages.

Ask the Community

Couldn't find enough information? Let's ask the community!

Ask the Experts

You need commercial-grade support from Fluentd committers and experts?

Follow Us!