I'm using a the logstash jmx input pluggin to poll a specific mbean every second (return about 4000 messages every second). What I'm seeing right now, is that its not able to poll every second as it seems that there is some bottleneck that I can't quite pinpoint.
My config looks like this:
input {
jmx {
path => "/home/ec2-user/jmx-input"
polling_frequency => 1
nb_thread => 10
}
}
output {
kafka {
topic_id => "kafka-jmx"
bootstrap_servers => "kafka1.com:9092"
batch_size => 6000
acks => "0"
key_serializer =>"org.apache.kafka.common.serialization.StringSerializer"
codec => "json_lines"
}
}
And I start it like this:
./logstash/bin/logstash -f jmx-input.conf -w 12
I've tried various batch sizes (150-6000) and nb_threads up to 16 but still can't get the jmx to flow without having to wait.
How can I figure out where this bottleneck is and what to tune?