Настройка сбора статистики postgresql с помощью pgbadger
Официальная репа – https://github.com/dalibo/pgbadger
Приводим конфиг postgresql в части логов к такому виду
##https://www.dhis2.org/analysing-postgresql-logs-using-pgbadger log_line_prefix = '%t [%p]: [%l-1] ' log_statement = 'none' log_min_duration_statement = 0 log_checkpoints = on log_connections = on log_disconnections = on log_lock_waits = on log_temp_files = 0 log_autovacuum_min_duration = 0 logging_collector = on log_directory = '/var/log/postgresquerylog/' log_filename = 'postgresql.log' log_destination = 'csvlog,stderr' #cat /var/log/postgresquerylog/postgresql.log | grep -viE "create index|insert into analytics|vacuum analyze analytics" > /var/log/postgresquerylog/pg_clean.log ##pgbadger -j 4 /var/log/postgresquerylog/pg_clean.log
Создаем папку для логов
mkdir -p /var/log/postgresquerylog/
Установка pgbadger
git clone https://github.com/dalibo/pgbadger.git cd pgbadger git checkout v9.2 perl Makefile.PL make && sudo make install
Примечание. Парсинг файла размером 9.5GB
Option | 1 CPU | 2 CPU | 4 CPU | 8 CPU --------+---------+-------+-------+------ -j | 1h41m18 | 50m25 | 25m39 | 15m58 -J | 1h41m18 | 54m28 | 41m16 | 34m45
Использование pgbadger
Итак мы получили данные в файл логов /var/log/postgresquerylog/postgresql.log.
Чтобы сгенерить отчет из этого файла понадобиться 2 команды
cat /var/log/postgresquerylog/postgresql.log | grep -viE "create index|insert into analytics|vacuum analyze analytics" > /var/log/postgresquerylog/pg_clean.log
pgbadger -j 4 /var/log/postgresquerylog/pg_clean.log
ПРофит – на вытеле файл html