Hi users!
We have released v0.14.13 with several bug fixes and new utilities.
Here are the changes (full ChangeLog is available here):
We say again, fluentd v0.14 is still development version. We need your feedback seriously! If you try to use v0.14, check your configuration and plugins carefully.
fluent-plugin-generate
helps you to create new plugin for v0.14. It generates skelton code and rubygems files.
Here is the step for new plugin release:
# Create plugin files. generate command takes two arguments, plugin type and name
% fluent-plugin-generate output test
License: Apache-2.0
create Gemfile
create README.md
create Rakefile
create fluent-plugin-test.gemspec
create lib/fluent/plugin/out_test.rb
create test/helper.rb
create test/plugin/test_out_test.rb
Initialized empty Git repository in /Users/repeatedly/tmp/fluent-plugin-test/.git/
# Set up develop environment
% gem install bundler # if you don't install bundler yet
% edit fluent-plugin-test.gemspec # need to update summary, description and homepage to use bundle
% bundle install --path vendor/bundle
% bundle exec rake test # check running test
# edit plugin code and test
% edit lib/fluent/plugin/out_test.rb
% edit test/plugin/test_out_test.rb
# Update README and publish gem
% edit README.md
% bundle exec rake release
Currently, our plugin development article for v0.14 is incomplete. We will write new article with v0.14 API soon.
In v0.12, Output plugin can skip invalid / unexpected record by using Fluent::BufferedOutput#format_stream
API.
But v0.14 API doesn't provide it so hard to migrate v0.12 plugin into v0.14.
To avoid this problem, Fluent::Plugin::Output#format
API can return nil
to skip the record.
Here is an example:
helpers :event_emitter # need this code to use router in Output plugin
def format(tag, time, record)
if record['field'] == 'foo'
record.to_json + "\n"
else
router.emit_error_event(tag, time, record, ArgumentError.new("received event is invalid in xxx plugin"))
nil
end
end
With above code, if the value of field
is 'foo'
, its events are stored into buffer.
On the other hand, other events are routed to error stream and sucn events are not stored in buffer.
retry_max_times
parser_regex
requireenable_ruby
regression.Enjoy logging!
Subscribed to the RSS feed here.
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.
Fluentd is an open source data collector to unify log management.
2024-08-29: Scheduled support lifecycle announcement about Fluent Package v6
2023-08-29: Drop schedule announcement about EOL of Treasure Agent (td-agent) 4
2023-08-29: Scheduled support lifecycle announcement about Fluent Package
2023-07-31: Upgrade to fluent-package v5
2025-02-14: fluent-package v5.0.6 has been released
2025-01-29: Fluentd v1.16.7 has been released
2024-12-14: fluent-package v5.2.0 has been released
2024-11-29: Fluentd v1.18.0 has been released
2024-11-08: fluent-package v5.0.5 has been released
2024-08-29: Scheduled support lifecycle announcement about Fluent Package v6
2024-08-20: Fluentd v1.16.6 has been released
2024-08-19: Fluentd v1.17.1 has been released
2024-08-02: fluent-package v5.1.0 has been released
2024-07-02: fluent-package v5.0.4 has been released
Want to learn the basics of Fluentd? Check out these pages.
Couldn't find enough information? Let's ask the community!
You need commercial-grade support from Fluentd committers and experts?
©2010-2025 Fluentd Project. ALL Rights Reserved.
Fluentd is a hosted project under the Cloud Native Computing Foundation (CNCF). All components are available under the Apache 2 License.