Hi users!
We have released v0.14.20. Here are the changes (full ChangeLog is available here): This release is mainly for bug fixes and new plugin helper.
We say again, fluentd v0.14 is still development version. We need your feedback! If you try v0.14, check your configuration and plugins carefully.
We introduce new record_accessor
helper. This provides unified nested record access mechanism for plugins.
Some plugins don't support nested record access and it makes the configuration complicated.
record_accessor
helper mitigates this problem.
Here is an example of grep filter plugin with record_accessor
:
<filter pattern>
@type grep
<regexp>
key $.event.level # Access record["event"]["level"] field, not record["$.event.level"]
pattern WARN
</regexp>
</filter>
record_accessor
supports two jsonpath like syntax:
$.
started parameter. Chain fields by .
Simple syntax: $.event.level
for record["event"]["level"]
, $.key1[0].key2
for record["key1"][0]["key2"]
$[
started parameter. Chain fields by []
Useful for special characters, .
, and etc:
$["dot.key"][0]["space key"]
for record["dot.key"][0]["space key"]
If you set non $.
or $[
started value, e.g. key log
, it is same as record["log"]
. So using record_accessor
doesn't break existing plugin behaviour.
To plugin developers, this is code example of plugin:
require 'fluent/plugin/filter'
module Fluent::Plugin
class FooFilter < Filter
Fluent::Plugin.register_filter('foo', self)
# 1. load record_accessor helper
helpers :record_accessor
def configure(conf)
# 2. Call `record_accessor_create` to create accessor object.
# Actually, "$.key1.key2" comes from the configuration
@accessor = record_accessor_create("$.key1.key2")
end
def filter(tag, time, record)
# 3. Call `call` method
value = @accessor.call(record) # Get record["key1"]["key2"] field value
# ...
end
end
end
Currently, filter_grep
supports record_accessor
. We will add record_accessor
support to other plugins.
We sometimes got the request "We want fluentd's log as json format like Docker. json is easy to parse."
This is good idea, so we add <log>
directive to under <system>
directive.
<system>
<log>
# text or json. default is text
format json
# Change format of log time. This affects both text and json.
time_format FT%T%:z
</log>
</system>
Here are log example:
2017-07-27 07:37:02 +0900 [info]: #0 fluentd worker is now running worker=0
{"time":"2017-07-27 06:44:54 +0900","level":"info","message":"fluentd worker is now running worker=0","worker_id":0}
We got a bug report about broken meta file with buf_file
. v0.14.20 includes the patch for this problem.
We need the feedback the problem still happens or not.
Before, Supervisor sends a signal to latest one on multiple process environment. Supervisor now sends a signal to all workers.
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-05-01: Fluentd v1.16.8 has been released
2025-03-14: Drop Alpine and switch default to Debian for Fluentd docker image
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
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.