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

问题描述 投票:8回答:1

我正在尝试用parse命令提取一个短暂的字段。不幸的是,日志格式使得glob表达式不够用,因此我需要使用正则表达式。正则表达式本身很好,但我无法使命令提取任何东西。

我正在尝试:

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

第一组就是我在这里,我尝试了不同类型的引号等。这可能只是一个愚蠢的格式化错误,但我不能找到它。

几乎所有提到parse命令的文档都是here,其中的例子是使用glob表达式。无法通过Google搜索找到任何示例。

所以任何人都碰到了这个并解决了它?

regex amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch
1个回答
4
投票

尝试另一种方法,比如

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

祝好运!

© www.soinside.com 2019 - 2024. All rights reserved.