Description
I've run a number of performance tests to get the raw throughput per-worker to determine how different variables affect the throughput of the grok, and determined that the changes to timeouts definitely have an outsized impact on grok filters that fall through many patterns to find their match (which makes sense, because the plugin initiates a timeout on each event for each pattern on until we find a match).
6.7.1 | 7.4.1 JEE | 7.4.1 REE | |
---|---|---|---|
grok-single-pattern | 97k | 65k | 57k |
grok-single-pattern-NT | 96k | 105k | 98k |
grok-52-fallthrough | 42k | 15k | 17k |
grok-52-fallthrough-NT | 42k | 71k | 68k |
Caveat: In the above, NT indicates "No Timeout", or timeout_millis => 0
, which we do NOT recommend for production since a single pathological input can essentially tie up CPU resources indefinitely)
I will follow up with methodology for the above, and will see if I can get a better apples-to-apples comparison with 6.7.1 using the same version of this plugin as ships with 7.x.