Wasm

Use Wasm programs as a filter.

The Wasm filter lets you modify the incoming records using Wasm technology.

You can extend Fluent Bit capabilities by writing custom filters using built Wasm programs and its runtime. A Wasm-based filter takes the following steps:

  1. (Optional) Compile Ahead Of Time (AOT) objects to optimize the Wasm execution pipeline.

  2. Configure the filter in the main configuration.

  3. Prepare a Wasm program that will be used by the filter.

Configuration parameters

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 path relative to 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 previously.

Accessible_Paths

Specify the allowlist 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.

Configuration example

Here is a configuration example.

pipeline:
    inputs:
        - name: dummy
          tag: dummy.local

    filters:
        - name: wasm
          match: 'dummy.*'
          event_format: json    # or msgpack
          wasm_path: /path/to/wasm_program.wasm
          function_name: filter_function_name
          # Note: run Fluent Bit from the 'wasm_path' location.
          accessible_paths: /path/to/accessible
        
    outputs:
        - name: stdout
          match: '*'

Last updated

Was this helpful?