fluent / fluentd

Fluentd: Unified Logging Layer (project under CNCF)
https://www.fluentd.org
Apache License 2.0
12.9k stars 1.34k forks source link

Runtime configuration check #4268

Open pepov opened 1 year ago

pepov commented 1 year ago

Is your feature request related to a problem? Please describe.

In order to verify that a configuration is syntactically valid I can already run fluentd with the --dry-run flag. I would like to check if fluentd can actually start with the configuration. This would help in cases when for example one specific output is not compatible with the available plugins, which we cannot detect using --dry-run.

Describe the solution you'd like

I would like to be able to start fluentd with a configuration and tell it using some command line flags to start but quit with a zero exit code, if everything has been initialized properly.

Describe alternatives you've considered

Right now I can achieve something similar by running fluentd using the timeout command, however that is suboptimal: https://github.com/kube-logging/logging-operator/pull/1407

Additional context

This feature would be leveraged by the logging operator in it's automatic config check feature: https://github.com/kube-logging/logging-operator/issues/1432

kenhys commented 1 year ago

What combination of output plugins, did you assume to detect (for example)?

pepov commented 1 year ago

Any combination that the user configures. The way it works is that we create a separate pod without sending traffic to it with the configuration we are about to actually deploy. If the check fails we back up, if not we proceed.

github-actions[bot] commented 1 year ago

This issue has been automatically marked as stale because it has been open 30 days with no activity. Remove stale label or comment or this issue will be closed in 7 days

pepov commented 1 year ago

FYI This has been implemented for syslog-ng per our (logging-operator) request like this: https://github.com/syslog-ng/syslog-ng/pull/4646