我正在尝试用parse
命令提取一个短暂的字段。不幸的是,日志格式使得glob表达式不够用,因此我需要使用正则表达式。正则表达式本身很好,但我无法使命令提取任何东西。
我正在尝试:
parse @endpoint /^([a-zA-Z_]+)[\/|?]*.*/ as @clean_endpoint
第一组就是我在这里,我尝试了不同类型的引号等。这可能只是一个愚蠢的格式化错误,但我不能找到它。
几乎所有提到parse
命令的文档都是here,其中的例子是使用glob表达式。无法通过Google搜索找到任何示例。
所以任何人都碰到了这个并解决了它?
尝试另一种方法,比如
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
祝好运!