Fluent Bit v1.1 comes with a new and optional Stream Processor Engine that allows to do data processing through SQL queries. This article covers the format of the expected configuration file.
For more details about the Stream Processor Engine use please refer to the following guide:
The stream processor can be configured through defining Tasks which have a name and an execution SQL statement:
The Stream Processor is configured through a streams file that is referenced from the main fluent-bit.conf configuration file through the Streams_File key. The content of the streams file must have the following format specified in the table below:
Consider the following fluent-bit.conf configuration file:
Now creates a stream_processor.conf configuration file with the following content:
On the query there are a few things happening:
Fluent Bit will gather CPU usage metrics through CPU input plugin (metrics are calculated by default every second).
Stream Processor have a Task attached to any incoming Stream of data called cpu_data (check the alias set in the Input section).
Stream Processor will aggregate the value of cpu_p record field and calculate it average during a window of 5 seconds.
Stream Processor every 5 seconds will send the results back into Fluent Bit pipeline with a tag called results.
Fluent Bit output section will match results tagged records and print them to the standard output interface.
You should see the following output in your terminal:
If you want to learn more about our Stream Processor engine please read the official guide.
Concept
Description
Task
Definition of a Stream Processor task to be executed. A task is defined through a section called STREAM_TASK.
Name
Tasks have a name for debugging and testing purposes.
Exec
SQL statement to be executed when a Task runs.
Section
Key
Description
Mandatory?
STREAM_TASK
Name
Set a name for the task in question. The value is used as a reference only.
Yes
Exec
SQL statement to be executed by the task. Note that the SQL statement must be finished with a semicolon. The SQL statement must be set in one single line (no multiline support in the configuration)
Yes