Golang Output Plugins
Calyptia Fluent Bit currently 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.
Build a Go Plugin
The fluent-bit-go package is available to assist developers in creating Go plugins.
https://github.com/fluent/fluent-bit-go
At a minimum, a Go plugin looks like this:
the code above is a template to write an output plugin, it's really 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 above, use the following line:
Once built, a shared library called out\_gstdout.so
will be available. It's really important to double check the final .so file is what we expect. Doing a ldd
over the library we should see something similar to this:
Run Calyptia Fluent Bit with the new plugin
Configuration file
Calyptia Fluent Bit can load / run Golang plugin using two configuration file.
Plugins configuration file
Plugins configuration file
Path
A path for a Golang plugin.
Example
Main configuration file
The keys for Golang plugin available as of this version are described in the following table:
Plugins_file
Example
The following is an example of a main configuration file.
Config key constraint
Some config keys are reserved by Calyptia Fluent Bit and must not be used by a custom plugin, they are: 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
We can load a main configuration file using -c
option. Note: No need to specify a plugins configuration file from command line.
Last updated