# Table of Contents - [What is Fluent Bit? | Fluent Bit: Official Manual](#what-is-fluent-bit-fluent-bit-official-manual) - [A Brief History of Fluent Bit | Fluent Bit: Official Manual](#a-brief-history-of-fluent-bit-fluent-bit-official-manual) - [License | Fluent Bit: Official Manual](#license-fluent-bit-official-manual) - [Fluentd and Fluent Bit | Fluent Bit: Official Manual](#fluentd-and-fluent-bit-fluent-bit-official-manual) - [Input | Fluent Bit: Official Manual](#input-fluent-bit-official-manual) - [Fluent Bit Documentation | Fluent Bit: Official Manual](#fluent-bit-documentation-fluent-bit-official-manual) - [Key Concepts | Fluent Bit: Official Manual](#key-concepts-fluent-bit-official-manual) - [Buffering | Fluent Bit: Official Manual](#buffering-fluent-bit-official-manual) - [Data Pipeline | Fluent Bit: Official Manual](#data-pipeline-fluent-bit-official-manual) - [Sandbox and Lab Resources | Fluent Bit: Official Manual](#sandbox-and-lab-resources-fluent-bit-official-manual) - [Parser | Fluent Bit: Official Manual](#parser-fluent-bit-official-manual) - [Filter | Fluent Bit: Official Manual](#filter-fluent-bit-official-manual) - [Buffer | Fluent Bit: Official Manual](#buffer-fluent-bit-official-manual) - [Output | Fluent Bit: Official Manual](#output-fluent-bit-official-manual) - [Requirements | Fluent Bit: Official Manual](#requirements-fluent-bit-official-manual) - [Sources | Fluent Bit: Official Manual](#sources-fluent-bit-official-manual) - [Router | Fluent Bit: Official Manual](#router-fluent-bit-official-manual) - [Download Source Code | Fluent Bit: Official Manual](#download-source-code-fluent-bit-official-manual) --- # What is Fluent Bit? | Fluent Bit: Official Manual Last updated 1 month ago Was this helpful? is an open source telemetry agent specifically designed to efficiently handle the challenges of collecting and processing telemetry data across a wide range of environments, from constrained systems to complex cloud infrastructures. Managing telemetry data from various sources and formats can be a constant challenge, particularly when performance is a critical factor. Rather than serving as a drop-in replacement, Fluent Bit enhances the observability strategy for your infrastructure by adapting and optimizing your existing logging layer, and adding metrics and traces processing. Fluent Bit supports a vendor-neutral approach, seamlessly integrating with other ecosystems such as Prometheus and OpenTelemetry. Trusted by major cloud providers, banks, and companies in need of a ready-to-use telemetry agent solution, Fluent Bit effectively manages diverse data sources and formats while maintaining optimal performance and keeping resource consumption low. Fluent Bit can be deployed as an edge agent for localized telemetry data handling or utilized as a central aggregator/collector for managing telemetry data across multiple sources and environments. [Fluent Bit](https://fluentbit.io) --- # A Brief History of Fluent Bit | Fluent Bit: Official Manual Last updated 1 month ago Was this helpful? In 2014, the team at was forecasting the need for a lightweight log processor for constraint environments like embedded Linux and gateways. The project aimed to be part of the Fluentd ecosystem. At that moment, Eduardo Silva created , a new open source solution, written from scratch and available under the terms of the. After the project matured, it gained traction for normal Linux systems. With the new containerized world, the Cloud Native community asked to extend the project scope to support more sources, filters, and destinations. Not long after, Fluent Bit became one of the preferred solutions to solve the logging challenges in Cloud environments. [Fluentd](https://www.fluentd.org/) [Treasure Data](https://www.treasuredata.com/) [Fluent Bit](https://fluentbit.io/) [Apache License v2.0](http://www.apache.org/licenses/LICENSE-2.0) --- # License | Fluent Bit: Official Manual Last updated 1 month ago Was this helpful? , including its core, plugins, and tools are distributed under the terms of the: Copy Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS [Fluent Bit](http://fluentbit.io) [Apache License v2.0](http://www.apache.org/licenses/LICENSE-2.0) --- # Fluentd and Fluent Bit | Fluent Bit: Official Manual Last updated 1 month ago Was this helpful? Telemetry data processing can be complex, especially at scale. That's why was created. Fluentd is more than a simple tool, it's grown into a fullscale ecosystem that contains SDKs for different languages and subprojects like . Here, we describe the relationship between the and open source projects. Both projects are: * Licensed under the terms of Apache License v2.0. * Graduated hosted projects by the . * Production grade solutions: Deployed millions of times every single day. * Vendor neutral and community driven. * Widely adopted by the industry: Trusted by major companies like AWS, Microsoft, Google Cloud, and hundreds of others. The projects have many similarities: is designed and built on top of the best ideas of architecture and general design. Which one you choose depends on your end-users' needs. The following table describes a comparison of different areas of the projects: Attribute Fluentd Fluent Bit Scope Containers / Servers Embedded Linux / Containers / Servers Language C & Ruby C Memory Greater than 60 MB Approximately 1 MB Performance Medium Performance High Performance Dependencies Built as a Ruby Gem, depends on other gems. Zero dependencies, unless required by a plugin. Plugins Over 1,000 external plugins available. Over 100 built-in plugins available. License Both and can work as Aggregators or Forwarders, and can complement each other or be used as standalone solutions. In the recent years, cloud providers have switched from Fluentd to Fluent Bit for performance and compatibility. Fluent Bit is now considered the next-generation solution. [Fluentd](https://www.fluentd.org) [Fluent Bit](https://fluentbit.io) [Fluentd](http://fluentd.org) [Fluent Bit](http://fluentbit.io) [Cloud Native Computing Foundation (CNCF)](https://cncf.io) [Fluent Bit](https://fluentbit.io) [Fluentd](https://www.fluentd.org) [Fluentd](https://www.fluentd.org) [Fluent Bit](https://fluentbit.io) [Apache License v2.0](http://www.apache.org/licenses/LICENSE-2.0) [Apache License v2.0](http://www.apache.org/licenses/LICENSE-2.0) --- # Input | Fluent Bit: Official Manual Last updated 1 month ago Was this helpful? provides input plugins to gather information from different sources. Some plugins collect data from log files, while others can gather metrics information from the operating system. There are many plugins to suit different needs. When an input plugin loads, an internal _instance_ is created. Each instance has its own independent configuration. Configuration keys are often called _properties_. Every input plugin has its own documentation section that specifies how to use it and what properties are available. For more details, see . [Fluent Bit](http://fluentbit.io) [Input Plugins](https://docs.fluentbit.io/manual/pipeline/inputs) --- # Fluent Bit Documentation | Fluent Bit: Official Manual Last updated 3 days ago Was this helpful? is a fast and lightweight telemetry agent for logs, metrics, and traces for Linux, macOS, Windows, and BSD family operating systems. Fluent Bit has been made with a strong focus on performance to allow the collection and processing of telemetry data from different sources without complexity. [](#features) Features --------------------------- * High performance: High throughput with low resources consumption * Data parsing * Metrics support: Prometheus and OpenTelemetry compatible * Reliability and data integrity * Networking * Security: Built-in TLS/SSL support * Asynchronous I/O * * Connect nearly any source to nearly any destination using preexisting plugins * Extensibility: * Write input, filter, or output plugins in the C language * * Create new streams of data using query results * Aggregation windows * Data analysis and prediction: Time series forecasting * Portable: Runs on Linux, macOS, Windows and BSD systems [](#fluent-bit-fluentd-and-cncf) Fluent Bit, Fluentd, and CNCF ------------------------------------------------------------------- Convert your unstructured messages using Fluent Bit parsers: , , and handling in memory and file system Pluggable architecture and : Inputs, Filters and Outputs: WASM: or Write or : Expose internal metrics over HTTP in JSON and format : Perform data selection and transformation using simple SQL queries is a graduated sub-project under the umbrella of . Fluent Bit is licensed under the terms of the . Fluent Bit was originally created by and is now sponsored by . As a CNCF-hosted project, it's a fully vendor-neutral and community-driven project. [JSON](/manual/pipeline/parsers/json) [Regex](/manual/pipeline/parsers/regular-expression) [LTSV](/manual/pipeline/parsers/ltsv) [Logfmt](/manual/pipeline/parsers/logfmt) [Backpressure](/manual/administration/backpressure) [Data buffering](/manual/administration/buffering-and-storage) [extensibility](/manual/development/library_api) [WASM Filter Plugins](/manual/development/wasm-filter-plugins) [WASM Input Plugins](/manual/development/wasm-input-plugins) [Filters in Lua](/manual/pipeline/filters/lua) [Output plugins in Golang](/manual/development/golang-output-plugins) [Monitoring](/manual/administration/monitoring) [Prometheus](https://prometheus.io/) [Stream Processing](/manual/stream-processing/introduction) [Fluent Bit](http://fluentbit.io) [CNCF](https://cncf.io) [Fluentd](http://fluentd.org) [Apache License v2.0](http://www.apache.org/licenses/LICENSE-2.0) [Eduardo Silva](https://www.linkedin.com/in/edsiper/) [Chronosphere](https://chronosphere.io/) [Fluent Bit](http://fluentbit.io) ![](https://docs.fluentbit.io/~gitbook/image?url=https%3A%2F%2Fstatic.scarf.sh%2Fa.png%3Fx-pxid%3D71f0e011-761f-4c6f-9a89-38817887faae&width=300&dpr=4&quality=100&sign=f91b2ab3&sv=2) ![](https://docs.fluentbit.io/~gitbook/image?url=https%3A%2F%2F1518791465-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FoSqcttslYid72k2Bzttn%252Fuploads%252Fgit-blob-5223c066fa0bbfdee9d829c8426cb4f6b965c3cb%252Ffluent_bit_logo.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=e35672dd&sv=2) --- # Key Concepts | Fluent Bit: Official Manual Last updated 1 month ago Was this helpful? Before diving into you might want to get acquainted with some of the key concepts of the service. This document provides an introduction to those concepts and common terminology. Reading this document will help you gain a more general understanding of the following topics: * Event or Record * Filtering * Tag * Timestamp * Match * Structured Message [](#event-or-record) Event or Record ----------------------------------------- Every incoming piece of data that belongs to a log or a metric that's retrieved by Fluent Bit is considered an _Event_ or a _Record_. As an example, consider the following content of a Syslog file: Copy Jan 18 12:52:16 flb systemd[2222]: Starting GNOME Terminal Server Jan 18 12:52:16 flb dbus-daemon[2243]: [session uid=1000 pid=2243] Successfully activated service 'org.gnome.Terminal' Jan 18 12:52:16 flb systemd[2222]: Started GNOME Terminal Server. Jan 18 12:52:16 flb gsd-media-keys[2640]: # watch_fast: "/org/gnome/terminal/legacy/" (establishing: 0, active: 0) It contains four lines that represent four independent Events. An Event is comprised of: * timestamp * key/value metadata (v2.1.0 and greater) * payload ### [](#event-format) Event format The Fluent Bit wire protocol represents an Event as a two-element array with a nested array as the first element: Copy [[TIMESTAMP, METADATA], MESSAGE] where * `_TIMESTAMP_` is a timestamp in seconds as an integer or floating point value (not a string). * `_METADATA_` is an object containing event metadata, and might be empty. * `_MESSAGE_` is an object containing the event body. Fluent Bit versions prior to v2.1.0 used: Copy [TIMESTAMP, MESSAGE] to represent events. This format is still supported for reading input event streams. [](#filtering) Filtering ----------------------------- Use filtering to: * Append specific information to the Event like an IP address or metadata. * Select a specific piece of the Event content. * Drop Events that match a certain pattern. [](#tag) Tag ----------------- [](#timestamp) Timestamp ----------------------------- The timestamp represents the time an Event was created. Every Event contains an associated timestamps. All events have timestamps, and they're set by the input plugin or discovered through a data parsing process. The timestamp is a numeric fractional integer in the format: Copy SECONDS.NANOSECONDS where: * `_SECONDS_` is the number of seconds that have elapsed since the Unix epoch. * `_NANOSECONDS_` is a fractional second or one thousand-millionth of a second. [](#match) Match --------------------- Fluent Bit lets you route your collected and processed Events to one or multiple destinations. A _Match_ represents a rule to select Events where a Tag matches a defined rule. [](#structured-messages) Structured messages ------------------------------------------------- Source events can have a structure. A structure defines a set of `keys` and `values` inside the Event message to implement faster operations on data modifications. Fluent Bit treats every Event message as a structured message. Consider the following two messages: * No structured message Copy "Project Fluent Bit created on 1398289291" * With a structured message Copy {"project": "Fluent Bit", "created": 1398289291} You might need to perform modifications on an Event's content. The process to alter, append to, or drop Events is called . Every Event ingested by Fluent Bit is assigned a Tag. This tag is an internal string used in a later stage by the Router to decide which Filter or phase it must go through. Most tags are assigned manually in the configuration. If a tag isn't specified, Fluent Bit assigns the name of the plugin instance where that Event was generated from. The input plugin doesn't assign tags. This plugin speaks the Fluentd wire protocol called Forward where every Event already comes with a Tag associated. Fluent Bit will always use the incoming Tag set by the client. A tagged record must always have a Matching rule. To learn more about Tags and Matches, see . To learn more about Tags and Matches, see . For performance reasons, Fluent Bit uses a binary serialization data format called. [Fluent Bit](https://fluentbit.io) [Fluent Bit](https://fluentbit.io) [_filtering_](/manual/concepts/data-pipeline/filter) [Output](/manual/concepts/data-pipeline/output) [Input](/manual/concepts/data-pipeline/input) [Forward](/manual/pipeline/inputs/forward) [Routing](/manual/concepts/data-pipeline/router) [Routing](/manual/concepts/data-pipeline/router) [MessagePack](https://msgpack.org/) --- # Buffering | Fluent Bit: Official Manual Last updated 1 month ago Was this helpful? When processes data, it uses the system memory (heap) as a primary and temporary place to store the record logs before they get delivered. The records are processed in this private memory area. Buffering is the ability to store the records, and continue storing incoming data while previous data is processed and delivered. Buffering in memory is the fastest mechanism, but there are scenarios requiring special strategies to deal with, data safety, or to reduce memory consumption by the service in constrained environments. Network failures or latency in third party service is common. When data can't be delivered fast enough and new data to process arrives, the system can face backpressure. Fluent Bit buffering strategies are designed to solve problems associated with backpressure and general delivery failures. Fluent Bit offers a primary buffering mechanism in memory and an optional secondary one using the file system. With this hybrid solution you can accommodate any use case safely and keep a high performance while processing your data. These mechanisms aren't mutually exclusive. When data is ready to be processed or delivered it's always be in memory, while other data in the queue might be in the file system until is ready to be processed and moved up to memory. To learn more about the buffering configuration in Fluent Bit, see. [Fluent Bit](https://fluentbit.io) [backpressure](/manual/administration/backpressure) [Buffering & Storage](/manual/administration/buffering-and-storage) --- # Data Pipeline | Fluent Bit: Official Manual [Input](/manual/concepts/data-pipeline/input) [Parser](/manual/concepts/data-pipeline/parser) [Filter](/manual/concepts/data-pipeline/filter) [Buffer](/manual/concepts/data-pipeline/buffer) [Router](/manual/concepts/data-pipeline/router) [Output](/manual/concepts/data-pipeline/output) Last updated 1 month ago Was this helpful? --- # Sandbox and Lab Resources | Fluent Bit: Official Manual Last updated 1 month ago Was this helpful? [](#fluent-bit-sandbox-sign-up-required) Fluent Bit Sandbox - sign-up required ----------------------------------------------------------------------------------- The following are labs that can run in your browser however require email sign-up [](#open-source-labs-environment-required) Open Source Labs - environment required --------------------------------------------------------------------------------------- The following are open source labs where you will need to spin up resources to run through the lab in details ### [](#o11y-workshops-by-chronosphere) O11y Workshops by Chronosphere The cards below include links to each of the labs in the workshop ### [](#logging-with-fluent-bit-and-amazon-opensearch-workshop-by-amazon) Logging with Fluent Bit and Amazon OpenSearch workshop by Amazon This workshop by Amazon goes through common Kubernetes logging patterns and routing data to OpenSearch and visualizing with OpenSearch dashboards These workshops, open source, provided by Chronosphere can be found here: . The OSS repository can be found here: [Fluent Bit 101 Sandbox - Getting Started with configuration and routing](https://play.instruqt.com/Fluent/invite/nuys5ifhsprt) [https://o11y-workshops.gitlab.io/](https://o11y-workshops.gitlab.io/) [https://gitlab.com/o11y-workshops/workshop-fluentbit](https://gitlab.com/o11y-workshops/workshop-fluentbit) [Lab 1 - Introduction to Fluent Bit](https://o11y-workshops.gitlab.io/workshop-fluentbit/lab01.html) [Lab 2 - Installing Fluent Bit](https://o11y-workshops.gitlab.io/workshop-fluentbit/#/4) [Lab 3 - Exploring First Pipelines](https://o11y-workshops.gitlab.io/workshop-fluentbit/#/5) [Lab 4 - Exploring More Pipelines](https://o11y-workshops.gitlab.io/workshop-fluentbit/#/6) [Lab 5 - Understanding Backpressure](https://o11y-workshops.gitlab.io/workshop-fluentbit/#/7) [Lab 6 - Avoid Telemetry Data Loss](https://o11y-workshops.gitlab.io/workshop-fluentbit/#/8) [Lab 7 - Pipeline Integration with OpenTelemetry](https://o11y-workshops.gitlab.io/workshop-fluentbit/#/9) [Telemetry Pipelines Workshop](https://o11y-workshops.gitlab.io/workshop-fluentbit/) Fluent Bit Workshop for Getting Started with Cloud Native Telemetry Pipelines [EKSworkshop.comAmazon EKS Workshop](https://archive.eksworkshop.com/intermediate/230_logging/) ![Logo](https://docs.fluentbit.io/~gitbook/image?url=https%3A%2F%2Farchive.eksworkshop.com%2Ficons%2Ffavicon-196x196.png&width=20&dpr=4&quality=100&sign=c0014eb&sv=2) ![](https://docs.fluentbit.io/~gitbook/image?url=https%3A%2F%2F1518791465-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FoSqcttslYid72k2Bzttn%252Fuploads%252Fgit-blob-50446b701fc4489f7e72c86e5b5cef08cdb6031b%252Fimage%2520%281%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=de6b360d&sv=2) --- # Parser | Fluent Bit: Official Manual Last updated 1 month ago Was this helpful? Dealing with raw strings or unstructured messages is difficult. Having a structure makes data more usable. Set a structure to the incoming data by using input plugins as data is collected: The parser converts unstructured data to structured data. As an example, consider the following Apache (HTTP Server) log entry: Copy 192.168.2.20 - - [28/Jul/2006:10:27:10 -0300] "GET /cgi-bin/try/ HTTP/1.0" 200 3395 This log line is a raw string without format. Structuring the log makes it easier to process the data later. If the is used, the log entry could be converted to: Copy { "host": "192.168.2.20", "user": "-", "method": "GET", "path": "/cgi-bin/try/", "code": "200", "size": "3395", "referer": "", "agent": "" } Parsers are fully configurable and are independently and optionally handled by each input plugin. For more details, see. [regular expression parser](https://github.com/fluent/fluent-bit-docs/blob/master/concepts/data-pipeline/pipeline/parsers/regular-expression/README.md) [Parsers](https://docs.fluentbit.io/manual/pipeline/parsers) --- # Filter | Fluent Bit: Official Manual Last updated 1 month ago Was this helpful? In production environments you need full control of the data you're collecting. Filtering lets you alter the collected data before delivering it to a destination. Filtering is implemented through plugins. Each available filter can be used to match, exclude, or enrich your logs with specific metadata. Fluent Bit support many filters. A common use case for filtering is Kubernetes deployments. Every pod log needs the proper metadata associated with it. Like input plugins, filters run in an instance context, which has its own independent configuration. Configuration keys are often called _properties_. For more details about the Filters available and their usage, see. [Filters](https://docs.fluentbit.io/manual/pipeline/filters) --- # Buffer | Fluent Bit: Official Manual Last updated 1 month ago Was this helpful? The phase in the pipeline aims to provide a unified and persistent mechanism to store your data, using the primary in-memory model or the file system-based mode. The `buffer` phase contains the data in an immutable state, meaning that no other filter can be applied. Buffered data uses the Fluent Bit internal binary representation, which isn't raw text. Fluent Bit offers a buffering mechanism in the file system that acts as a backup system to avoid data loss in case of system failures. [`buffer`](/manual/concepts/buffering) --- # Output | Fluent Bit: Official Manual Last updated 1 month ago Was this helpful? The output interface lets you define destinations for your data. Common destinations are remote services, local file systems, or other standard interfaces. Outputs are implemented as plugins. When an output plugin is loaded, an internal _instance_ is created. Every instance has its own independent configuration. Configuration keys are often called_properties_. Every output plugin has its own documentation section specifying how it can be used and what properties are available. For more details, see . [Output Plugins](https://docs.fluentbit.io/manual/pipeline/outputs) --- # Requirements | Fluent Bit: Official Manual Last updated 1 month ago Was this helpful? has very low CPU and memory consumption. It's compatible with most x86-, x86\_64-, arm32v7-, and arm64v8-based platforms. The build process requires the following components: * Compiler: GCC or clang * CMake * Flex and Bison: Required for or * Libyaml development headers and libraries Core has no other dependencies. Some features depend on third-party components. For example, output plugins with special backend libraries like Kafka include those libraries in the main source code repository. Fluent Bit is supported on Linux on IBM Z(s390x), but the WASM and LUA filter plugins aren't. [Fluent Bit](http://fluentbit.io) [Stream Processor](https://docs.fluentbit.io/manual/stream-processing/introduction) [Record Accessor](https://docs.fluentbit.io/manual/administration/configuring-fluent-bit/classic-mode/record-accessor) --- # Sources | Fluent Bit: Official Manual [Download Source Code](/manual/installation/sources/download-source-code) [Build and Install](/manual/installation/sources/build-and-install) [Build with Static Configuration](/manual/installation/sources/build-with-static-configuration) Last updated 1 month ago Was this helpful? --- # Router | Fluent Bit: Official Manual Last updated 7 days ago Was this helpful? Routing is a core feature that lets you route your data through filters and then to one or multiple destinations. The router relies on the concept of and rules. There are two important concepts in Routing: * Tag * Match When data is generated by an input plugin, it comes with a `Tag`. A Tag is a human-readable indicator that helps to identify the data source. Tags are usually configured manually. To define where to route data, specify a `Match` rule in the output configuration. Consider the following configuration example that delivers `CPU` metrics to an Elasticsearch database and Memory (`mem`) metrics to the standard output interface: Copy [INPUT] Name cpu Tag my_cpu [INPUT] Name mem Tag my_mem [OUTPUT] Name es Match my_cpu [OUTPUT] Name stdout Match my_mem Routing reads the `Input` `Tag` and the `Output` `Match` rules. If data has a `Tag` that doesn't match at routing time, the data is deleted. [](#routing-with-wildcard) Routing with Wildcard ----------------------------------------------------- Routing is flexible enough to support wildcards in the `Match` pattern. The following example defines a common destination for both sources of data: Copy [INPUT] Name cpu Tag my_cpu [INPUT] Name mem Tag my_mem [OUTPUT] Name stdout Match my_* The match rule is set to `my_*`, which matches any Tag starting with `my_`. [](#routing-with-regex) Routing with Regex ----------------------------------------------- Routing also provides support for regular expressions with the `Match_Regex` pattern, allowing for more complex and precise matching criteria. The following example demonstrates how to route data from sources based on a regular expression: Copy [INPUT] Name temperature_sensor Tag temp_sensor_A [INPUT] Name humidity_sensor Tag humid_sensor_B [OUTPUT] Name stdout Match_regex .*_sensor_[AB] In this configuration, the `Match_regex` rule is set to `.*_sensor_[AB]`. This regular expression matches any `Tag` that ends with `_sensor_A` or `_sensor_B`, regardless of what precedes it. This approach provides a more flexible and powerful way to handle different source tags with a single routing rule. [Tags](/manual/concepts/key-concepts) [Matching](/manual/concepts/key-concepts) --- # Download Source Code | Fluent Bit: Official Manual Last updated 1 month ago Was this helpful? You can download the most recent stable or development source code. [](#stable) Stable ----------------------- For production systems, it's strongly suggested that you get the latest stable release of the source code in either zip file or tarball file format from GitHub using the following link pattern: Copy https://github.com/fluent/fluent-bit/archive/refs/tags/v<release version>.tar.gz https://github.com/fluent/fluent-bit/archive/refs/tags/v<release version>.zip For example, for version 1.8.12 the link is: [](#development) Development --------------------------------- If you want to contribute to Fluent Bit, you should use the most recent code. You can get the development version from the Git repository: Copy git clone https://github.com/fluent/fluent-bit The `master` branch is where the development of Fluent Bit happens. Development version users should expect issues when compiling or at run time. Fluent Bit users are encouraged to help test every development version to ensure a stable release. [https://github.com/fluent/fluent-bit/archive/refs/tags/v1.8.12.tar.gz](https://github.com/fluent/fluent-bit/archive/refs/tags/v1.8.12.tar.gz) ---