mtail匹配多行日志信息作为标签问题

Viewed 23

我现在错误日志是信息如下:
ERROR service.grt.impl.InvoiceServiceImpl Line:320 - 开票失败,投保订单号orderNo=1111
失败原因是:xxxxx
ERROR service.grt.impl.InvoiceServiceImpl Line:320 - 开票失败,投保订单号orderNo=2222
失败原因是:yyyyy
ERROR service.grt.impl.InvoiceServiceImpl Line:320 - 开票失败,投保订单号orderNo=3333
失败原因是:zzzzzz
我想通过mtail来匹配EROOR下的日志,并且将下一行的日志也作为标签输出到指标中,例如指标变成如下:
mtail_exception_count{env="prod",error="ERROR service.grt.impl.InvoiceServiceImpl Line:320 - 开票失败,投保订单号orderNo=1111 \n失败原因是:xxxxx"}
有谁知道这样input.mtail下的prog规则该怎么配置呢?

3 Answers

参考这个呢mtail插件

/(?P<operation>\S+) (\S+) \[\S+\] (\S+) \(\S*\) \S+ (?P<bytes>\d+)/ {
  bytes_total[$operation][$3] += $bytes
}

/(?P\S+) (\S+) [\S+] (\S+) (\S*) \S+ (?P\d+)/
这个正则匹配无法匹配多行记录

mtail不支持多行匹配

哦,多谢多谢!