首页 文章

Logstash grok过滤器比Java正则表达式模式匹配慢

提问于
浏览
1

我有一些RFC-5424格式的系统日志消息 .

我正在使用logstash grok过滤器和java正则表达式模式匹配来解析日志 . 我正在比较两种相同输入的方法 .

java正则表达式解析是从stdin读取输入并在单线程中运行 .

Logstash还从stdin读取输入,我已将工作线程配置为1,管道批处理大小等于消息数,以便在一个批处理中处理所有消息 .

I can see that java regular expression parsing is much faster than grok filter.

观察:

输入 - 300K消息

Java Regex - 1500毫升

Logstash Grok - 每次超过1分钟 .

Why is Logstash Grok is this much slower than java regex. Grok is also supposed to be using java regexes in backend.

1 回答

  • 0

    在没有任何更多细节的情况下,很难说出为什么特定模式在Grok或Java中更慢或更快,但有一点是肯定的: the regex engines are different .

    Java使用特殊的 java.util.regex 模块和Grok uses Oniguruma正则表达式引擎 . 他们可以按照自己的方式处理相同的模式和字符串 .

相关问题