Amazon Cloudwatch Logs Insights使用正则表达式进行解析

时间:2019-02-28 07:18:32

标签: regex amazon-cloudwatchlogs amazon-cloudwatch

我正在尝试使用parse命令提取一个临时字段。不幸的是,日志格式无法满足要求,因此我需要使用正则表达式。正则表达式本身很好,但我只是无法发出提取任何内容的命令。

我正在尝试:

parse @endpoint /^([a-zA-Z_]+)[\/|?]*.*/ as @clean_endpoint

第一组是我想要的,我曾尝试使用不同类型的引号等。这可能只是一个愚蠢的格式错误,但我找不到它。

几乎唯一提及parse命令的文档是here,该示例使用的是glob表达式。都无法通过谷歌搜索找到任何示例。

所以有人碰到这个问题并解决了吗?

1 个答案:

答案 0 :(得分:0)

尝试另一种方法,例如

parse @message /(?<@endpt>(\/[a-zA-Z0-9_]+){1,})/
| stats count_distinct(@endpt) by @endpt

或者,考虑解决方案

fields @timestamp
| parse @message /(?<@endpt_post>POST (\/[a-zA-Z0-9_]+){1,})/
| parse @message /(?<@endpt_get>GET (\/[a-zA-Z0-9_]+){1,})/
| stats count() by @endpt_post, @endpt_get

祝你好运!