Knowledge Base

Release Notes v1.1.0

Fluent Bit is a Fast and Lightweight Data Processor and Forwarder for Linux, BSD and OSX. We are proud to announce the availability of Fluent Bit v1.1.0.

Changes

Fluent Bit v1.1.0 is the next major release and include several improvements in the stack but also bring two major new things:

Windows Support (beta)

Starting from this version we are supporting builds on Windows environments, note that not all plugins are enabled by the build system since portability is still an ongoing work. Consider Windows support still an early implementation.

Stream Processor

Stream Processing is about the ability to perform data processing while it still in motion in-memory. Starting from Fluent Bit v1.1 we implement a Stream Processor engine that provides a full SQL interface to query or filter your logs after they passed the storage phase. For more details about this new feature please refer to the following documentation:

https://docs.fluentbit.io/stream-processing/

List of general changes

  • Core

    • bin
      • new -T/--sp-task option to set SQL task for stream processor
      • accept flush time parameter in format seconds.nanoseconds (sec.nsec)
    • io
      • tls: fix conditional for ca_path (CID 185944)
    • utils: protect flb_utils_split() from null input (#1150)
    • parser
      • parser: do not raise errors instantly on '%z'/'%Z' on Windows
      • parser: Add FLB_HAVE_GMTOFF to detect tm_gmtoff support (#1048)
    • scheduler
      • scheduler: fix multiple SIGSEGV issues on Windows (#1209)
      • scheduler: use mk_event_closesocket() to close timer->timer_fd (#1205)
    • parser: include k8s nginx ingress parser
    • config:
      • fix SIGSEGV errors on shutdown of input plugins (#1081)
      • support 'double' type in configuration
    • filter:
      • use unique instance ids
      • on exit, do not invoke cb_exit() if no context is set (#1195)
      • initialize every memory instance with zeros (#1195)
      • compose safety Tag and fix write offset (#993)
      • fix buffer management on chain filters (#975)
    • lib: mbedtls: upgrade from v2.14.1 to v2.16.1
    • hash:
      • improve flb_hash_add to take key up to key_length (#1186)
      • fix key deletion (#1185)
      • make flb_hash_get to work with non-null terminated strings (#1216)
    • proxy:
      • go: create cb_flush_ctx to share context between init and flush
      • use flb_plugin_proxy_context when calling into remote plugins
      • proxy: add Windows support for Golang plugins (#1196)
    • router: unify call to check matching routes
    • task: if a retry exceed current memory limit, put chunk down
    • output:
      • remove unnecessary loop to initialize proxies
      • set remote proxy context for output instances
      • fix protocol loader/check
      • use unique instance id, no mask_id
    • pack:
      • gelf: allow valid level 7 (#1165)
      • gelf: fix printf %.*s arguments order. (#1132)
      • gelf: fix wrong warn gelf-level (#912)
  • Plugins

    • Systemd (Input)
      • Fix endless loop while reading a rotated journal file it fixes fluent-bit issue #899.
      • Register read_from_tail option and cleanup variable check
      • Fix strip_underscores (adds extra character to value) #904
    • Stdin (Input)
      • Prevent double free / use after free of msgpack buffer (#1052)
    • Lib (Input)
      • Use flb_pipe_r() for compatibility with Windows
    • Exec (Input)
      • Add buf_size property for exec plugin (#1116)
    • Storage_Backlog (Input)
      • Upon start, put chunks 'down'
    • Random (Input)
      • Use evutil_secure_rng_get_byte to obtain random numbers on Windows (#1181)
    • Tail (Input)
      • Restore support of absolute path in expanded tags
      • Windows Support
      • Use win32 glob emulation on Windows
      • Add crlf support to in_tail (#1161)
      • Emulate inodes on windows (#1160)
      • Avoid locking files on windows (#1159)
      • Add tail_scan_win32.c for scanning paths on windows (#1156)
      • Implement flb_tail_file_name() for windows (#1144)
      • Cast arguments explicitly for snprintf(2) (#1158)
      • Use c99 macro instead of '%lu' to format 64-bit integers (#1157)
      • Disable multiline support if no parser backend exists
      • Avoid double freeing the same timeout event object (#1139)
      • Migrate pipe operations to flb_pipe_* functions (#1137)
      • Include libgen.h though flb_compat.h for portability (#1136)
      • Fix sigsegv due to the incompatible type length in windows (int/intptr_t) (#1133)
      • Open the target file in binary mode (#1113)
      • Inotify: add detailed error on inotify enospc (#1018)
      • Add support for internal metrics
    • MQTT (Input)
      • Fix memory corruption on dropping packet (#1135)
    • Stream_Processor (Input)
      • Auto-set tag based on alias
      • New stream processor helper plugin
    • Forward (Input)
      • Disable unix socket support if not available in the system
    • Cpu (Input)
      • Extend to support sec.nanosecond for sub-second sample rate (#1122)
    • Lua (Filter)
      • Fix casting of int64 value (#1103)
      • Port filter_lua to windows (#1054)
    • Kubernetes (Filter)
      • New configuration property 'kube_tag_prefix'
      • Fix default api server hostname
      • Add new keep_log configuration option
      • Allow user to decide whether they want to include labels (#1129)
      • Extract docker_id and container_hash from kubernetes api (#1131)
      • Fix memory leak on pod record exclusion (#1068)
    • HTTP (Output)
      • Add epoch option for json_date_format (#1111)
      • Add user-agent header (#1058)
    • Kafka_Rest (Output)
      • Rename config functions to avoid bad reference
    • Kafka (Output)
      • Make msvc compatible (#1179)
      • Add timestamp_format to kafka output (#1086)
    • File (Output)
      • Make windows ready (#1268)
      • Fix data type to validate fwrite() return value (cid 185940)
      • Add new 'msgpack' format (for devs use only)
      • Fix leaks when exiting on exception (cid 185662, 185672)
    • Forward (Output)
      • Make shared_key usable without tls (and vice versa)
      • Fix the error handling for network writes
    • Stackdriver (Output)
      • Add missing / to uri
      • Fix uri leak on gce_metadata (cid 185751)
      • Fix order of upstream i/o sync flags (cid 185752)
      • Fix gce metadata header length (cid 185754)
      • Added support of metadata server and gce_instance resource. (#1073)
    • Elasticsearch (Output)
      • Fix buffer overrun on trace_output=on (#1201)
      • Fix elasticsearch_error_check, add trace_error output (#1148)
      • Validate mem allocation and fail upon exception (cid 185622)
      • Add path option. fixes #900. (#901)
      • Add logstash_prefix_key support (#698)
      • Add current_time_index option (pr #512, #454)

Contributors

We would like to thanks to the following people who have been involved doing coding, bug fixes, troubleshooting, documentation, reporting issues and general contributions on this release:

Join us!

We want to hear about you, our community is growing and you can be part of it!, you can contact us at: