Skip to content

BasicBuffer breaks the chain if queue exceeds limit #296

@dterror-zz

Description

@dterror-zz

https://github.com/fluent/fluentd/blob/master/lib/fluent/buffer.rb#L182

Raising an exception at this point will break the chain, so in the context of a CopyOutput being used, if one plugin type runs into a problem, it causes all to fail.

One reasonable use case would be: I have the copy plugin sending my data to S3 and ElasticSearch, if the ElasticSearch cluster goes down, I'm ok to lose that data provided that I know it will still be sent to S3. This type of configuration - based on copy - helps (that is, would help) reduce SPFs in logging.

Another point is, why would BasicBuffer ever raise an exception, losing data is a big thing and I understand it should 'fail loudly', but not at the cost of other outputs.

This code is really easy to change (error logging instead of raising), but if you feel like another solution is needed, I'm willing to submit a pull-request.

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature request*Deprecated Label* Use enhancement label in general

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions