[英]AWS Cloudwatch Log Insights query using Regex does not extract columns for MySql Slow Query Logs
当我在 AWS Cloudwatch Log Insights 中运行以下查询时,我得到空白 output
parse @message /Query_time: (?<Query_time>[0-9](\.[0-9]+)?), Lock_time: (?<Lock_time>[0-9](\.[0-9]+)?), (?<Query>(?<=\;)(.*?)(?=\;))/
但是如果我单独运行它,它会提取值
parse @message /Query_time: (?<Query_time>[0-9](\.[0-9]+)?)/
# User@Host: ****[****] @ localhost [] Id: 10
# Query_time: 0.000283 Lock_time: 0.000075 Rows_sent: 1 Rows_examined: 1
SET timestamp=1589784518; SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'TIME_SINCE_ZERO_CONNECTIONS';
有什么我想念的吗
你可以使用
Query_time:\s*(?<Query_time>[0-9]+(?:\.[0-9]+)?)\s*Lock_time:\s*(?<Lock_time>[0-9]+(?:\.[0-9]+)?)[\s\S]*?;\s*(?<Query>[^;]*)
请参阅正则表达式演示。 细节:
Query_time:
- 文字串\s*
- 任何 0+ 空格(?<Query_time>[0-9]+(?:\.[0-9]+)?)
- 组“Query_time”:类似浮点数或整数的数字\s*
- 任何 0+ 空格Lock_time:
- 文字字符串\s*
- 任何 0+ 空格(?<Lock_time>[0-9]+(?:\.[0-9]+)?)
- 组“Lock_time”:类似浮点数或整数的数字[\s\S]*?
- 任何 0+ 个字符,包括换行符,尽可能少;
- 一个分号\s*
- 0+ 空格(?<Query>[^;]*)
- 组“查询”:除;
之外的任何 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.