## Filtering queries ### Find slowest write queries ``` parse @message /Query_time: (?.*?) Lock_time: (.*?) Rows_sent: (?.*?) Rows_examined: (?.*?)\s(?.*?)$/ | filter @message like /(?i)insert/ | sort queryTime desc | limit 10 ``` ### Find slowest read queries ``` parse @message /Query_time: (?.*?) Lock_time: (.*?) Rows_sent: (?.*?) Rows_examined: (?.*?)\s(?.*?)$/ | filter @message like /(?i)select/ | sort queryTime desc | limit 10 ``` ## Time series queries ### Number of slow queries per hour ``` parse @message /Query_time: (?.+?) / | stats count() as count by bin(1h) as hour ``` ### Number of slow queries per day ``` parse @message /Query_time: (?.+?) / | stats count() as count by bin(1d) as day ``` ### Averge of slow query duration per day ``` parse @message /Query_time: (?.+?) / | stats avg(queryTime) as avg by bin(1d) as day ``` ### Max slow query duration per day ``` parse @message /Query_time: (?.+?) / | stats max(queryTime) as max by bin(1d) as day ``` ## Stats queries ### Summary stats for query time per hour ``` parse @message /Query_time: (?.+?) / | stats count() as count, max(queryTime) as max, avg(queryTime) as avg by bin(1h) as hour ``` ### Summary stats of slow write queries by day ``` parse @message /Query_time: (?.+?) / | filter @message like /(?i)insert/ | stats count() as count, max(queryTime) as max, avg(queryTime) as avg by bin(1d) as day ``` ### Summary stats of slow read queries by day ``` parse @message /Query_time: (?.+?) / | filter @message like /(?i)select/ | stats count() as count, max(queryTime) as max, avg(queryTime) as avg by bin(1d) as day ``` ### Summary stats of slow write queries by table ``` filter @message like /(?i)insert/ | parse @message /(?i)# Query_time: (?.*?) [\s\S]*insert into `?(?.*)`?\(?[\s\S]*/ | stats count() as count, max(queryTime) as max, avg(queryTime) as avg by tableName ```