exec
The out_exec
TimeSliced Output plugin passes events to an external program. The program receives the path to a file containing the incoming events as its last argument. The file format is tab-separated values (TSV) by default.
It is included in Fluentd's core.
Example Configuration
Please see the Configuration File article for the basic structure and syntax of the configuration file.
Example: Running FizzBuzz Against Data Stream
This example illustrates how to run FizzBuzz with out_exec
.
We assume that the input file is specified by the last argument in the command line (ARGV[-1]
). The following script fizzbuzz.py
runs FizzBuzz against the new-line delimited sequence of natural numbers (1, 2, 3...) and writes the output to foobar.out
:
Note that this program is written in Python. For out_exec
(as well as out_exec_filter
and in_exec
), the program can be written in any language, not just Ruby.
Then, configure Fluentd as follows:
The @type tsv
and keys fizzbuzz
in <format>
tells Fluentd to extract the fizzbuzz
field and output it as TSV. This simple example has a single key, but you can of course extract multiple fields and use format json
to output newline-delimited JSON.
The intermediate TSV is at /path/to/buffer_path
, and the command python /path/to/fizzbuzz.py /path/to/buffer_path
is run. This is why in fizzbuzz.py
, it is reading the file at sys.argv[-1]
.
If you start Fluentd and run this command:
Then, after 5 seconds, you get a file named foobar.out
:
Supported Modes
Asynchronous
See Output Plugin Overview for more details.
Plugin Helpers
Parameters
@type
@type
The value must be exec
.
command
command
The command (program) to execute. The exec
plugin passes the path of flushed buffer chunk as the last argument.
If you set command
parameter like this:
The actual command execution is:
If cmd
does not exist in PATH, you need to specify the absolute path, e.g. /path/to/cmd
.
command_timeout
command_timeout
Command (program) execution timeout.
<format>
Section
<format>
SectionSee Format Section for more details.
@type
@type
The format used to map the incoming events to the program input.
Overwrites the default value in this plugin.
<inject>
Section
<inject>
SectionSee Inject Section for more details.
time_type
time_type
Overwrites the default value in this plugin.
localtime
localtime
Overwrites the default value in this plugin.
<buffer>
Section
<buffer>
SectionSee Buffer Section for more details.
delayed_commit_timeout
delayed_commit_timeout
Overwrites the default value in this plugin.
If this article is incorrect or outdated, or omits critical information, please let us know. Fluentd is an open-source project under Cloud Native Computing Foundation (CNCF). All components are available under the Apache 2 License.
Last updated