make fluentd-async-connect configurable #4476
Merged
+133
−12
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR makes the
--fluentd-async-connect
option of the fluentd log driver configurable via the agent config. This option specifies whether the log driver connects to the Firelens sidecar container asynchronously or not.Since the launch of ECS Firelens, this option has been hard-coded to true (enabled) in the ECS agent. Recently, we've had a customer report log loss during task shutdown, especially when the app container emits logs at a high throughput. We've identified that disabling the async connection option increases reliability and prevents log loss.
This configurable setting gives customers an option to turn on/off the async option as per their use-case. Additionally, we will work with the upstream Docker community and AWS container runtime team to identify improvements within the log driver itself.
Implementation details
ECS_ENABLE_FIRELENS_ASYNC
which translates to theFirelensAsyncEnabled
agent config option. This defaults to true, preserving the current agent behavior.Testing
New tests cover the changes: yes
Description for the changelog
Enhancement: make the fluentd-async-connect log driver option configurable.
Additional Information
Does this PR include breaking model changes? If so, Have you added transformation functions?
No
Does this PR include the addition of new environment variables in the README?
Yes, updated the README.Licensing
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.