chapter nine

9 Options for extending Fluent Bit

 

This chapter covers

  • Exploring of the reasons for needing a custom plugin
  • Reviewing the pros and cons of the technology options for to creating custom plugins
  • Building an understanding of the technologies involved in custom plugins
  • Developing input and output customize plugins

This chapter looks at the different approaches to extending Fluent Bit, why we might want or need to extend Fluent Bit, and the available technical options. We’ll explore the design decisions in selecting which strategy to develop an extension. In Figure 9.1, we’ve highlighted where this can impact Fluent Bit. In addition to the pure extension techniques (highlighted as the first focus in Figure 9.1), we will also look at a feature that allows us to significantly alter the behavior of existing input and output plugins (marked as the second focus in Figure 9.1).

This chapter will provide the context and understanding for the next chapter, in which we will apply one of these custom plugin strategies.

Figure 9.1 Representation of Fluent Bit from a logical architecture showing where custom plugins can be used, along with the secondary consideration of the processor feature that allows us to change the behavior of existing plugins.

9.1 Why do we need to extend Fluent Bit?

9.2 C Language

9.2.1 Considerations

9.2.2 Benefits

9.2.3 Drawbacks

9.2.4 Tools for the job

9.3 Go Language

9.3.1 Benefits

9.3.2 Drawbacks

9.4 WebAssembly

9.4.1 Benefits

9.4.2 Drawbacks

9.5 Selecting an extension strategy

9.5.1 Typical use case recommendation

9.6 Fluent Bit Processor – changing the behavior of existing plugins

9.6.1 Processor example

9.7 Summary