We are pleased to announce that we have released Fluentd v0.12 today. v0.12 introduces nice features and improves internal structures (in anticipation for v1).
RubyGems: fluentd 0.12.0
--use-v1-config
is used by default, which means that the user can use JSON arrays/hashes and embedded Ruby code natively. See the docs for further details.
In addition, we introduced the @
prefix for system parameter or label symbols to avoid conflicts with plugin parameters.
@type
specifies plugin type@id
specifies plugin id. in_monitor_agent
uses this value for plugin_id
field.@label
specifies label. See the Label
section below.type
and id
are still valid to ensure backward compatibility.
v1 config has one incompatibility problem: if the value of a parameter starts with the characters '{' or '[', it is now interpreted as JSON. To keep using the existing config, the parameter value must be explicitly quoted. Check "Multi line support for array and hash values" for further details.
v0.12 introduces filter plugins to process event streams. With filter plugins, the old trick of "using output plugins as filter" is no longer needed.
Seeing is believing:
<filter pattern1>
@type filter_foo
# ...
</filter>
<filter pattern2>
@type filter_bar
# ...
</filter>
Fluentd tries to apply a filter chain to event streams.
If a tag is matched with pattern1
and pattern2
, Fluentd applies filter_foo
and filter_bar
top-to-bottom (filter_foo
followed by filter_bar
).
See this v0.12 configuration as a detailed example.
v0.12 ships with grep
and record_transformer
plugins.
The grep
filter is a filter version of fluent-plugin-grep of output plugin.
The configuration example is below:
<filter foo.**>
@type grep
regexp1 message INFO
</filter>
If the value of the "message" field doesn't match "INFO", such events are removed from event stream.
grep
filter doesn't support the old input_key
and regexp
pair.
The record_transformer
filter is a filter version of fluent-plugin-record-reformer output plugin.
<filter bar.**>
@type record_transformer
<record>
hostname ${hostname}
</record>
</filter>
Filters don't allow tag rewriting. So, unlike record_reformer
, record_transformer
doesn't have tag-related parameters.
Label is useful for grouping Filter and Output Plugins. Labels simplify event stream routing and reduces the complexity of configuration files.
Again, seeing is believing:
# The events coming from this source are routed to the file <match>.
<source>
@type forward
port 24224
</source>
# The events from this source are routed to s3 <match> in <label @STAGING>
<source>
@type forward
@label @STAGING
port 24225
</source>
<match forward.**>
@type file
# ...
</match>
# Label symbol should have `@` prefix bacause it is not a pattern.
<label @STAGING>
<match forward.**>
@type s3
# ...
</match>
</label>
Fluentd now supports at-least-once semantics between in_forward
and out_forward
.
If you set require_ack_response
parameter in out_forward
plugin,
out_forward
waits ack response from in_forward
.
<match forward.**>
@type forward
# ...
require_ack_response true
ack_response_timeout 60s # default is 190s
<server>
# ...
</server>
</match>
We tested v0.12 in some high-load environments without issues. That said, if you run into trouble with v0.12 in your environment, please file an issue on GitHub.
In addition, we are now updating Fluentd document for v0.12. More detailed information, e.g. how to write filter plugins, will be available soon!
Enjoy Fluentd!
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
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
2024-04-30: Fluentd v1.17.0 has been released
2024-03-29: fluent-package v5.0.3 has been released
2024-03-27: Fluentd v1.16.5 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-2024 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.