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?