我正在尝试使用parse
命令提取一个临时字段。不幸的是,日志格式无法满足要求,因此我需要使用正则表达式。正则表达式本身很好,但我只是无法发出提取任何内容的命令。
我正在尝试:
parse @endpoint /^([a-zA-Z_]+)[\/|?]*.*/ as @clean_endpoint
第一组是我想要的,我曾尝试使用不同类型的引号等。这可能只是一个愚蠢的格式错误,但我找不到它。
几乎唯一提及parse
命令的文档是here,该示例使用的是glob表达式。都无法通过谷歌搜索找到任何示例。
所以有人碰到这个问题并解决了吗?
答案 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
祝你好运!