C Library API
Fluent Bit 库是用 C 语言编写的,可以在任何 C 或 C++ 应用程序中使用。在深入研究规范之前,建议您先了解运行时的工作流程。
工作流程
Fluent Bit 作为服务运行,这意味着为开发人员公开的 API 提供了用于创建和管理上下文,指定输入/输出,设置配置参数及事件/记录的路由路径的接口。该库的典型用法包括:
创建库实例/上下文并设置属性
启用 input 插件并设置相关属性
启用 output 插件并设置相关属性
启动库运行时
可选的手动提取记录
停止库运行时
销毁库实例/上下文
数据类型
从 Fluent Bit v0.9 开始,库仅公开一种数据类型,且约定前缀为 flb_。
Type
Description
flb_ctx_t
主库的上下文。它多用于引用 flb_create()
返回的上下文
API 参考
创建库上下文
如前所述,使用库的第一步是使用 flb_create()
创建它的上下文。
原型
返回值
如果成功,flb_create()
返回库的上下文;如果出错,返回NULL。
用法
设置服务属性
使用 flb_service_set()
函数可以设置上下文属性
原型
返回值
如果成功,返回 0;如果出错,则返回一个负数。
用法
flb_service_set()
支持以键值对的字符串形式设置一个或多个属性,如:
如上示例指定了 Flush 属性的值。请注意,参数值始终是字符串(char),且一旦没有更多参数,必须在参数列表末尾添加 *NULL 参数。
启用输入插件实例
构建完成后,Fluent Bit 库包含一些内置的 input 插件。要启用 input 插件,可以用 flb_input()
函数创建它的实例。
对于插件来说,实例表示已启用的插件上下文。您可以创建同一个插件的多个实例。
原型
参数 ctx 表示由 flb_create()
创建的上下文,name 是要启用的输入插件名称。
第三个参数 data 可用于将自定义引用传递给插件实例,这通常由自定义或第三方插件使用,对于通用插件,一般传入 NULL。
返回值
如果成功,flb_input()
返回一个大于等于 0 的整型值(类似于文件描述符);如果出错,返回一个负数。
用法
设置输入插件属性
通过 flb_input()
创建的插件实例可能提供一些配置属性,使用 flb_input_set()
函数可以提供这些属性。
原型
返回值
如果成功,返回 0;如果出错,返回一个负数。
用法
The flb_input_set()
允许在键/值字符串模式下设置一个或多个属性,例如:
参数 ctx 表示由 flb_create()
创建的上下文。上面的示例指定了 tag 和 ssl 属性值,请注意,该值始终是字符串(char*),一旦没有更多参数,则必须在参数列表的末尾添加 NULL 参数。
每个输入插件允许的属性在该插件的文档中指定。
启用输出插件实例
构建完成后,Fluent Bit 库包含一些内置的 output 插件。要启用 output 插件,可以用 flb_output()
函数创建它的实例。
对于插件来说,实例表示已启用的插件上下文。您可以创建同一个插件的多个实例。
原型
参数 ctx 表示由 flb_create()
创建的上下文,name 是要启用的输入插件名称。
第三个参数 data 可用于将自定义引用传递给插件实例,这通常由自定义或第三方插件使用,对于通用插件,一般传入 NULL。
返回值
如果成功,flb_output()
返回输出插件实例;如果出错,返回一个负数。
用法
设置输出插件属性
通过 flb_output()
创建的插件实例可能提供一些配置属性,使用 flb_output_set()
函数可以提供这些属性。
原型
返回值
如果成功,返回大于等于 0 的整数;如果出错,返回一个负数。
用法
The flb_output_set()
允许在键/值字符串模式下设置一个或多个属性,例如:
参数 ctx 表示由 flb_create()
创建的上下文。上面的示例指定了 tag 和 ssl 属性值,请注意,该值始终是字符串(char*),一旦没有更多参数,则必须在参数列表的末尾添加 NULL 参数。
每个输出插件允许的属性在该插件的文档中指定。
启动 Fluent Bit 引擎
创建库上下文并设置输入/输出插件实例后,下一步就是启动引擎。 启动后,引擎将在新线程(POSIX thread)内运行,而不会阻塞调用者应用程序。要启动引擎,请使用 flb_start()
函数。
原型
返回值
如果成功,返回 0;如果出错,则返回一个负数。
Usage
这个简单的调用仅需要 ctx 作为参数传入,它是对先前 flb_create()
创建的上下文的引用:
停止 Fluent Bit 引擎
我们提供了 flb_stop()
函数用于停止运行中的 Fluent Bit 引擎。
原型
参数 ctx 是对先前 flb_create()
函数创建的且通过 flb_start()
函数启动的上下文的引用。
当我们调用此函数时,引擎将最多等待五秒钟以刷新缓冲区并释放正在使用的资源。停止的上下文可以随时重新启动,但没有任何数据。
返回值
如果成功,返回 0;如果出错,则返回一个负数。
Usage
销毁库上下文
库上下文在不需要时必须被销毁。请注意,必须先执行之前的 flb_stop()
函数调用。销毁后,将释放所有与之关联的资源。
原型
参数 ctx 是对先前 flb_create()
创建的上下文的引用。
返回值
没有返回值。
用法
手动提取数据
在某些情况下,应用程序调用可能希望将数据摄取到 Fluent Bit中,为此目的,我们提供了 flb_lib_push()
函数。
原型
第一个参数是先前通过 flb_create()
创建的上下文。 in_ffd 是输入插件的数字引用(在这种情况下,它应该是一个插件 lib 类型的输入),data 是对输入消息的引用,len 是从消息中获取的字节数限定。
返回值
如果成功,它返回写入的字节数;如果出错,返回 -1。
用法
有关如何正确使用此功能的更多详细信息和示例,请参阅下一小节 - 手动提取记录。
Last updated