-
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
secondary mechanism broken #1449
Comments
Thanks for the report. |
Let me know if I can help with any testing |
Secondary calculation should consider retry_max_times. fix #1449
master branch should fix this problem. I will release v0.14.13 soon after fixed several bugs. |
Hi, I'm having a hard time testing this. For multiple plugins the following is output and fluentd refuses to start:
I notice there are no "compat" classes in that stack trace to preserve the old internal 0.12.x API for plugins. This is a retrograde step. As I've only finally today managed to get some quite trivial changes merged into a 3rd party plugin after 6 months of polite attempts I don't hold any hope that I'll be able to compel plugin maintainers to do the right thing without this layer in my present setup. |
The problem is plugin itself. See this thread: https://groups.google.com/d/msg/fluentd/lrW-gRGda2c/wTinVOzIEAAJ |
Both plugins worked on 0.14.11 without change. They have broken with master. From memory, when I forced stack traces out of them there was a compatibility class layer being invoked, which is missing from the stack traces above. What I am implying is that there has been an interface change on a point version within fluentd. I understand the Most of the value from fluentd comes from the 3rd-party ecosystem, and most of the plugins (from my experience) have not and will not change their interface any time soon. |
Really? That's weird... |
Should be being used ( |
Yeah. v0.12 plugin should write |
Right! So the 0.12.x class interface is still there, but the plugins are relying on it being implicitly loaded and it no longer is? That's something that has changed since 0.14.11. What I'm suggesting is that, whilst it quite obviously is a bug with the plugin(s), my experience over the last 6 months of attempting to get even trivial changes merged and released by 3rd-party authors is not good. Whilst they should fix their plugins, practicality might dictate that this needs to be fixed in fluentd with a deprecation warning, a dummy plugin that can be loaded to account for slow-moving plugins or some other mechanism. I'm happy to help with the development for any effort in that regard. EDIT: what I also don't understand is that |
In v0.12 or earlier, fluentd loads all files under fluentd so the plugin works without explicit |
Sent a patch: fluent-plugins-nursery/fluent-plugin-cloudwatch-logs#66 |
I was preparing the same patch myself :) |
Success! For my particular setup fluent-plugins-nursery/fluent-plugin-cloudwatch-logs#67 is also required. |
0.14.11
In the course of attempting to debug this plugin issue: uken/fluent-plugin-elasticsearch#235 I've been unable to get fluentd to fail over to the secondary using only the built-in output plugins.
The configuration I have had working under 0.12.x and that fails under 0.14.11 is below. This fluentd sits on the edge of a logging service and receives logs from host clients:
Under 0.12.x all
time_*
options are not present (the primary reason for the upgrade is to gain ms time resolution). Furthermore the<secondary>
under 0.12.x was plainly@type file
(with associated configuration), however fluentd refuses to start in this configuration for us unless we amend this tosecondary_file
as shown.In this configuration a failure of the elasticsearch endpoint, which previously caused logs to spool to the secondary, drops chunks on the floor once the various retry thresholds have been breached.
In order to eliminate 0.12.x plugins as being the problem I amended the
<match **>
configuration to be:I then ran netcat, correctly bound (
nc -lk 1234
) and observed msgpack output on netcat's stdout. Killing netcat started the retry procedure (as expected). Once that is exhausted I would have expected a failover to the secondary (as happens under 0.12.x). This does not happenMy only conclusion is that under 0.14.11 the secondary mechanism does not work, given that all plugins involved in this test are 0.14.x native and shipped with the gem.
Furthermore, I see that the documentation on the secondary mechanism has been removed from the 0.14.x documentation: http://docs.fluentd.org/v0.14/articles/buffer-plugin-overview
Without support for ms timestamp resolution fluentd is basically useless to us, which is a great shame given the investment we've already given it.
The text was updated successfully, but these errors were encountered: