Regex 使用正则表达式的AWS Cloudwatch日志洞察查询不会为MySql慢速查询日志提取列
当我在AWS Cloudwatch Log Insights中运行以下查询时,得到的是空白输出Regex 使用正则表达式的AWS Cloudwatch日志洞察查询不会为MySql慢速查询日志提取列,regex,amazon-cloudwatchlogs,Regex,Amazon Cloudwatchlogs,当我在AWS Cloudwatch Log Insights中运行以下查询时,得到的是空白输出 parse @message /Query_time: (?<Query_time>[0-9](\.[0-9]+)?), Lock_time: (?<Lock_time>[0-9](\.[0-9]+)?), (?<Query>(?<=\;)(.*?)(?=\;))/ 有没有我遗漏的东西你可以用 Query_time:\s*(?<Query_time&
parse @message /Query_time: (?<Query_time>[0-9](\.[0-9]+)?), Lock_time: (?<Lock_time>[0-9](\.[0-9]+)?), (?<Query>(?<=\;)(.*?)(?=\;))/
有没有我遗漏的东西你可以用
Query_time:\s*(?<Query_time>[0-9]+(?:\.[0-9]+)?)\s*Lock_time:\s*(?<Lock_time>[0-9]+(?:\.[0-9]+)?)[\s\S]*?;\s*(?<Query>[^;]*)
看。详情:
查询时间:-文本字符串
\s*-任何0+空格
?[0-9]+?:\.[0-9]+? - 组查询时间:浮点或类似整数的数字
\s*-任何0+空格
锁定时间:-文本字符串
\s*-任何0+空格
?[0-9]+?:\.[0-9]+? - 组锁定时间:浮点或类似整数的数字
[\s\s]*?-任何0+字符,包括换行字符,尽可能少
; - 分号
\s*-0+空格
?[^;]*-组查询:除;以外的任何0个或更多字符;。
这是我的,它提取所有字段:
# fields @message |
parse @message /# Time:\s(?<Time>.*?)\sUser@Host: (?<User>.*)\[.*?\]\s@ \s.(?<Host>.*?). Id: \d*\s# Query_time: (?<Query_time>.*?)\s Lock_time: (?<Lock_time>.*?)\sRows_sent: (?<Rows_sent>.*?)\sRows_examined: (?<Rows_examined>.*?)\s(?<Query>.*)/
| sort Query_time desc
你确定“回头看”有效吗?也许可以尝试查询时间:?[0-9]\.[0-9]+?,锁定时间:?[0-9]\.[0-9]+;?[^;]*;尝试查询时间:?[0-9]+?:\[0-9]+?锁定时间:?[0-9]+?:\[0-9]+?[\s\s]*\s*?[^;]*@我试过的第四只鸟,你认为它不起作用,仍然在显示blank@WiktorStribiżew尝试了你的建议,但它仍然显示空白。但是,正如每个cloumn都显示的一样,我的正则表达式使用的是您共享的字符串。在本演示中,我刚刚将空格替换为\s*
Query_time:\s*(?<Query_time>[0-9]+(?:\.[0-9]+)?)\s*Lock_time:\s*(?<Lock_time>[0-9]+(?:\.[0-9]+)?)[\s\S]*?;\s*(?<Query>[^;]*)
# fields @message |
parse @message /# Time:\s(?<Time>.*?)\sUser@Host: (?<User>.*)\[.*?\]\s@ \s.(?<Host>.*?). Id: \d*\s# Query_time: (?<Query_time>.*?)\s Lock_time: (?<Lock_time>.*?)\sRows_sent: (?<Rows_sent>.*?)\sRows_examined: (?<Rows_examined>.*?)\s(?<Query>.*)/
| sort Query_time desc