feat(vector sink): vector connection concurrency#25432
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b6466e9a71
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Notes:
The main goal is to stop the huge load that can occur when one producer is sending logs to one consumer and that producer peaks in its log production. While there are many ways to do this the simplest is to balance between multiple consumers. In the future if an adaprtive connection system was introduced this could be much smarter. e.g spin up a new connection at $backlog. Additional connection balancing modes could also be introduced in the future (e.g batch, round-robin). Currently it uses "least request" Ideas for concurrency mode:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 12076d0152
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Summary
Open multiple connections over the vector source.
Why? So that you can balance load to multiple backend servers that are either DNS round robined or balanced at the round robined at the IP layer.
Vector configuration
vector-receiver.yaml
vector-sender.yaml
How did you test this PR?
Start the receiver with debug logging:
Start the sender with debug logging:
In another shell, watch localhost connections:
You should see two established client connections plus a healthcheck connection from the sender to 127.0.0.1:6000.
Change Type
Is this a breaking change?
Does this PR include user facing changes?
This will require documentation of the connection concurrency field.
no-changeloglabel to this PR.References
My general performance discussion.