-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Idea notes for next generation Buffer/Input/Output plugins #309
Comments
|
Callback based start-up checking: def start
@thread = Thread.new { @started = true } # use actor actually
end
def check_start?
@started
end We need some feature to support checking threads actually started or not, by callback (from fluentd engine, or test library). |
Buffer plugins should have some additional hook points to:
Finally, both of output plugins and buffer plugins should be able to determine when buffers should be flushed. |
Output plugin should be able to overwrite buffer chunk key, to:
|
v11 branch has new implementations. > https://github.com/fluent/fluentd/tree/v11/lib/fluentd/plugin |
APIs to open files to read/write (and return fd) is very helpful to re-open files by SIGHUP, or re-read configurations from files. |
For out_file, I have a doubt as do we really need the File Buffer before writing file? Both is file. From the point of view, I have a re-implementation of out_file named out_file2 (not released yet) => https://github.com/sonots/fluent-plugin-file2. This plugin provides only human readable files, and thread (process)-safety.
If a base class is Fluent::Plugin::Output::Base, I think |
memo: #157 |
@sonots What we should use for gem name for plugins in |
I feel plugin developers should release gem separately like fluent-plugin-output-awesome because it makes easy to identify the purpose of the plugin for users, and makes possible to categorize it automatically in our plugin repository. But, for developers who want to bundle both input and output, we may still accept gem names like fluent-plugin-awesome. But, I don't know how to categorize it. EDIT: Well, first of all, I do not think we should change the directory layout of plugins, and the naming convention of gems. It provides confusion for users and I do not think users wish it. Just providing new API, and users will use it. I think this scenario is best. |
|
New configuration parameter set for buffer plugins:
|
Fluent::PluginSupport::* mixin modules instead of Actor
|
Common API to generate paths with timestamp placeholders like
|
Benchmark plugins:
|
Simple datastore for plugin instances & plugin types, to store on-memory data at shutdown (and to resume it at startup).
My idea:
Implemented:
|
v11 actors: async_actor, background_actor, io_actor, socket_actor, timer_actor Notes:
|
API & configuration param to flush records in buffers ASAP. |
Supporting pluggable compression. FYI, s3 example: https://github.com/fluent/fluent-plugin-s3#use-your-compression-algorithm |
Idea for compression:
And forward protocol should be extended:
|
Plugin lifecycle with v0.12 APIs:
Plugin lifecycle with v0.14 APIs:
|
Predefined buffer format
|
New buffer plugin
|
This issue is already outdated. |
Related with #287
The text was updated successfully, but these errors were encountered: