elastic / elastic/logstash

Unify TCP input/output plugins into a single integration plugin

Open
#15,698 0 comments 0 reactions 0 assignees View on GitHub
enhancement status:needs-triage
Dominant language
Java
Stars
14.9k
Forks
3.5k
Avg merge
1d 4h
Merged PRs (30d)
88

Description

Logstash currently support two plugins to deal with TCP inbound and outbound connections, the [logstash-input-tcp](https://github.com/logstash-plugins/logstash-input-tcp) and [logstash-output-tcp](https://github.com/logstash-plugins/logstash-output-tcp). Both plugins share the same functionality, running in `server` mode (listening for client connections) and `client` mode (connecting and writing data to a remote TCP server).

The output plugin is way behind the input one, which already uses Netty for inbound connections and has a much better test coverage, functionality and confidence. The output plugin, especially the server mode, seems to not be updated frequently and has no test coverage at all.

Considering they share most of their code and functionality, unifying both plugins seems to be a good idea, it would improve maintainability and the user confidence in the plugins.

Contributor guide

Open the contributing guide

Research direction

Start by comparing the logstash-input-tcp and logstash-output-tcp plugin repositories, focusing on the input plugin's Netty implementation and existing tests. The work is done when their shared server and client functionality is unified into one integration plugin with comparable test coverage and maintainability.

Written by the indexing model from the issue text.

Assessment

Domain
networking
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.