-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
FluentBit Subprocess Extension #1381
Conversation
configmodels.ExtensionSettings `mapstructure:",squash"` | ||
|
||
// The TCP `host:port` to which the subprocess should send log entries. | ||
// One of this or `unix_socket_path` are required. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
unix_socket_path does not seem to exist in this config.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It was a leftover from my initial draft. The FluentBit output plugin currently doesn't support unix sockets so there is no point in the extension supporting it at this point.
// procWait is guaranteed to be sent exactly one message per successful process start | ||
procWait := make(chan error) | ||
|
||
// A state machine makes the management easier to understand and account |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
Codecov Report
@@ Coverage Diff @@
## master #1381 +/- ##
==========================================
+ Coverage 90.83% 90.86% +0.03%
==========================================
Files 234 237 +3
Lines 16472 16593 +121
==========================================
+ Hits 14962 15077 +115
- Misses 1082 1086 +4
- Partials 428 430 +2
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
Please rebase from master and fix the conflict. |
check-links failed because apparently zipkin.io domain is expired :-( |
The four lines that aren't hit in coverage are either from underlying OS errors or very difficult to induce race conditions in the management of the subprocess. |
Sounds good to me. @bogdandrutu are you OK with the coverage? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you explain in a README why is this an extension and not a receiver, I think I miss this.
@keitwb Please fix the build and conflicts. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you explain in a README why is this an extension and not a receiver, I think I miss this.
The difference between the receiver and extension for fluent is made a bit clearer now.
@bogdandrutu is it OK with you now? |
"syscall" | ||
) | ||
|
||
func applyOSSpecificCmdModifications(cmd *exec.Cmd) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this not work on darwin or any other os?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, just Linux for the initial version. We can add support for Mac/Windows later if this proves to be a desirable approach to having the collector manage fluentbit.
This extension runs FluentBit as a subprocess and does some standard configuration to make it talk to a fluentforward receiver running in the same collector. You still have to pass through the FluentBit config text but it makes running FluentBit with the collector a bit easier.
@bogdandrutu I am good with this PR, reassigning to you to give the final approval. |
* Let SynchronizedMove(nil) reset and discard * Add common test for SynchronizedMove(nil) * End-to-end test for the Processor and SumObserver * Implement SynchronizedMove(nil) six ways * Lint * Changelog * Test no reset for wrong aggregator type; Fix four Aggregators * Cleanup * imports Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
…y#1381) Bumps [boto3](https://github.com/boto/boto3) from 1.21.22 to 1.21.23. - [Release notes](https://github.com/boto/boto3/releases) - [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst) - [Commits](boto/boto3@1.21.22...1.21.23) --- updated-dependencies: - dependency-name: boto3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This extension runs FluentBit as a subprocess and does some standard
configuration to make it talk to a fluentforward receiver running in the
same collector.
You still have to pass through the FluentBit config text but it makes
running FluentBit with the collector a bit easier.
Only the second commit is relevant for the extension.