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

> Полные примечания исходного проекта к серии выпусков pgBadger 10.x

---

Индекс LLMS: [llms.txt](/ru/llms.txt)

---

Здесь полностью сохранена история изменений pgBadger 10.x из исходного проекта, от новых версий к старым.

## v10.3 · 2019-02-14 {#v10-3}

Это выпуск 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 {#v10-2}

Это выпуск 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 {#v10-1}

Это выпуск 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 {#v10-0}

Это основной выпуск 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 за сообщения.

---

Обратные ссылки:

- [История выпусков](/ru/docs/pgbadger/releases/)
