-
Notifications
You must be signed in to change notification settings - Fork 81
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
Feature/java implementation #93
Conversation
73f8986
to
f3725d7
Compare
@talevy there is a faillings test in when the when the client authenticate with a secondary ca, I am looking at fixing this but You can do a first run :) |
@talevy this PR need to run with logstash master. |
@@ -2,3 +2,4 @@ source 'https://rubygems.org' | |||
|
|||
# Specify your gem's dependencies in logstash-mass_effect.gemspec | |||
gemspec | |||
gem "logstash-core", :path => "~/es/logstash" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
leaving a note here to remember we need this to go before merging
@talevy Can you take a second look? |
compile 'io.netty:netty-tcnative-boringssl-static:1.1.33.Fork17' | ||
compile 'org.apache.logging.log4j:log4j-api:2.6.1' | ||
compile 'org.apache.logging.log4j:log4j-core:2.6.1' | ||
compile 'org.lucee:javassist:3.9.0.GA' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thats not the origininal javassist package, try http://mvnrepository.com/artifact/org.javassist/javassist
I did another pass @spinscale ! |
READ_JSON(-1), | ||
READ_DATA_FIELDS(-1); | ||
|
||
private int value; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
name it length
?
left some minor comments, but I like this. hope to get this into more testing soon! :) |
quick update: Be careful with jackson and dependencies.. I just checked out this issue in the rss plugin and I see a reference to afterburner already logstash-plugins/logstash-input-rss#21 |
Failing to use this plugin:
Noting the 'no such file to load', I checked a few things and everything seems OK to me:
^^^ Correct version installed, it seems. And the file it should have tried to load does exist:
Weird? |
require "logstash/util" | ||
require "thread_safe" | ||
require "vendor/jar-dependencies/logstash-input-beats-3.1.0.beta1.jar" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This causes Logstash to fail to load the plugin because the file is not found because it's the wrong path.
The .gemspec puts vendor/jar-dependencies
into ruby's library path, so you can just do require "logstash-input-beats-3.1.0.beta1.jar"
here. If I make this change, I can load this plugin into logstash.
If you throw garbage at a plain text beats input, you get all kinds of fun exceptions: To reproduce:
|
Sending a MAX_INT as the json payload length causes fun errors> Reproduction:
Error:
|
Hilarious things happen when Logstash runs out of file descriptors. I triggered this scenario by simply opening lots of connections.
|
build/ | ||
.idea | ||
.gradle | ||
null |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
null? hah.
Very poorly-scienced performance comparison on my 1-core VM
Peak was around 13.5Keps (this PR)
Release (5.0.0-alpha4) beats input peaks at 11.2Keps.
|
Same test as above with a 2-core VM (same physical machine)
I need to test against older versions also. |
I also get this sometimes when shutting down:
|
answering @jordansissel's comment here.
Concerning the test what did you use to generate the events, Filebeat from stdin? |
@ph yeah I used filebeat from stdin
|
@jordansissel My test were done with logstash using all available core, the null output and generator beats which just send a infinite number of events. The stats were gathered at the sending end using libbeat http server. The metric was the number of events ack per seconds from a 30s window. IIRC. |
I am investigating the leak that @talevy has found when running the code locally, with the |
@jordansissel still using stdout represent more a real world case. :) |
@jordansissel Concerning the Number of FD and when we send garbage, would you be OK to do that in another PR, this one is starting to be pretty big :) |
@jordansissel Can you use pipelining on the beat side under the logstash output configuration? output.logstash:
compression_level: 3
hosts:
- localhost:5044
pipelining: 5 |
LGTM. I think this should be merged into |
+1, this PR is getting huge as is. @ph needs a rebase though |
Motivation: The core of Logstash is using more and more java instead of ruby for performance reason and scalability. This PR introduce a lot of internal changes in the plugins and move from ruby to a pure java implementation using the Netty 4 Framework. Also the connection model of this plugin has changed from a blocking to a non blocking implementation. The changes should be backward compatible with the previous settings and will work for both LSF and Filebeat client.
1fff26f
to
d1252fb
Compare
I've created issues from @jordansissel comments: |
Pier-Hugues Pellerin merged this into the following branches!
|
Not ready for production, do not use.