Golang Output Plugins
Fluent Bit supports integration of Golang plugins built as shared objects for output plugins only. The interface for the Golang plugins is currently under development but is functional.
Get started
Compile Fluent Bit with Golang support:
Once compiled, you can see the new -e
option in the binary which stands for external plugin.
Build a Go plugin
The fluent-bit-go
package is available to assist developers in creating Go plugins.
A minimum Go plugin looks like the following:
The previous code is a template to write an output plugin. It's important to keep the package name as main
and add an explicit main()
function. This is a requirement as the code will be build as a shared library.
To build the code, use the following line:
Once built, a shared library called out_gstdout.so
will be available. Confirm the final .so
file is as expected. When you use the ldd
over the library should see something similar to this:
Run Fluent Bit with the new plugin
Configuration file
Fluent Bit can load and run Golang plugins using two configuration files.
Plugins configuration file
Plugins configuration file
Path
A path for a Golang plugin.
Plugin file example
Main configuration file
The keys for Golang plugin available as of this version are described in the following table:
Plugins_file
Main configuration file example
The following is an example of a main configuration file.
Config key constraint
The following configuration keys are reserved by Fluent Bit and must not be used by a custom plugin:
alias
host
ipv6
listen
log_level
log_suppress_interval
match
match_regex
mem_buf_limit
port
retry_limit
routable
storage.pause_on_chunks_overlimit
storage.total_limit_size
storage.type
tag
threaded
tls
tls.ca_file
tls.ca_path
tls.crt_file
tls.debug
tls.key_file
tls.key_passwd
tls.verify
tls.vhost
workers
Run using a configuration file
You can load a main configuration file using -c
option. You don't need to specify a plugins configuration file from command line.
Last updated
Was this helpful?