Примечания к выпускам pgBadger 10.x
Здесь полностью сохранена история изменений pgBadger 10.x из исходного проекта, от новых версий к старым.
v10.3 · 2019-02-14
Это выпуск pgBadger с исправлениями нескольких проблем автоматического определения формата журнала и ещё одну ошибку разбора журнала pgBouncer, о которых сообщили пользователи. Также добавлена новая возможность:
Параметр -o | --outfile теперь можно указывать несколько раз, чтобы одной
командой вывести результат в нескольких форматах. Например:
pgbadger -o out.html -o out.json /log/pgsql-11.log
создаст два отчёта в форматах HTML и JSON и сохранит их в соответствующих
файлах.
Также исправлены ошибки и улучшены возможности.
- Исправлены статистические отчёты с фильтром по базе данных, пользователю, клиенту или приложению: некоторые запросы не попадали в отчёт.
- Исправлено автоматическое распознавание стандартного префикса строки журнала pg>=10.
- Исправлено автоматическое распознавание файла журнала с «нестандартным» префиксом. Если –prefix содержит %t, %m или %n и %p либо %c, выбирается формат stderr. Спасибо Alex Danvy за сообщение.
- Удалён лишний пробел в конце строки.
- Добавлен минимальный тест анализатора syslog.
- Исправлен вызов autodetect_format().
- При использовании maxlength оператор усекается. Спасибо Thibaud Madelaine за патч.
- Добавлен тест нескольких форматов вывода.
- Параметр -o | –outfile теперь можно указывать несколько раз, чтобы одной командой вывести результат в нескольких форматах. Например: pgbadger -o out.txt -o out.html -o - -x json /log/pgsql-11.log Здесь pgbadger создаст два отчёта в текстовом формате и HTML, сохранит их в соответствующих файлах и выведет отчёт JSON в стандартный вывод. Спасибо Nikolay за запрос функции.
- Определение формата вывода и назначение имени выходного файла перенесены в отдельную функцию set_output_extension().
- Исправлена ещё одна ошибка разбора журнала pgBouncer. Спасибо Douglas J. Hunley за сообщение.
v10.2 · 2018-12-27
Это выпуск pgBadger с исправлениями проблем, о которых пользователи сообщили за предыдущие три месяца. Также добавлены новые возможности:
- Добавлена поддержка формата журнала Stats из pgbouncer 1.8.
- Добавлена автоматическая корректировка часового пояса диаграмм JavaScript.
Добавлены новые параметры командной строки:
Добавлен параметр –exclude-db для построения отчёта обо всём, кроме указанной базы данных.
Добавлена загрузка удалённого файла журнала PostgreSQL по HTTP или FTP. Журнал разбирается во время загрузки командой curl и не сохраняется на диск. При удалённом разборе по SSH файл журнала PostgreSQL можно указать аргументом URI командной строки.
ssh://localhost/postgresql-10-main.log http://localhost/postgresql-10-main.log.gz ftp://localhost/postgresql-10-main.logДля протоколов HTTP и FTP формат журнала нужно указать в конце URI:
http://localhost/postgresql-10-main.log:stderrМожно указать несколько URI файлов журналов для разбора. Это полезно, когда журнал pgbouncer находится на удалённом узле, а журналы PostgreSQL — на локальном.
С протоколом SSH также можно использовать подстановочные знаки, как в удалённом режиме, например: ssh://localhost/postgresql-10-main.log*
Старый синтаксис разбора удалённого журнала с параметром -r по-прежнему работает, но устарел и может быть удалён в будущих версиях.
Также исправлены ошибки и улучшены возможности.
- Скорректировано завершение индикатора выполнения для файлов с оценочным размером (сжатых bz2 и удалённых сжатых файлов).
- Обновлён год в уведомлении об авторских правах.
- Добавлены сведения о записи URI для разбора удалённых журналов.
- По завершении разбора удалённого сжатого файла индикатор принудительно достигает 100%.
- Из запросов в отчётах о временных файлах извлекаются сведения о вызовах функций PL/pgSQL и добавляются в блок подробностей.
- Исправлен индикатор выполнения для файлов csv.
- Исправлено чтение двоичного файла как входного файла вместо журнала.
- HTML-вывод запросов кодируется в UTF8 во избежание сообщения “Wide character in print”. Спасибо Colin ’t Hart за сообщение.
- Для пикового расстояния добавлена пара ключ/значение Checkpoints distance.
- Исправлены разбор pgbouncer и отчёты о пропускной способности запросов. Спасибо Levente Birta за сообщение.
- Для формата ввода исправлено использование csvlog вместо csv.
- Добавлена поддержка формата журнала Stats из pgbouncer 1.8. Спасибо Levente Birta за сообщение.
- Добавлено предупреждение об отключении параллельной обработки с csvlog. Спасибо cstdenis за сообщение.
- В справку по -j и -J добавлены сведения о принудительном одном процессе для формата csvlog. Спасибо cstdenis за сообщение.
- Исправлена ошибка неизвестного формата строки в многострочном журнале при инкрементальном анализе по SSH. Спасибо Wooyoung Cho за сообщение.
- В команду curl добавлен параметр -k (–insecure) для загрузки журналов с сервера с самоподписанным сертификатом.
- Добавлена автоматическая корректировка часового пояса диаграмм JavaScript. Спасибо Massimino Sala за запрос функции.
- Добавлена загрузка файла журнала по HTTP средствами pgBadger, например: /usr/bin/pgbadger http://www.mydom.com/postgresql-10.log
- Файл разбирается во время загрузки командой curl.
- Исправлена документация. Спасибо 0xflotus за патч.
- После дополнительной очистки кода повторно применено исправление отсутствующей подстановки параметров привязки. Спасибо Bernhard J. M. Grun за сообщение.
- Добавлен параметр –exclude-db для отчёта обо всём, кроме указанной базы данных. Параметр можно указывать несколько раз.
v10.1 · 2018-09-12
Это выпуск pgBadger с исправлениями отчётов в инкрементальном режиме и многопроцессную обработку с параметром -j. Разбор журнала из стандартного ввода также был нарушен. Если вы используете v10.0, обновитесь сейчас.
- Добавлен тест анализатора журнала pgbouncer.
- Немного повышена производительность.
- Исправлена ошибка недопустимого файлового дескриптора в строке 12314 pgbadger.
- Удалён нежелательный перевод строки в индикаторе выполнения при запуске.
- Файлы CircleCI удалены из проекта.
- Удалены зависимости bats и jq для набора тестов; их заменили Test::Simple и JSON::XS.
- Добавлено больше тестов, особенно для инкрементального режима и ввода из stdin, нарушенного в версии 10.0.
- Синхронизированы pgbadger, POD и README, исправлены синтаксические ошибки. Спасибо Christoph Berg за патч.
- Добавлена документация по установке модуля Perl JSON::XS из репозиториев apt и yum.
- Исправлен URI CSS в инкрементальном режиме. Спасибо Floris van Nee за сообщение.
- Исправлена критическая ошибка при поиске журнала в STDIN. Спасибо Jacek Szpot за сообщение.
- Исправлено использование SED при сборке в OSX. Спасибо Steve Newson за патч.
- Исправлено недопустимое деление на ноль в инкрементальном режиме. Спасибо aleszeleny за сообщение.
- SQL::Beautify заменён версией 3.1 pgFormatter::Beautify.
v10.0 · 2018-09-09
Это основной выпуск pgBadger, добавляющий новые возможности и исправляющий все проблемы, о которых пользователи сообщили после предыдущего выпуска.
- Добавлена поддержка формата файла журнала pgbouncer syslog.
- Добавлена поддержка всех форматов auto_explain (text, xml, json и yaml).
- Добавлена поддержка заполнителя %q в log_line_prefix.
- Добавлен формат jsonlog расширения Michael Paquier; pgbadger сможет разобрать такой журнал с -f jsonlog.
- Форматировщик SQL заменён версией 3.0 pgFormatter.
Добавлены новые параметры командной строки:
- Добавлен параметр –prettify-json для форматирования вывода JSON.
- Добавлен параметр –log-timezone +/-XX, задающий число часов смещения часового пояса от GMT для корректировки даты/времени из журнала перед разбором. Если часовой пояс клиента отличается, возможно, всё равно потребуется скорректировать часовой пояс диаграммы с помощью -Z.
- Добавлен параметр –include-time, позволяющий выбрать нужные интервалы вместо исключения всех ненужных интервалов через –exclude-time.
Проект pgBadger и авторские права переданы от Dalibo автору и официальному сопровождающему проекта. Обновите ссылки:
- Сайт: http://pgbadger.darold.net/
- Исходный код: https://github.com/darold/pgbadger
Я хочу поблагодарить замечательную команду Dalibo за многолетний вклад в pgBadger, особенно Damien Clochard и Jean-paul Argudo за помощь в продвижении pgBadger.
- Исправлено отсутствие расстояния и оценки контрольных точек в инкрементальном режиме. Спасибо aleszeleny за сообщение.
- Исправлен заголовок отчёта одновременных сеансов pgbouncer. Спасибо Jehan Guillaume De Rorthais за сообщение.
- Добавлена поддержка формата журнала pgbouncer syslog. Спасибо djester за запрос функции.
- Исправлена ошибка при пустом удалённом журнале. Спасибо Parasit Hendersson за сообщение.
- Исправлен тест двоичного формата. Двоичный файл нужно генерировать, поскольку он зависит от платформы. Спасибо Michal Nowak за сообщение.
- Исправлен случай создания пустого плана explain.
- Исправлен разбор автоматически распознанного стандартного формата с префиксом в командной строке.
- Из Makefile.PL удалена зависимость от команды git.
- Обновлена документация изменений параметров и удаления части [%l-1] из обязательного префикса.
- Исправлен разбор системного использования vacuum/analyze в PostgreSQL 10. Спасибо Achilleas Mantzios за патч.
- Исправлена таблица Temporary File Activity.
- Удалена зависимость от git при установке.
- Добавлен параметр –log-timezone +/-XX, задающий число часов смещения от GMT для корректировки даты/времени из журнала перед разбором. Он затрудняет поиск по дате/времени, поскольку время будет отличаться от записанного в журнале. Если часовой пояс клиента отличается, возможно, всё равно придётся корректировать часовой пояс диаграмм с помощью -Z. Спасибо xdexter за запрос функции и Julien Tachoire за патч.
- Добавлена поддержка формата вывода auto_explain json. Спасибо dmius за сообщение.
- Исправлены анализатор auto_explain и двойной учёт запросов. Спасибо zam6ak за сообщение.
- Регулярное выражение контрольных точек адаптировано к сообщениям журнала PostgreSQL 10. Спасибо Edmund Horner за патч.
- В описание -f | –format добавлены сведения о формате jsonlog.
- Исправлена нормализация запросов, чтобы не создавать дубликаты запросов bind. Значения теперь нормализуются в один ?, а не в 0 для чисел и две одинарные кавычки для строк. Спасибо vadv за сообщение.
- Исправлен подсчёт уровней журнала. Спасибо Jean-Christophe Arnu за сообщение.
- pgbadger приведён в большее соответствие с проверкой голых имён подпрограмм B::Lint.
- Устранены замечания perlcritic.
- Добавлен параметр –prettify-json для форматирования вывода JSON. По умолчанию весь вывод занимает одну строку.
- Исправлен отчёт распределения Events.
- Исправлена ошибка –prefix при нескольких %% в log_line_prefix. Спасибо svb007 за сообщение.
- Добавлен параметр –log-timezone +/-XX, задающий число часов смещения от GMT для корректировки даты/времени из журнала перед разбором. Он затрудняет поиск по дате/времени, поскольку время будет отличаться от записанного в журнале. Если часовой пояс клиента отличается, возможно, всё равно придётся корректировать диаграммы с помощью -Z. Спасибо xdexter за запрос функции.
- INDEXES удалено из списка ключевых слов, а BUFFERS добавлено.
- Исправлена нормализация запросов с курсорами.
- Удалены Dockerfile и документация docker run. pgBadger поставляется как один сценарий Perl без зависимостей и работает на любой платформе. Запускать pgbadger в Docker не имеет смысла: если вы не хотите ничего устанавливать, просто скопируйте файл pgbadger в нужное место и запустите его.
- Исправлена повреждённая сетка при отсутствии активности временных файлов. Спасибо Pierre Giraud за патч.
- В документацию добавлено предупреждение о log_min_duration_statement в сравнении с log_duration + log_statement. Спасибо Julien Tachoire за патч.
- Смещение часового пояса применяется к столбчатым диаграммам. Спасибо Julien Tachoire за патч.
- При ошибке для того же PID удаляются текущие сведения о временном файле. Спасибо Julien Tachoire за патч.
- В примерах последовательно используется app= и поддерживается appname=. В некоторых примерах префикса использовалось appname=, но код не распознавал этот токен. Теперь во всех примерах используется app=, а appname= добавлен в анализатор префикса. Спасибо Christoph Berg за патч.
- Исправлено длинное имя параметра -J: должно быть –Jobs вместо –job_per_file. Спасибо Chad Trabant за сообщение и Etienne Bersac за патч.
- Файлы blib игнорируются. Спасибо Etienne Bersac за патч.
- Добавлены тесты согласованности. Спасибо damien clochard за патч.
- Документация обновлена: stderr не является значением -f по умолчанию. Спасибо Christophe Courtois за патч.
- POD и README всегда обновляются. Спасибо Etienne Bersac за патч.
- Добавлены регрессионные тесты. Спасибо Etienne Bersac за патч.
- Добавлена конфигурация editorconfig. Спасибо Etienne Bersac за патч.
- Временные файлы vi удалены из gitignore. Спасибо Etienne Bersac за патч.
- Добавлен параметр –include-time, позволяющий выбрать нужные интервалы, вместо исключения всех ненужных. Это удобно для просмотра одного-двух дней из недельных журналов: несколько –exclude-time заменяются одним –include-time. Спасибо Wesley Bowman за патч.
- Проверяется синтаксис POD. Спасибо Etienne Bersac за патч.
- Для документирования тестов добавлен HACKING. Спасибо Etienne Bersac за патч.
- Удалён устаревший параметр –bar-graph. Спасибо Etienne Bersac за патч.
- Удалён вводящий в заблуждение .perltidyrc. Файл датирован 2012 годом, а код pgbadger далёк от соответствия ему; унифицированный diff perltidy занимает 10 тысяч строк. Спасибо Etienne Bersac за патч.
- Исправлено использование неинициализированного значения при форматировании SQL. Спасибо John Krugger и Jean-paul Argudo за сообщения.