File

The File output plugin lets you write the data received through the input plugin to file.

Configuration parameters

The plugin supports the following configuration parameters:

Key
Description
Default

Path

Directory path to store files. If not set, Fluent Bit will write the files on it's own positioned directory. Available in Fluent Bit 1.4.6 and later.

none

File

Set filename to store the records. If not set, the filename will be the tag associated with the records.

none

Format

The format of the file content.

out_file

Mkdir

Recursively create output directory if it doesn't exist. Permissions set to 0755.

none

Workers

The number of workers to perform flush operations for this output.

1

Format

This plugin uses the following formats:

out_file

Output time, tag, and json records. There are no configuration parameters for out_file.

tag: [time, {"key1":"value1", "key2":"value2", "key3":"value3"}]

Plain

Output the records as JSON (without additional tag and timestamp attributes). There are no configuration parameters for plain format.

{"key1":"value1", "key2":"value2", "key3":"value3"}

CSV

Output the records in CSV format. CSV mode supports an additional configuration parameter.

Key
Description

Delimiter

The character to separate each data. Accepted values: \t (or tab), (space), or , (comma). Other values are ignored and will use default silently. Default: ,

time[delimiter]"value1"[delimiter]"value2"[delimiter]"value3"

LTSV

Output the records in LTSV format. LTSV mode supports an additional configuration parameter.

Key
Description

Delimiter

The character to separate each pair. Default: t (TAB)

Label_Delimiter

The character to separate label and the value. Default: :

field1[label_delimiter]value1[delimiter]field2[label_delimiter]value2\n

Template

Output the records using a custom format template.

Key
Description

Template

The format string. Default: {time} {message}

This accepts a formatting template and fills placeholders using corresponding values in a record.

For example, if you set up the configuration like the following:

pipeline:
  inputs:
    - name: mem

  outputs:
    - name: file
      match: '*'
      format: template
      template: '{time} used={Mem.used} free={Mem.free} total={Mem.total}'

You will get the following output:

1564462620.000254 used=1045448 free=31760160 total=32805608

Get started

You can run the plugin from the command line or through the configuration file.

Command line

From the command line you can let Fluent Bit count up a data with the following options:

fluent-bit -i cpu -o file -p path=output.txt

Configuration file

In your main configuration file append the following:

pipeline:
  inputs:
    - name: cpu
      tag: cpu

  outputs:
    - name: file
      match: '*'
      path: output_dir

Last updated

Was this helpful?