-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Vector sink fails when sending payloads bigger than 4MB #17926
Comments
Thanks for opening this @trennepohl ! It seems like we need to:
Alternatively to preserve backwards compatibility we could remove the limits again and re-add them later. What version were you upgrading from where it worked? |
No worries 👍
Yeah I tried to do that using
0.29 |
Thanks for the additional context @trennepohl ! I think we can probably back out the limits for now and then re-add them later; tying them to the batch sizes. |
This was added in tonic 0.9 but caused a regression in Vector behavior. I think ideally this would be configurable, but I think in this case we can let users ask for it since the use-case for the `vector` source/sink is primarily such that the operator controls both sides and doesn't need to worry about DOS from misbehaving clients. Fixes: #17926 Signed-off-by: Jesse Szwedko <jesse.szwedko@datadoghq.com>
This was added in tonic 0.9 but caused a regression in Vector behavior. I think ideally this would be configurable, but I think in this case we can let users ask for it since the use-case for the `vector` source/sink is primarily such that the operator controls both sides and doesn't need to worry about DOS from misbehaving clients. Fixes: #17926 Signed-off-by: Jesse Szwedko <jesse.szwedko@datadoghq.com>
This was added in tonic 0.9 but caused a regression in Vector behavior. I think ideally this would be configurable, but I think in this case we can let users ask for it since the use-case for the `vector` source/sink is primarily such that the operator controls both sides and doesn't need to worry about DOS from misbehaving clients. Fixes: #17926 Signed-off-by: Jesse Szwedko <jesse.szwedko@datadoghq.com>
@jszwedko Hi, I've updated vector to 0.32.0 and still get this error: Some(Request { source: Status { code: OutOfRange, message: "Error, message length too large: found 4612000 bytes, the limit is: 4194304 bytes", metadata: MetadataMap { headers: {"content-type": "application/grpc", "date": "Fri, 18 Aug 2023 09:15:09 GMT", "content-length": "0"} }, source: None } }) My configuration: [sinks.center_vector]
address = "${AGGREGATOR_ADDRESS}"
compression = true
healthcheck = false
inputs = ["log_files", "vector_logs"]
type = "vector"
[sinks.center_vector.batch]
max_events = 5000
timeout_secs = 1
[sinks.center_vector.buffer]
max_events = 6000
type = "memory"
when_full = "block" Any thoughts about this? |
Huh, interesting. I admittedly hadn't actually tested this 😓 I just followed the recommendations. Let me try it with your config. I'll reopen this to track. |
Hi @slgero , I'm having trouble reproducing this with 0.32.0 though I can with 0.31.0. Are you sure you are running v0.32.0 as the receiver (that is, the Vector instance with the As I was setting up the reproduction I remembered I did actually test this change locally. |
I was also able to repro this with 0.31.0 but not on 0.32.0. In the A/B cases, both sender and receiver were on the same version. |
Hi, @jszwedko, |
Great, thanks for confirming @slgero ! |
A note for the community
Problem
Vector sink fails to push messages bigger than 4MB.
Configuration
Version
0.31.0
Additional Context
After upgrading Vector to version 0.31.0 we started seeing this error.
After a bit of searching on the internet I bumped into this article.
https://cprimozic.net/notes/posts/rust-tonic-request-response-size-limits/
Looks like from
tonic
0.9 default max size is 4mb.References
The text was updated successfully, but these errors were encountered: