C C++ Objective-C Shell CMake Python Other
Latest commit 98e8652 Apr 21, 2017 @edsiper edsiper in_tail: perf improvement when processing file content: from 90.78% t…
…o 37.52%

When processing a file content (chunk), the parser routine was invoking memmove()
for every line processed to simplify the buffer management, which ended-up in
some unnnecessary overhead.

This patch makes a better buffer management and now memmove() is only used after
processing the whole number of lines in the buffer.

  before  process_content(): 90.78%
  after   process_content(): 37.52%

Signed-off-by: Eduardo Silva <eduardo@treasure-data.com>
Failed to load latest commit information.
bin Initial import. Jan 27, 2015
build Build: add missing build/ directory Jan 29, 2015
cmake CI: include Armadillo IoT toolchain to build tests May 30, 2016
conf conf: parser: docker parse now lookup fractional seconds Apr 18, 2017
cpack build: CMake: update package info Mar 14, 2017
debian debian: update control file info Mar 24, 2017
documentation Doc: fix URL Jun 2, 2016
examples out_lib: use new flb_time_now() API (#193) Apr 19, 2017
include lib: new flb_time_now() exposed API Apr 19, 2017
init init: forward-port systemd init script Nov 2, 2016
lib lib: flb_libco: merged changes for aarch64 support (#228) Apr 19, 2017
plugins in_tail: perf improvement when processing file content: from 90.78% t… Apr 21, 2017
src lib: new flb_time_now() exposed API Apr 19, 2017
tests tests: fix fails of test for in_proc plugin Mar 3, 2017
.gitignore git: ignore lib/onigmo changes Mar 31, 2017
.travis.yml ci: travis: enable OSX build Mar 24, 2017
CMakeLists.txt in_xbee: deprecate plugin, more details on #181 Apr 19, 2017
CONTRIBUTING.md Doc: update Contribution guidelines with License requirements Jun 8, 2015
GOLANG_OUTPUT_PLUGIN.md doc: add a Golang output plugin how-to Nov 10, 2016
LICENSE Doc: add reference to Apache License v2.0 Jan 28, 2015
README.md README: add filter plugins Mar 21, 2017
appveyor.yml CI: Appveyor: disable examples Jan 18, 2017
debian.sh Debian: add packager script Sep 21, 2015
fluent-bit_git.bb OpenEmbedded/Yocto: make fluent-bit recipe use GIT repository for now May 21, 2015
fluentbit_logo.png Doc: Add logo to README Aug 17, 2016
valgrind.supp core: add valgrind suppression error files (dl-open leaks) Sep 22, 2016


Fluent Bit is a Data Forwarder for Linux, Embedded Linux, OSX and BSD family operating systems. It's part of the Fluentd Ecosystem. Fluent Bit allows collection of information from different sources, buffering and dispatching them to different outputs such as Fluentd, Elasticsearch, Nats or any HTTP end-point within others. It's fully supported on x86_64, x86 and ARM architectures.

For more details about it capabilities and general features please visit the official documentation:


Quick Start

$ cd build
$ cmake ..
$ make
$ bin/fluent-bit -i cpu -o stdout


Fluent Bit support the following features through plugins:

Input plugins

name option description
CPU cpu gather CPU usage between snapshots of one second. It support multiple cores
Disk disk usage of block device
Forward forward Fluentd forward protocol
Memory mem usage of system memory
MQTT mqtt start a MQTT server and receive publish messages
Kernel Ring Buffer kmsg read Linux Kernel messages, same behavior as the dmesg command line program
Serial Port serial read from serial port
Standard Input stdin read from the standard input
XBee xbee listen for incoming messages over a Xbee device
Head head read first part of files
Health health check health of TCP services
Process proc check health of Process
Random random generate random numbers
Tail tail tail log files
TCP tcp listen for raw JSON map messages over TCP

Filter Plugins

name option description
Grep grep Match or exclude specific records by patterns
Kubernetes kubernetes Enrich logs with Kubernetes Metadata
Stdout stdout Print records to the standard output interface

Output Plugins

name option description
Counter counter count records
Elasticsearch es flush records to a Elasticsearch server
File file flush records to a file
FlowCounter flowcounter count records and its size
Forward forward flush records to a Fluentd service. On the Fluentd side, it requires an in_forward.
NATS nats flush records to a NATS server
HTTP http flush records to a HTTP end point
InfluxDB influxdb flush records to InfluxDB time series database
Plot plot generate a file for gnuplot
Standard Output stdout prints the records to the standard output stream
Treasure Data td flush records to Treasure Data service (cloud analytics)

Official Documentation

The official documentation of Fluent Bit can be found in the following site:



In order to contribute to the project please refer to the CONTRIBUTING guidelines.


Feel free to join us on our Slack channel, Mailing List or IRC:


This program is under the terms of the Apache License v2.0.


Fluent Bit is made and sponsored by Treasure Data among other contributors.