Does Logstash have a feature that allows us to set how many events are sent to remotes, for example outputted to Elasticsearch, for every particular time interval?
What we are trying to do is something like this: have no more than X number of events or Y MB of data sent by Logstash every N time interval - a bit like throttling.
I still want all the events to be sent just at a controlled rate.
I've tried using the throttle plugin but am not sure whether it fits the purpose.
Maybe I've missed something but x-pack monitoring for logstash only gives me the rate values but doesn't really give me the ability to tweak the rates themselves.
Say I notice that Logstash is sending too many events per second, how can I tell Logstash to "calm down" a bit and do not exceed x amount of events per second or x MB per second.
Thanks Mark, I've checked the link but the retry policy only describes the behaviour when there is a disconnect.
I've looked further into the adaptive throttling feature of ES which determines the indexing/merge IO rate of ES when the load is high and when the load is low. So hypothetically, if when the load is high, the merge IO rate has been dynamically determined to be 200MB/s, does that mean roughly if I have 10 Logstash instances each of them will only be sending 20 MB/s?
And if I really wanted to, I could set indices.store.throttle.max_bytes_per_sec (I understand this is not recommended) explicitly that would indirectly limit the send rate of logstash during high load?
Also a side question: before sending data requests/docs to ES, does Logstash send some sort of handshake or status requests or permission requests prior to sending data to know whether or not to send the docs over to ES?
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.