0
我试图让fluentd
侦听一个tcp套接字,它将接收ascii输入行,并在每个事件中捕获100行组。fluentd捕获X行
我看到有一个tcp输入支持格式multiline
。如本例:
format multiline
format_firstline /^Started/
format1 /Started (?<method>[^ ]+) "(?<path>[^"]+)" for (?<host>[^ ]+) at (?<time>[^ ]+ [^ ]+ [^ ]+)\n/
format2 /Processing by (?<controller>[^\u0023]+)\u0023(?<controller_method>[^ ]+) as (?<format>[^ ]+?)\n/
不幸的是在我的数据的情况下,每行具有相同的格式,所以我不能确定基于行的格式,其中一个事件应该启动并在那里结束。相反,我希望它总是将X(在我的情况下为100)一起组合成一个事件,然后开始下一个事件。
我一直幻想多行正则表达式像这样的,但我怀疑fluentd
永远只是他们相匹配一行行,所以它永远不会匹配多行正则表达式:
format /^(?<data>(?:[^ ]+ [^ ]+ [^ ]+\r){100})$/