如何通过掩码字符串排除含可变数字的日志消息?
解决查询中排除含可变数字消息的问题
你的问题出在使用*通配符的方式不对,这类查询(LogQL)里的!=不支持这种模糊匹配逻辑,得用正则匹配来处理可变数字部分。
直接改用!~正则不匹配操作符,把可变数字部分换成正则表达式\d+(匹配任意长度的数字),修正后的查询如下:
topk(5, count by(Receiver, QdocName, Message) ( rate( {filename="$filename"} | logfmt | pattern `$pattern` | Result = ` error` | Message !~ `maintainInventoryDetail ERROR: Open task exists: \d+ for this Reference. CAN'T BE UPDATED. Please re-enter.` [$__interval])))
关键说明
!~是LogQL中的正则不匹配操作符,专门用来排除符合指定正则模式的条目\d+会匹配1个或多个数字,完美对应消息里的可变数字段- 这样就能精准过滤掉所有带有这类可变数字的目标错误消息,得到你需要的结果
内容的提问来源于stack exchange,提问作者Hazem Qaisi
相关产品推荐
相关产品推荐

