Перейти к содержанию

Примечания к выпускам pgBadger 10.x

Полные примечания исходного проекта к серии выпусков 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 автору и официальному сопровождающему проекта. Обновите ссылки:

Я хочу поблагодарить замечательную команду 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 за сообщения.