如何在CloudWatch Logs Insights中忽略(node:*)合并错误统计?
解决CloudWatch日志查询中因(node:*)前缀导致错误条目拆分的问题
当然可以修改查询实现合并,核心思路是去掉@message开头动态变化的(node:*)部分,用统一的错误内容作为分组依据,具体有两种常用方式:
方式一:使用parse提取统一错误内容
通过正则匹配并提取(node:*)之后的核心错误消息,以此作为分组字段:
fields @timestamp, @message | filter @message like /(?i)(error|except)/ | filter !ispresent(level) and !ispresent(eventType) | parse @message /^node:\S+ (.*)/ as cleaned_message | stats count(*) as ErrorCount by cleaned_message | sort ErrorCount desc
这里的正则^node:\S+ (.*)会匹配开头的node:+任意非空白字符(对应你的(node:*)部分),然后提取后面的所有内容作为cleaned_message,后续按这个字段统计就能合并同错误的条目。
方式二:使用replace移除动态前缀
直接把@message开头的(node:*)部分替换为空,得到统一的错误内容:
fields @timestamp, @message | filter @message like /(?i)(error|except)/ | filter !ispresent(level) and !ispresent(eventType) | fields replace(@message, /^node:\S+ /, '') as cleaned_message | stats count(*) as ErrorCount by cleaned_message | sort ErrorCount desc
这种方式更直接,通过正则匹配前缀并替换成空,同样能得到可用于分组的统一错误消息。
注意事项
如果你的(node:*)格式和示例略有不同(比如没有后续空格),可以调整正则:
- 比如
node:1234errorxxx这种无空格的情况,正则改成^node:\S+即可
内容的提问来源于stack exchange,提问作者thindery
相关产品推荐
相关产品推荐

