Skip to content

Fluentd: add fluentd-async, fluentd-request-ack, and deprecate fluentd-async-connect #39086

Merged
AkihiroSuda merged 5 commits intomoby:masterfrom
thaJeztah:add_fluentd_options
Feb 11, 2020
Merged

Fluentd: add fluentd-async, fluentd-request-ack, and deprecate fluentd-async-connect #39086
AkihiroSuda merged 5 commits intomoby:masterfrom
thaJeztah:add_fluentd_options

Conversation

@thaJeztah
Copy link
Member

@thaJeztah thaJeztah commented Apr 16, 2019

Follow up to #39074 (first two commits are from that PR; I'll rebase once that's merged) (rebased)

  • closes Add RequestAck property to fluentd logger #40332

  • Some minor refactoring; the driver now not only validates if options are supported, but also if their value can be parsed (producing an error earlier, instead of when instantiating a driver)

  • Add fluentd-async option, deprecate fluentd-async-connect. This ia a rename of the old option. The old option remains functional, but when used will log a deprecation warning in fluentd. If both the new, and old option is set, a "conflicting options" error is produced. This change is not versioned, and affects all API versions.

  • Add fluentd-request-ack option. This adds a new fluentd-request-ack logging option for the Fluentd logging driver. If enabled, the server will respond with an acknowledgement. This option improves the reliability of the message transmission. This change is not versioned, and affects all API versions.

@thaJeztah
Copy link
Member Author

Ping @tagomoris @cpuguy83 PTAL

@tagomoris I noticed two more options that are in the driver, but not exposed through the docker API;

  • fluent/fluent-logger-golang@70eca0b (Async send fluent/fluent-logger-golang#56); New configuration directive MaxRetryWait. Looking at that option, it would likely only make sense as a daemon option; not sure if it's worth adding though (as we already have fluentd-retry-wait and that option would only limit/restrict its maximum value
  • Add JSON marshaler fluent/fluent-logger-golang#27 Add JSON marshaler (Add MarshalAsJSON option and marshal as forward protocol adopted JSON). Looks like that option was around already, but also not exposed through the Docker API; is that problem still current? (i.e., are there still cases where msgpack cannot be used?). If that's really addressing a corner-case, perhaps we should not add that option (but open to input).

@codecov
Copy link

codecov bot commented Apr 16, 2019

Codecov Report

❗ No coverage uploaded for pull request base (master@d96f61c). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master   #39086   +/-   ##
=========================================
  Coverage          ?      37%           
=========================================
  Files             ?      612           
  Lines             ?    45390           
  Branches          ?        0           
=========================================
  Hits              ?    16795           
  Misses            ?    26308           
  Partials          ?     2287

Copy link
Contributor

@tagomoris tagomoris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically LGTM. I commented on a point for usability.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This error msg doesn't show the pair of keys now conflicting (just shows values of these keys). It should show conflicting keys and these values for users.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's best if it can show that the one is now deprecated and the other is recommended.

@thaJeztah
Copy link
Member Author

ping @kolyshkin @cpuguy83 PTAL

@thaJeztah
Copy link
Member Author

rebased ping @kolyshkin @cpuguy83 @tiborvass PTAL

@thaJeztah thaJeztah force-pushed the add_fluentd_options branch 2 times, most recently from 3e519d0 to 89b98f7 Compare January 2, 2020 11:22
@thaJeztah
Copy link
Member Author

@cpuguy83 updated; PTAL

@thaJeztah thaJeztah force-pushed the add_fluentd_options branch from 89b98f7 to 1166e83 Compare January 2, 2020 11:25
Copy link
Member

@cpuguy83 cpuguy83 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

thaJeztah added a commit to thaJeztah/cli that referenced this pull request Apr 10, 2022
This option was deperecated in the upstream fluentd logging driver v1.4.0,
and while we documented it as deprecated in the API changelog, there was
no mention yet in the deprecated docs.

relates to:

- fluent/fluent-logger-golang#56
- moby/moby#39086

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
thaJeztah added a commit to thaJeztah/cli that referenced this pull request Apr 10, 2022
This option was deperecated in the upstream fluentd logging driver v1.4.0,
and while we documented it as deprecated in the API changelog, there was
no mention yet in the deprecated docs.

relates to:

- fluent/fluent-logger-golang#56
- moby/moby#39086

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 95b0c43)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
singholt added a commit to singholt/amazon-ecs-agent that referenced this pull request Apr 3, 2025
Docker's fluentd log driver supports passing an "async" option.
The "fluentd-async-connect" option was deprecated in docker v20.10 and removed in v28.0.
Reference: https://docs.docker.com/engine/deprecated/#fluentd-async-connect-log-opt

Functionally, both options are equivalent, see: moby/moby#39086.
singholt added a commit to singholt/amazon-ecs-agent that referenced this pull request Apr 15, 2025
Docker's fluentd log driver supports passing an "async" option.
The "fluentd-async-connect" option was deprecated in docker v20.10 and removed in v28.0.
Reference: https://docs.docker.com/engine/deprecated/#fluentd-async-connect-log-opt

Functionally, both options are equivalent, see: moby/moby#39086.
singholt added a commit to singholt/amazon-ecs-agent that referenced this pull request Apr 15, 2025
Docker's fluentd log driver supports passing an "async" option.
The "fluentd-async-connect" option was deprecated in Docker v20.10.0 and completely removed in v28.0.0.
Reference: https://docs.docker.com/engine/deprecated/#fluentd-async-connect-log-opt
Functionally, both options are equivalent, see: moby/moby#39086.

Since Docker's refactor of the fluentd async option was not versioned and affects all API versions,
we need to determine the appropriate option using the Docker Server version, in order to be backwards compatible.
singholt added a commit to singholt/amazon-ecs-agent that referenced this pull request Apr 15, 2025
Docker's fluentd log driver supports passing an "async" option.
The "fluentd-async-connect" option was deprecated in Docker v20.10.0 and completely removed in v28.0.0.
Reference: https://docs.docker.com/engine/deprecated/#fluentd-async-connect-log-opt
Functionally, both options are equivalent, see: moby/moby#39086.

Since Docker's refactor of the fluentd async option was not versioned and affects all API versions,
we need to determine the appropriate option using the Docker Server version, in order to be backwards compatible.
singholt added a commit to singholt/amazon-ecs-agent that referenced this pull request Apr 15, 2025
Docker's fluentd log driver supports passing an "async" option.
The "fluentd-async-connect" option was deprecated in Docker v20.10.0 and completely removed in v28.0.0.
Reference: https://docs.docker.com/engine/deprecated/#fluentd-async-connect-log-opt
Functionally, both options are equivalent, see: moby/moby#39086.

Since Docker's refactor of the fluentd async option was not versioned and affects all API versions,
we need to determine the appropriate option using the Docker Server version, in order to be backwards compatible.
singholt added a commit to singholt/amazon-ecs-agent that referenced this pull request Apr 15, 2025
Docker's fluentd log driver supports passing an "async" option.
The "fluentd-async-connect" option was deprecated in Docker v20.10.0 and completely removed in v28.0.0.
Reference: https://docs.docker.com/engine/deprecated/#fluentd-async-connect-log-opt
Functionally, both options are equivalent, see: moby/moby#39086.

Since Docker's refactor of the fluentd async option was not versioned and affects all API versions,
we need to determine the appropriate option using the Docker Server version, in order to be backwards compatible.
singholt added a commit to singholt/amazon-ecs-agent that referenced this pull request Apr 15, 2025
Docker's fluentd log driver supports passing an "async" option.
The "fluentd-async-connect" option was deprecated in Docker v20.10.0 and completely removed in v28.0.0.
Reference: https://docs.docker.com/engine/deprecated/#fluentd-async-connect-log-opt
Functionally, both options are equivalent, see: moby/moby#39086.

Since Docker's refactor of the fluentd async option was not versioned and affects all API versions,
we need to determine the appropriate option using the Docker Server version, in order to be backwards compatible.
singholt added a commit to singholt/amazon-ecs-agent that referenced this pull request Apr 15, 2025
Docker's fluentd log driver supports passing an "async" option.
The "fluentd-async-connect" option was deprecated in Docker v20.10.0 and completely removed in v28.0.0.
Reference: https://docs.docker.com/engine/deprecated/#fluentd-async-connect-log-opt
Functionally, both options are equivalent, see: moby/moby#39086.

Since Docker's refactor of the fluentd async option was not versioned and affects all API versions,
we need to determine the appropriate option using the Docker Server version, in order to be backwards compatible.
singholt added a commit to singholt/amazon-ecs-agent that referenced this pull request Apr 15, 2025
Docker's fluentd log driver supports passing an "async" option.
The "fluentd-async-connect" option was deprecated in Docker v20.10.0 and completely removed in v28.0.0.
Reference: https://docs.docker.com/engine/deprecated/#fluentd-async-connect-log-opt
Functionally, both options are equivalent, see: moby/moby#39086.

Since Docker's refactor of the fluentd async option was not versioned and affects all API versions,
we need to determine the appropriate option using the Docker Server version, in order to be backwards compatible.
singholt added a commit to singholt/amazon-ecs-agent that referenced this pull request Apr 15, 2025
Docker's fluentd log driver supports passing an "async" option.
The "fluentd-async-connect" option was deprecated in Docker v20.10.0 and completely removed in v28.0.0.
Reference: https://docs.docker.com/engine/deprecated/#fluentd-async-connect-log-opt
Functionally, both options are equivalent, see: moby/moby#39086.

Since Docker's refactor of the fluentd async option was not versioned and affects all API versions,
we need to determine the appropriate option using the Docker Server version, in order to be backwards compatible.
singholt added a commit to singholt/amazon-ecs-agent that referenced this pull request Apr 15, 2025
Docker's fluentd log driver supports passing an "async" option.
The "fluentd-async-connect" option was deprecated in Docker v20.10.0 and completely removed in v28.0.0.
Reference: https://docs.docker.com/engine/deprecated/#fluentd-async-connect-log-opt
Functionally, both options are equivalent, see: moby/moby#39086.

Since Docker's refactor of the fluentd async option was not versioned and affects all API versions,
we need to determine the appropriate option using the Docker Server version, in order to be backwards compatible.
singholt added a commit to singholt/amazon-ecs-agent that referenced this pull request Apr 15, 2025
Docker's fluentd log driver supports passing an "async" option.
The "fluentd-async-connect" option was deprecated in Docker v20.10.0 and completely removed in v28.0.0.
Reference: https://docs.docker.com/engine/deprecated/#fluentd-async-connect-log-opt
Functionally, both options are equivalent, see: moby/moby#39086.

Since Docker's refactor of the fluentd async option was not versioned and affects all API versions,
we need to determine the appropriate option using the Docker Server version, in order to be backwards compatible.
singholt added a commit to singholt/amazon-ecs-agent that referenced this pull request Apr 15, 2025
Docker's fluentd log driver supports passing an "async" option.
The "fluentd-async-connect" option was deprecated in Docker v20.10.0 and completely removed in v28.0.0.
Reference: https://docs.docker.com/engine/deprecated/#fluentd-async-connect-log-opt
Functionally, both options are equivalent, see: moby/moby#39086.

Since Docker's refactor of the fluentd async option was not versioned and affects all API versions,
we need to determine the appropriate option using the Docker Server version, in order to be backwards compatible.
singholt added a commit to singholt/amazon-ecs-agent that referenced this pull request Apr 15, 2025
Docker's fluentd log driver supports passing an "async" option.
The "fluentd-async-connect" option was deprecated in Docker v20.10.0 and completely removed in v28.0.0.
Reference: https://docs.docker.com/engine/deprecated/#fluentd-async-connect-log-opt
Functionally, both options are equivalent, see: moby/moby#39086.

Since Docker's refactor of the fluentd async option was not versioned and affects all API versions,
we need to determine the appropriate option using the Docker Server version, in order to be backwards compatible.
singholt added a commit to singholt/amazon-ecs-agent that referenced this pull request Apr 15, 2025
Docker's fluentd log driver supports passing an "async" option.
The "fluentd-async-connect" option was deprecated in Docker v20.10.0 and completely removed in v28.0.0.
Reference: https://docs.docker.com/engine/deprecated/#fluentd-async-connect-log-opt
Functionally, both options are equivalent, see: moby/moby#39086.

Since Docker's refactor of the fluentd async option was not versioned and affects all API versions,
we need to determine the appropriate option using the Docker Server version, in order to be backwards compatible.
singholt added a commit to aws/amazon-ecs-agent that referenced this pull request Apr 16, 2025
Docker's fluentd log driver supports passing an "async" option.
The "fluentd-async-connect" option was deprecated in Docker v20.10.0 and completely removed in v28.0.0.
Reference: https://docs.docker.com/engine/deprecated/#fluentd-async-connect-log-opt
Functionally, both options are equivalent, see: moby/moby#39086.

Since Docker's refactor of the fluentd async option was not versioned and affects all API versions,
we need to determine the appropriate option using the Docker Server version, in order to be backwards compatible.
xxx0624 pushed a commit to xxx0624/amazon-ecs-agent that referenced this pull request Apr 17, 2025
Docker's fluentd log driver supports passing an "async" option.
The "fluentd-async-connect" option was deprecated in Docker v20.10.0 and completely removed in v28.0.0.
Reference: https://docs.docker.com/engine/deprecated/#fluentd-async-connect-log-opt
Functionally, both options are equivalent, see: moby/moby#39086.

Since Docker's refactor of the fluentd async option was not versioned and affects all API versions,
we need to determine the appropriate option using the Docker Server version, in order to be backwards compatible.
timj-hh pushed a commit to timj-hh/amazon-ecs-agent that referenced this pull request Jul 19, 2025
Docker's fluentd log driver supports passing an "async" option.
The "fluentd-async-connect" option was deprecated in Docker v20.10.0 and completely removed in v28.0.0.
Reference: https://docs.docker.com/engine/deprecated/#fluentd-async-connect-log-opt
Functionally, both options are equivalent, see: moby/moby#39086.

Since Docker's refactor of the fluentd async option was not versioned and affects all API versions,
we need to determine the appropriate option using the Docker Server version, in order to be backwards compatible.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants