Advertisement
bytecoded

TopQueriesByAverageDuration.sh

Nov 9th, 2019
406
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.95 KB | None | 0 0
  1. # читаем логи рабочих процессов
  2. cat */rphost*/*.log |
  3.  
  4. # удаляем параметры запросов
  5. sed -r '/^p_[0-9]+: /d' |
  6.  
  7. # удаляем BOM
  8. # заменяем переводы строк на @
  9. # заменяем пробельные символы на пробелы
  10. # удаляем все между DBMSSQL и Sql=
  11. # время события заменяем на <NL>
  12. perl -pe 's/\xef\xbb\xbf//g; s/\n/@/g; s/\s/ /g; s/#tt[0-9]+/#tt/g; s/DBMSSQL,.,.+?,Sql=/DBMSSQLSql=/; s/^[0-9]+:[0-9]+.[0-9]+-/<NL>/' |
  13.  
  14. # считаем среднюю продолжительность и выводим
  15. gawk -F'DBMSSQL' -vRS='<NL>' '{if ($2 !~ /^$/) {Durations[$2]+=$1; Executions[$2]+=1}} END {for (i in Durations) printf "%.3f %s\n", Durations[i] / Executions[i], i}' |
  16.  
  17. # сортируем
  18. sort -rnb |
  19.  
  20. # заменяем @ на перевод строки
  21. perl -pe 's/@/\n/g' > TopQueriesByAverageDuration.txt
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement