description |
---|
Use Wasm programs as a filter |
Wasm Filter allows you to modify the incoming records using Wasm technology.
Due to the necessity to have a flexible filtering mechanism, it is now possible to extend Fluent Bit capabilities by writing custom filters using built Wasm programs and its runtime. A Wasm-based filter takes two steps:
- (Optional) Compiled as AOT (Ahead Of Time) objects to optimize Wasm execution pipeline
- Configure the Filter in the main configuration
- Prepare a Wasm program that will be used by the Filter
The plugin supports the following configuration parameters:
Key | Description |
---|---|
Wasm_Path | Path to the built Wasm program that will be used. This can be a relative path against the main configuration file. |
Event_Format | Define event format to interact with Wasm programs: msgpack or json. Default: json |
Function_Name | Wasm function name that will be triggered to do filtering. It's assumed that the function is built inside the Wasm program specified above. |
Accessible_Paths | Specify the whitelist of paths to be able to access paths from WASM programs. |
Wasm_Heap_Size | Size of the heap size of Wasm execution. Review unit sizes for allowed values. |
Wasm_Stack_Size | Size of the stack size of Wasm execution. Review unit sizes for allowed values. |
Here is a configuration example.
[INPUT]
Name dummy
Tag dummy.local
[FILTER]
Name wasm
Match dummy.*
Event_Format json # or msgpack
WASM_Path /path/to/wasm_program.wasm
Function_Name filter_function_name
Accessible_Paths .,/path/to/accessible
[OUTPUT]
Name stdout
Match *