Appendix C. Comparing Fluentbit and Fluentd
C.1 Overview
In this Appendix, we’ll highlight the differences by comparing Fluent Bit and Fluentd. Fluent Bit is far more than just a simple reimplementation of Fluentd using C. While the goals and ideas remain the same at the heart of both solutions, there are also many differences. The differences are sometimes subtle but important, such as the YAML configuration structure, and sometimes minor, such as additional attributes for a plugin. They are very noticeable in other areas, such as how custom plugins can be built.
We’re not going to describe the Fluentd features here beyond naming them. If you’d like a more in-depth understanding of how the Fluentd features work, we recommend reading Logging in Action with Fluentd.
C.2 Technology Differences
In Chapter 1, and to an extent Chapter 2 we looked at the implementation and deployment differences between Fluentd and Fluent Bit. So we’ll just summarize them with some bullet points rather than repeat the details:
- Implementation technologies – with Fluent Bit using C and supporting extensions with C, Go, Lua, and WedAssembly compared to just Ruby for Fluentd.
- Smaller more compact platform native binary for Fluent Bit and a platform agnostic runtime for Fluentd.
- Fluentd has a basic management UI if needed, Fluent Bit does not provide such a capability.
- Support for HTTP/2 (introduced in Fluent Bit version 3), but Fluentd has not yet provided any use of HTTP/2.