fluentbit

Fluent Bit v4.0.0 Release Announcement

Spread the love

The Fluentbit team is excited to announce the release of Fluent Bit v4.0.0, the latest version of our fast and lightweight telemetry agent designed for Linux, BSD, macOS, and Windows systems.

As a graduated project under the Cloud Native Computing Foundation (CNCF) umbrella of Fluentd, Fluent Bit continues to evolve, offering enhanced features and improvements to meet the growing demands of cloud and containerized environments.

What is Fluent Bit ?

Fluent Bit serves as a versatile telemetry agent capable of collecting logs, metrics, and traces from various sources, processing them with filters, and forwarding them to multiple destinations. With a strong emphasis on performance and low resource consumption, it has become the preferred choice for many organizations seeking efficient data processing solutions. This major release introduces several significant enhancements aimed at improving log processing capabilities, security, and extensibility. Below are the key highlights of Fluent Bit v4.0.0:

Key Features and Enhancements

Conditional Log Processing

Fluent Bit v4.0.0 introduces a powerful new feature that allows processors to conditionally modify logs based on specific field values. This enhancement provides granular control over log processing, enabling users to apply a variety of conditional operators such as and, or, in, gt, lt, regex, and more. For example, users can now insert a priority field with a value of high into log records where the log level is error.

Example Configuration:

pipeline:
  processors:
    logs:
      - name: content_modifier
        match: '*'
        condition:
          operator: AND
          rules:
            - field: "$log[\"level\"]"
              operator: eq
              value: "error"
        action: insert
        context: log_body
        key: priority
        value: high

Trace Sampling Processor

This release introduces a new trace sampling processor with a pluggable architecture, supporting various sampling strategies and backends. It includes both head sampling (probabilistic) and tail sampling with conditions, allowing for more efficient and targeted trace data collection.

Head Sampling (Probabilistic): Enables probabilistic sampling of traces based on a specified sampling percentage.

Tail Sampling (Conditional): Evaluates traces based on various conditions before making a sampling decision. Available conditions include:

  • Status Code
  • Latency
  • String Attribute
  • Numeric Attribute
  • Boolean Attribute
  • Span Count
  • Trace State

Example Configuration:

pipeline:
  inputs:
    - name: opentelemetry
      port: 4318
      processors:
        traces:
          - name: sampling
            type: tail
            sampling_settings:
              decision_wait: 2s
            conditions:
              - type: boolean_attribute
                key: "user.logged"
                value: false

Enhanced Security Mechanisms

Fluent Bit v4.0.0 brings several security enhancements to provide users with greater control and flexibility:

  • TLS Configuration Enhancements: Users can now specify minimum and maximum allowed TLS versions (tls.min_version and tls.max_version) and define acceptable ciphers (tls.ciphers) to strengthen communication security.
  • Environment Variable File Reference: Fluent Bit now supports referencing internal variables from the file system, facilitating secure handling of sensitive data like secrets or tokens. Secrets or bearer tokens can be stored in files and referenced in configuration files using the file:// prefix.

Example Configuration:

env:
  FLUSH_INTERVAL: 1
  TOKEN: file://mysecret.txt

service:
  flush: ${FLUSH_INTERVAL}
  log_level: info

pipeline:
  inputs:
    - name: dummy
      dummy: '{"message": "Hello, World!", "secret": "${TOKEN}"}'

  outputs:
    - name: http
      match: '*'
      host: example.com
      port: 443
      uri: /ingest
      format: json
      tls: on
      header: Bearer ${TOKEN}

Experimental Features

Fluent Bit v4.0.0 includes experimental support for plugins written in the Zig programming language. This new capability allows developers to write high-performance plugins leveraging Zig’s modern features and safety guarantees. Note that experimental features are disabled by default but can be enabled at build time.

Plugin Improvements

Input Plugins

OpenTelemetry:

  • Added JSON trace support.
  • Enforced 16MB max gRPC message size.
  • eBPF: Fixed skeleton compilation.
  • Kubernetes Events: SQLite DB cleanup fixes.
  • HTTP: Added gzip and zstd compression support.

Filters & Processors

  • Kubernetes Filter: Added owner_references metadata.
  • Sampling Processor: New tail/head sampling logic.
  • Labels Processor: Dynamic buffer fixes.

Output Plugins

  • OpenTelemetry: zstd compression support.
  • HTTP: Fixed compressed payload handling.
  • Loki: Structured metadata key support.
  • Azure Kusto: Managed identity authentication.

Upgrading Notes

For users upgrading from previous versions, it is essential to review the Upgrading Notes section of our documentation to ensure a smooth transition.

Contributors

We extend our gratitude to the numerous contributors who have played a vital role in this release through coding, bug reporting, troubleshooting, documentation, and more. Your efforts are invaluable to the continued success of Fluent Bit.

Join FluentD Community

We invite you to join our growing community. Connect with us through the following channels:

For more details and to download Fluent Bit v4.0.0, visit our official website.


Spread the love

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top
×