Skip to content
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

TCP device loses events through timeout proxy #156

Open
sheldonh opened this issue Oct 25, 2019 · 1 comment
Open

TCP device loses events through timeout proxy #156

sheldonh opened this issue Oct 25, 2019 · 1 comment

Comments

@sheldonh
Copy link

sheldonh commented Oct 25, 2019

When the TCP device is used to send events to Logstash through a proxy that uses timeouts instead of TCP keepalives, it is guaranteed to lose events. A quiet client that logs only once per timeout period will observe 50% event loss.

I ran into this with https://logit.io/. They front Logstash with a proxy that uses application layer idle timeouts instead of TCP keepalives. I'm chatting to them about it, but meanwhile, here is a demonstration of the problem:

https://github.com/xneelo/elk-spike

I've had real trouble navigating the inheritance shenanigans to figure out what's going on, but it seems like the TCP device doesn't interact well with Connectable's retry strategy.

@sheldonh
Copy link
Author

One filthy hack would be to emit blank lines periodically. The json_lines codec ignores blank lines.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant