Skip to content

Rewrite the beats plugin in pure java #92

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

Closed
14 tasks done
ph opened this issue Jun 9, 2016 · 3 comments
Closed
14 tasks done

Rewrite the beats plugin in pure java #92

ph opened this issue Jun 9, 2016 · 3 comments
Assignees

Comments

@ph
Copy link
Contributor

ph commented Jun 9, 2016

There is an ongoing effort to address #45, we took the decision to rewrite the server/protocol parser in pure java using the netty library. The WIP Feature branch is located at https://github.com/logstash-plugins/logstash-input-beats/tree/feature/java-implementation and require the java-lumber library located at https://github.com/elastic/java-lumber.

The code in theses repositories are not ready for production but initial test show a big improvement in speed vs the initial ruby implementation.

TODO

  • Rename java-lumber to java-lumberjack
  • Remove debug mode from the library
  • Remove the fatJar and declare dependency with jar-dependency
  • Move the library into the plugin repository
  • Allow client auth to support multiple CAs.
  • Revert patch for MapJavaProxy requires JavaEvent#set should allow to pass a JavaMapProxy as a value elastic/logstash#5465
  • Add test with Private keys in the PKCS8 format.
  • Fix the integration test hang, the server shutdown sucessfully but something else is blocking the main thread.
  • Add tests with Encrypted private keys.
  • Stress tests with multiples clients
  • MessageListener specs
  • make all tests pass
  • release beta1 plugin
  • clean logger.debug statements.

WIP PR at #93

@ph ph added blocker P1 and removed blocker labels Jun 9, 2016
@ph ph self-assigned this Jun 9, 2016
@ph
Copy link
Contributor Author

ph commented Jun 27, 2016

Lets make sure we address too elastic/ruby-lumberjack#10 (comment) I believe the sslhandler has a default settings for that but lets verify it.

@renkin
Copy link

renkin commented Sep 14, 2016

What is the current status of this beats plugin? It is listed as Potential Candidate of 2.4 Release, but was not included as I understand.

We want to use the beats Java implementation on AIX. Currently we use the Java implementation of the deprecated Logstash-Forwarder (https://github.com/didfet/logstash-forwarder-java).

@ph
Copy link
Contributor Author

ph commented Sep 14, 2016

@renkin This rewrite is only concerning a beats input for Logstash and not a new standalone client, we have beats for that need, beats itself is written in golang, but sadly there is still no support for the AIX platform see golang/go#7208.

I believe you only have two option:

  1. This input plugin is still backward compatible with logstash-forwarder client, so you can still you the java client to connect to the beats input.
  2. Run Logstash on AIX itself, though I haven't tried but it might work, but we don't officially support that platform.

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

No branches or pull requests

3 participants