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

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

---

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

---

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

## v11.8 · 2022-04-08 {#v11-8}

Этот выпуск pgBadger исправляет проблемы, о которых пользователи сообщили
за предыдущие три месяца, и в особенности две ошибки обнаружения новых
записей журнала в инкрементальном режиме.

  * Исправлено обнаружение новых записей журнала по отметке времени, когда
    в log_line_prefix использовались миллисекунды (%m) или эпоха (%n).
  * Исправлено обнаружение новых записей в локальном файле без использования
    многопроцессной обработки.

Полный список изменений и благодарностей:

  - Полностью пересмотрено и упрощено обнаружение изменений файла журнала.
  - Сообщения "could not (receive|send) data (from|to) client" включены в отчёты
    Events. Спасибо Adrien Nayrat за сообщение.
  - Исправлена ошибка разбора, когда имя подготовленного запроса содержит
    символ ':'. Спасибо aleszeleny за сообщение.
  - Исправлено обнаружение новых записей журнала по отметке времени с
    миллисекундами (%m) или эпохой (%n). Спасибо aleszeleny за сообщение.
  - Исправлено обнаружение новых записей в локальном файле без многопроцессной
    обработки. Спасибо aleszeleny за сообщение.
  - Исправлено обнаружение новых записей в удалённых файлах по SSH. Спасибо
    Luca Ferrari за сообщение.
  - Устранён мусор в имени пользователя в отчёте "Connections per user".
    Спасибо caseyandgina за сообщение.
  - Исправлена команда SSH при использовании URI: ранее параметры SSH
    отсутствовали. Спасибо Luca Ferrari за сообщение.
  - Добавлена обработка заполнителя queryid %Q. Спасибо Adrien Nayrat за патч.
  - Исправлена опечатка в сообщении об ошибке. Спасибо Luca Ferrari за патч.
  - Сообщение "server process was terminated by signal" включено в отчёт
    Events. Спасибо Avi Vallarapu за сообщение.
  - В документации исправлено имя файла в команде еженедельного инкрементального
    отчёта. Спасибо Theophile Helleboid за патч.
  - В t/04_advanced.t исправлен тест syslog. Спасибо Christoph Berg за патч.

## v11.7 · 2022-01-23 {#v11-7}

Этот выпуск pgBadger исправляет проблемы, о которых пользователи сообщили
за предыдущие пять месяцев, и содержит ряд улучшений:

* Добавлен параметр --no-progressbar, скрывающий индикатор выполнения, но
  сохраняющий остальной вывод.
* Добавлен параметр --day-report для пересборки HTML-отчёта за указанный день.
  Он аналогичен --month-report, но работает только для одного дня. Требуются
  каталоги инкрементального вывода и все необходимые файлы двоичных данных.
  Значение — дата в формате YYYY-MM-DD.
* Улучшен разбор журналов Heroku logplex и cloudsql json.

Полный список изменений и благодарностей:

- Обновлены руководство для участников и Makefile.PL, что улучшает
  согласованность, ясность и зависимости. Спасибо diffuse за патч.
- Исправлено использование файла последнего разбора (--last-parsed) в двоичном
  режиме. Спасибо wibrt за сообщение.
- Добавлен регрессионный тест использования --last-parsed и исправлен тест
  отчёта только о временных файлах.
- Исправлен заголовок диаграммы сеансов по узлам. Спасибо Norbert Bede за сообщение.
- Исправлен номер недели при расчёте еженедельных отчётов с включёнными
  --iso-week-number и --incremental. Спасибо hansgv за сообщение.
- Добавлен --no-progressbar, скрывающий индикатор выполнения и сохраняющий
  остальной вывод. Спасибо seidlmic за запрос функции.
- Ограничен чрезмерный вывод строк неизвестного формата в режиме отладки для
  многострочного jsonlog.
- Исправлен разбор однострочного журнала cloudsql json. Спасибо Thomas Leclaire
  за сообщение.
- Исправлена сводка временных файлов при одном лишь log_temp_files.
- Отладочное сообщение с -v теперь выводится даже при -q или --quiet.
- Исправлено автоматическое распознавание файла jsonlog.
- Исправлен разбор файла журнала cloudsql. Спасибо Luc Lamarle за сообщение.
- Исправлено извлечение PID в parse_json_input. Спасибо Francois Scala за патч.
- Добавлен параметр --day-report со значением даты в формате YYYY-MM-DD для
  пересборки HTML-отчёта за указанный день. Спасибо Thomas Leclaire за запрос функции.
- Исправлен счётчик запросов в индикаторе выполнения. Спасибо Guillaume Lelarge
  за сообщение.
- Исправлены неполные запросы в отчётах самых затратных bind и prepare.
- Исправлена нормализация идентификатора объекта: в некоторых случаях числа
  заменялись на ?.
- Исправлены неформатированные нормализованные запросы с комментарием в начале.
- Исправлена многострочность формата stderr при использовании --dbname.
  Спасибо Guillaume Lelarge за сообщение.
- Исправлено отсутствие отчётов в инкрементальном режиме с --dbname. Спасибо
  Dudley Perkins за сообщение.
- Несовместимый двоичный файл больше не вызывает аварийное завершение: pgBadger
  переходит к следующему файлу. Спасибо Thomas Leclaire за предложение.
- Анализатор pgbadger адаптирован к изменению формата Heroku logplex. Спасибо
  François Pietka за сообщение.

## v11.6 · 2021-09-04 {#v11-6}

Этот выпуск pgBadger исправляет проблемы, о которых пользователи сообщили
за предыдущие семь месяцев, и содержит ряд улучшений:

  * Добавлено распознавание нового в PG14 Query Id из log_line_prefix. Спасибо
    Florent Jardin за сообщение.
  * Добавлены расширенные регрессионные тесты с исключением БД и функцией
    explode. Спасибо MigOps Inc за патч.
  * При использовании --explode создание отчётов выполняется несколькими
    процессами. Спасибо MigOps Inc за патч и Thomas Leclaire за запрос функции.
  * В инкрементальный режим добавлен --iso-week-number: календарные недели
    начинаются с понедельника и соответствуют нумерации ISO 8601 от 01 до 53,
    где неделя 1 — первая неделя, содержащая не менее 4 дней нового года.
    Спасибо Alex Muntada за запрос функции.
  * Добавлен параметр командной строки --keep-comments, сохраняющий комментарии
    в нормализованных запросах. Он полезен для различения одинаковых
    нормализованных запросов. Спасибо Stefan Corneliu Petrea за запрос функции.
  * Пропускаются строки INFO, добавленные в журнал PostgreSQL сторонним ПО.
    Спасибо David Piscitelli за сообщение.
  * Добавлена совместимость с журналом PostgresPro, где после длительности
    оператора указаны число строк и размер в байтах. Спасибо panatamann за сообщение.
  * Разбирается время с T, что позволяет использовать отметки времени journalctl.
    Спасибо Graham Christensen за патч.
  * Улучшен порт для Windows. Спасибо Bertrand Bourgier за патчи.

Важное примечание:

  * Ожидается, что в следующем основном выпуске --iso-week-number станет
    режимом по умолчанию, а --start-monday будет удалён, поскольку неделя всегда
    будет начинаться с понедельника. Ради упрощения кода будет удалена
    возможность начинать еженедельные отчёты с воскресенья.

Полный список изменений и благодарностей:

  - Устранено дублирование предупреждения:
      "database ... must be vacuumed within ... transactions".
    Спасибо Christophe Courtois за сообщение.
  - Исправлено использование неинициализированной переменной. Спасибо phiresky
    за сообщение.
  - Улучшено распознавание query id: он может быть отрицательным и считываться
    из csvlog.
  - Исправлен случай, когда последний файл в инкрементальном режиме всегда
    разбирался повторно. Спасибо Thomas Leclaire за сообщение.
  - Регулярное выражение формата syslog теперь поддерживает индикатор строки
    сеанса как из одного целого числа, так и из двух чисел через дефис. Спасибо
    Timothy Alexander за патч.
  - Параметр --exclude-db исправлен так, чтобы соответствующий отчёт всё равно
    создавался для журнала json. Спасибо MigOps Inc за патч и Thomas Leclaire
    за сообщение.
  - Добавлен регрессионный тест для ошибочной версии Storable.
  - Исправлено неинициализированное значение в итераторе подстановки при создании
    еженедельного отчёта в инкрементальном режиме. Спасибо Thomas Leclaire,
    Michael Vitale, Sumeet Shukla и Stefan Corneliu Petrea за сообщение.
  - Добавлен параметр 'g' для замены всех параметров привязки. Спасибо Nicolas
    Lutic и Sebastien Lardiere за патч.
  - Улучшена документация. Спасибо Stefan Petrea за патч.
  - Исправлен расчёт часового пояса времени изменения журнала. Спасибо Stefan
    Petrea за патч.
  - Исправлена фильтрация журнала по начальному/конечному времени.
  - Исправлено неверное сопоставление непривязанных строк многострочных запросов
    с фильтром по базе данных. Спасибо Abhishek Mehta за сообщение.
  - Исправлены отчёты инкрементального режима, когда параметр --dbname частично
    игнорировался с параметром "explode" (-E). Спасибо lrevest за сообщение.
  - Обновлены ресурсы JavaScript.
  - Исправлено отображение меню перед переходом в компактный режим при уменьшении
    экрана. Спасибо Guillaume Lelarge за сообщение.
  - Исправлена поддержка многострочных значений параметров привязки в журнале.
  - К предыдущему патчу применено то же исправление, что и в pgFormatter.
  - Исправлен ещё один случай неинициализированного значения в итераторе
    подстановки из кода pgFormatter. Спасибо Christophe Courtois за сообщение.
  - Исправлена нормализация запросов. Спасибо Jeffrey Beale за патч.
  - При использовании --dump-all-queries все операторы завершаются точкой с
    запятой. Спасибо Christian за сообщение.
  - Исправлены опечатка и инициализация типа EOL при нескольких файлах журналов.
  - Добавлено автоматическое определение типа EOL для исправления смещения
    LAST_PARSED при двухбайтовом EOL в Windows. Спасибо Bertrand Bourgier за патч.
  - Исправлен перенос get_day_of_week() на Windows, где strftime %u не
    поддерживается. Спасибо Bertrand Bourgier за патч.
  - Исправлен порт для Windows: утилита Perl pl2bat.bat создавала повреждённый
    pgbadger.bat из-за способа чтения __DATA__ в pgbadger. Спасибо Bertrand
    Bourgier за патч.
  - Исправлен фильтр начального/конечного времени и добавлен регрессионный тест
    фильтров отметок времени. Спасибо Alexis Lahouze и plmayekar за сообщение.
  - Исправлено использование неинициализированного значения при сопоставлении
    с шаблоном, появившееся после обновления pgFormatter. Спасибо arlt за сообщение.

## v11.5 · 2021-02-18 {#v11-5}

Этот выпуск pgBadger исправляет проблемы, о которых пользователи сообщили
за предыдущие три месяца, и содержит ряд улучшений:

  * Добавлен отчёт о времени простоя сеансов, рассчитанном по формуле:
        "total sessions time - total queries time / number of sessions
    Для достоверного значения должны быть включены log_connection и
    log_disconnection, а log_min_duration_statement = 0, чтобы журналировались
    все запросы. Это помогает оценить потерянное время простоя и понять,
    полезен ли режим транзакций в пулере. Отчёт находится на вкладке "Sessions"
    раздела "Global Stats" и на вкладке "Sessions" почасовых отчётов
    "General Activity".
  * Добавлена анонимизация числовых значений с заменой на 4 случайные цифры.
  * Обновлён форматировщик SQL на базе pgFormatter 5.0.

Полный список изменений и благодарностей:

  - Исправлен разбор многострочного оператора cloudsql. Спасибо Jon Young за сообщение.
  - Добавлен регрессионный тест анонимизации.
  - Исправлена анонимизация, нарушенная усечением maxlength. Спасибо artl за сообщение.
  - Добавлена анонимизация параметров в отчётах о затратных prepare и bind.
    Спасибо arlt за сообщение.
  - Добавлена поддержка микросекунд в префиксе строки журнала logplex. Спасибо
    Ross Gardiner за сообщение.
  - Добавлен отчёт о времени простоя сеансов. Спасибо Guillaume Lelarge за запрос функции.
  - Завершён патч поддержки многострочности в формате jsonlog.

## v11.4 · 2020-11-24 {#v11-4}

Этот выпуск pgBadger исправляет проблемы, о которых пользователи сообщили
за предыдущие четыре месяца, улучшает поддержку сведений журнала PostgreSQL 13
и добавляет новые возможности:

  * В отчёт "Vacuums per table" добавлены полные сведения autovacuum:
    использование буферов (попадания, промахи, загрязнения), пропуски из-за
    закрепления, пропуски замороженных страниц и использование WAL (записи,
    полные образы страниц, байты). В отчёт "Tuples removed per table" добавлены
    оставшиеся кортежи, ещё не удаляемые кортежи и оставшиеся страницы. Эти
    сведения доступны только на вкладке "Table".
  * Добавлен новый отчёт о распределении причин запуска контрольных точек.
  * Добавлено определение имени приложения из трассировок разрешённого соединения.

Полный список изменений и благодарностей:

  - Исправлена опечатка в сообщении об ошибке. Спасибо Vidar Tyldum за патч.
  - Исправлена ошибка порта Windows "can not load incompatible binary data".
    Спасибо Eric Brawner за сообщение.
  - Исправлена опечатка в параметре --html-outdir в справке и документации
    pgbadger. Спасибо Vidar Tyldum за патч.
  - Исправлено автоматическое распознавание формата jsonlog/cloudsql. Спасибо
    Jon Young за сообщение.
  - Исправлен разбор журнала CSV из PG v13. Спасибо Kanwei Li за сообщение
    и Kaarel Moppel за патч.
  - Исправлена сортировка запросов в отчёте о запросах, создающих больше всего
    временных файлов. Спасибо Sebastien Lardiere за сообщение.
  - В режиме отладки добавлена запись версии pgbadger.

## v11.3 · 2020-07-26 {#v11-3}

Этот выпуск pgBadger исправляет несколько проблем, о которых пользователи
сообщили за предыдущие четыре месяца. Он также добавляет новые возможности
и параметры командной строки:

  * Добавлено автоматическое распознавание отметки времени UTC, чтобы не
    применять часовой пояс к диаграммам.
  * Добавлена поддержка формата журнала GCP CloudSQL json.
  * Добавлен параметр --dump-all-queries: pgBadger выводит все запросы в
    текстовый файл без создания отчёта — только полный список операторов,
    найденных в журнале PostgreSQL. Параметры привязки вставляются в запросы
    на соответствующие позиции.
  * Добавлен параметр -Q | --query-numbering для нумерации запросов в выводе
    при использовании --dump-all-queries или --normalized-only.
  * Добавлен параметр командной строки --tempdir для выбора каталога временных
    файлов. Он полезен в системах, где запись в /tmp запрещена.
  * Добавлен параметр командной строки --ssh-port для задания порта SSH,
    отличного от 22. В записи URI порт SSH указывается в форме:
        ssh://192.168.1.100:2222//var/log/postgresql-11.log

Полный список изменений и благодарностей:

  - Исправлены инкрементальные отчёты для формата журнала jsonlog/cloudsql.
    Спасибо Ryan DeShone за сообщение.
  - Добавлено автоматическое распознавание отметки времени UTC, чтобы не
    применять к диаграммам автоматически определённый часовой пояс. Для времени
    UTC JavaScript применит локальный часовой пояс. Спасибо Brett Stauner за сообщение.
  - Исправлен инкрементальный разбор журналов journalctl, который не работал со
    второго запуска. Спасибо Paweł Koziol за патч.
  - Исправлен путь к файлу ресурсов при использовании -X и -E. Спасибо Ryan
    DeShone за сообщение.
  - Исправлен отчёт General Activity о запросах чтения/записи. Спасибо
    alexandre-sk5 за сообщение.
  - Добавлено отладочное сообщение, когда параллельный режим не используется.
  - Исправлена логика elsif при определении размера файла и лишний пробел,
    добавлявшийся в команду journalctl с параметром --since. Спасибо Pawel
    Koziol за патч.
  - Исправлена ошибка "not a valid file descriptor". Спасибо Pawel Koziol за сообщение.
  - Исправлен инкрементальный режим с файлами RDS. Спасибо Ildefonso Camargo,
    nodje и John Walsh за сообщение.
  - Добавлен параметр -Q | --query-numbering для нумерации запросов в выводе с
    --dump-all-queries или --normalized-only. Это облегчает извлечение
    многострочных запросов из файла вывода внешним сценарием. Спасибо Shantanu
    Oak за запрос функции.
  - Исправлен разбор журналов cloudsql json при включённом
    log_min_duration_statement. Спасибо alexandre-sk5 за сообщение.
  - Исправлен неверный ключ хеша пользователей в журнале RDS. Спасибо vosmax
    за сообщение.
  - Исправлена ошибка изменения несоздаваемого значения массива. Спасибо John
    Walsh и Mark Fletcher за сообщение.
  - Добавлена поддержка формата журнала GCP CloudSQL json; формат журнала (-f) —
    jsonlog. Спасибо Thomas Poindessous за запрос функции.
  - Добавлен параметр --dump-all-queries: pgBadger выводит все запросы в текстовый
    файл без создания отчёта — полный список операторов из журнала PostgreSQL.
    Параметры привязки вставляются на соответствующие позиции. Уникальные
    запросы не сортируются, записываются все запросы. Спасибо Shantanu Oak за
    запрос функции.
  - Добавлена документация параметра --dump-all-queries.
  - Исправлен отчёт vacuum для новой версии PG. Спасибо Alexey Timanovsky за сообщение.
  - Добавлен параметр командной строки --no-process-info, запрещающий менять
    заголовок процесса для идентификации pgbadger, поскольку некоторые системы
    этого не допускают. Спасибо Akshay2378 за сообщение.
  - Добавлен параметр командной строки --tempdir для выбора каталога временных
    файлов. Значение по умолчанию:
        File::Spec->tmpdir() || '/tmp'
    Это полезно в системах, где запись в /tmp запрещена. Спасибо Akshay2378 за сообщение.
  - Исправлены неподдерживаемые имена сжатых файлов с пробелами и/или скобками.
    Спасибо Alexey Timanovsky за сообщение.
  - Добавлен параметр командной строки --ssh-port для задания порта SSH,
    отличного от 22. В записи URI порт SSH указывается в форме:
        ssh://192.168.1.100:2222//var/log/postgresql-11.log
    Спасибо Augusto Murri за запрос функции.

## v11.2 · 2020-03-11 {#v11-2}

Этот выпуск pgBadger исправляет несколько проблем, о которых пользователи
сообщили за предыдущие шесть месяцев. Он также добавляет новые возможности:

  * Добавлены поддержка и автоматическое распознавание формата журнала AWS Redshift.
  * Добавлена поддержка нового формата журнала pgbouncer 1.11.
  * Добавлена обработка форматов сжатия zstd и lz4.
  * В инкрементальном режиме построение статистики полностью отделено от
    построения HTML-отчёта без необходимости читать файл журнала. Например,
    pgbadger можно запускать каждый час следующим образом:
    
        pgbadger -I -O "/out-dir/data" --noreport /var/log/postgresql*.log
    
    Команда только создаёт двоичные файлы данных в "/out-dir/data". Затем,
    например, каждую ночь можно создавать отчёты за прошедший день в отдельном
    каталоге `/out-dir/reports`:
    
        pgbadger -I -l "/out-dir/data/LAST_PARSED" -H "/out-dir/reports" /out-dir/data/2020/02/19/*.bin
    
    Для этого нужно указать путь к сведениям о последнем разборе, путь для
    записи HTML-отчётов и файл двоичных данных за день.

Также добавлены новые параметры командной строки:

  * Добавлен параметр командной строки --explain-url для переопределения URL
    графического инструмента explain. URL по умолчанию:
    
        http://explain.depesz.com/?is_public=0&is_anon=0&plan=
    
    Это позволяет использовать локальную установку PgExplain или другой
    инструмент. pgBadger добавит экранированный план в текстовом формате в
    конец URL.

  * Добавлен параметр --no-week, запрещающий pgbadger строить еженедельные
    отчёты в инкрементальном режиме. Он полезен, если это занимает слишком
    много времени и ресурсов.

  * Добавлен параметр командной строки --command для задания команды, которую
    pgBadger выполнит, чтобы получить записи журнала через стандартный ввод.
    pgBadger откроет канал к команде и разберёт созданные ею записи журнала.
    Например:
    
      pgbadger -f stderr --command 'cat /var/log/postgresql.log'
    
    Это равнозначно запуску pgbadger с непосредственной передачей файла журнала
    в качестве аргумента. Параметр полезен, если файл журнала требуется менять
    на лету либо записи извлекаются программой или создаются из базы данных.
    Например:
    
      pgbadger -f csv --command 'psql dbname -c "COPY jrn_log TO STDOUT (FORMAT CSV)"'
    
  * Добавлен параметр командной строки --noexplain, запрещающий pgBadger
    разбирать и отображать план explain, записанный в журнал расширением
    auto_explain. Он полезен для PostgreSQL версии ниже 9.0, где наличие плана
    explain в журнале приводит к повреждённым отчётам pgBadger.

Обратная совместимость:

  - По умолчанию pgBadger усекает запросы до 100000 символов. Это условное
    значение можно изменить параметром --maxlength. Ранее запросы не усекались,
    что могло приводить к чрезмерному расходу ресурсов. Ограничение размера по
    умолчанию безопаснее и в большинстве случаев не приводит к усечению. Однако
    запросы длиннее 25000 символов форматироваться не будут.

Полный список изменений и благодарностей:

  - Исправлен неработавший параметр --exclude-client. Спасибо John Walsh за сообщение.
  - Добавлен регрессионный тест разбора журнала RDS и --exclude-client.
  - Исправлен индикатор выполнения для журнала pgbouncer. Для журналов pgbouncer
    подпись "queries" заменена на "stats".
  - Добавлен параметр командной строки --explain-url для переопределения URL
    графического инструмента explain. Спасибо Christophe Courtois за запрос функции.
  - Добавлена поддержка нового формата журнала pgbouncer 1.11. Спасибо Dan
    Aksenov за сообщение.
  - Добавлена обработка форматов сжатия zstd и lz4. Спасибо Adrien Nayrat за патч.
  - Добавлены поддержка и автоматическое распознавание формата журнала AWS
    Redshift. Спасибо Bhuvanesh за запрос функции.
  - Обновлена документация формата журнала Redshift.
  - Добавлен параметр --no-week, запрещающий pgbadger строить еженедельные
    отчёты в инкрементальном режиме. Спасибо cleverKermit17 за запрос функции.
  - Исправлено сопоставление пути файла с шаблоном, нарушавшее работу pgBadger
    в Windows.
  - Исправлена задача #554 о кириллице и других кодированных параметрах
    операторов, которые неверно отображались в HTML-отчёте даже с пользовательской
    кодировкой. Регрессия появилась после исправления известной ошибки Perl
    "Wide character in print". Тот патч отменён, а для возврата такого поведения
    добавлен параметр --wide-char. Добавьте его в команду pgbadger, если видите
    сообщение "Wide character in print". Добавлен регрессионный тест с кириллицей
    и французской кодировкой. Спасибо 4815162342lost и yethee за сообщение.
  - В документации указано, что lc_messages = 'en_US.UTF-8' также допустимо.
    Спасибо nodje за сообщение.
  - Обновлена документация --maxlength: размер усечения по умолчанию теперь
    равен 100000 вместо отсутствия усечения. Спасибо nodje за сообщение.
  - Исправлен расчёт срока хранения на границе года. Спасибо Fabio Pereira за патч.
  - Исправлен разбор формата журнала rds. Спасибо Kadaffy Talavera за сообщение.
  - При отсутствии новых записей журнала в инкрементальном режиме пустой
    индексный файл больше не создаётся. Спасибо Kadaffy Talavera за сообщение.
  - Обновлена устаревшая документация. Спасибо Eric Hanson за патч.
  - Параметр командной строки исправлен с -no-explain на -noexplain. Спасибо
    Indrek Toom за патч.
  - Если totalsize определить невозможно, используется размер файла по умолчанию.
    Спасибо Adrien Nayrat за патч.
  - Исправлены даты в примерах. Спасибо Greg Clough за патч.
  - В оставшемся тесте используется регулярное выражение расширений сжатых
    файлов, а расширение .bin выделено в отдельное условие.
  - Добавлена обработка форматов сжатия zstd и lz4. Спасибо Adrien Nayrat за патч.
  - Исправлен оставшийся вызов SIGUSR2 в Windows. Спасибо inrap за сообщение.
  - Исправлен индикатор выполнения для файла журнала неопределённого размера.
  - Добавлен параметр командной строки --command для задания команды, которую
    pgBadger выполнит, чтобы получить записи журнала через стандартный ввод.
    Спасибо Justin Pryzby за запрос функции.
  - Добавлен параметр командной строки --noexplain, запрещающий pgBadger разбирать
    и отображать план explain, записанный в журнал расширением auto_explain.
    Это полезно для PostgreSQL версии ниже 9.0, где наличие плана explain в
    журнале приводит к повреждённым отчётам pgBadger. Спасибо Massimo Sala за
    запрос функции.
  - Исправлен разбор журнала RDS, когда префикс задан в командной строке.
    Спасибо Bing Zhao за сообщение.
  - Исправлен инкрементальный режим с форматом журнала rds. Спасибо Bing Zhao
    за сообщение.
  - Исправлен ещё один возможный сбой разбора журнала rds. Спасибо James van
    Lommel и Simon Dobner за сообщение.
  - Исправлена классификация операторов и добавлен регрессионный тест. Спасибо
    alexanderlaw за сообщение.
  - Исправлена анонимизация одиночных символов в предложении IN. Спасибо Massimo
    Sala за сообщение.
  - Исправлен разбор строк журнала RDS без сведений о клиенте/пользователе/БД.
    Спасибо Konrad за сообщение.

## v11.1 · 2019-09-16 {#v11-1}

Этот выпуск pgBadger исправляет несколько проблем, о которых пользователи
сообщили за три месяца. Он также добавляет новые возможности и отчёты:

  - Добавлен отчёт о первых N запросах, занимающих больше всего времени на
    этапе prepare или parse.
  - Добавлен отчёт о первых N запросах, занимающих больше всего времени на
    этапе bind.
  - Добавлен отчёт о длительности этапов prepare/bind/execute запросов. Он
    отображается на новой вкладке "Duration" отчёта Global Stats. Пример:
        Total query duration: 6m16s
        Prepare/parse total duration: 45s564ms
        Bind total duration: 4m46s
        Execute total duration: 44s71m
    Также исправлен прежний показатель "Total query duration", который
    отражал только суммарную длительность execute.
  - Добавлена автоматически распознаваемая поддержка форматов журналов RDS и
    CloudWatch. Если pgbadger не может определить формат автоматически,
    используйте -f rds.
  - Добавлен параметр конфигурации --month-report для построения ежемесячных
    инкрементальных отчётов.
  - Восстановлена поддержка операционной системы Windows.

Также исправлены ошибки и улучшены возможности.

  - В README.md добавлена автоматически создаваемая Markdown-документация с
    помощью pod2markdown. Если команда отсутствует, файл просто не создаётся.
    Спасибо Derek Yang за патч.
  - Действие WITH преобразуется в CTE; исправлена регрессия прошлого выпуска.
  - Исправлена поддержка операционной системы Windows.
  - Добавлена поддержка форматов журналов RDS и CloudWatch; если pgbadger не
    определяет формат автоматически, используйте -f rds. Спасибо peruuparkar
    за запрос функции.
  - Исправлен параметр -f | --format: при сбое автоматического определения
    формата он применялся не ко всем файлам из списка параметров, а брался из
    первого разобранного файла. Спасибо Levente Birta за сообщение.
  - В исходном файле документации ссылка на pgBadger v7.x заменена на v11.
    Спасибо Will Buckner за патч.
  - Ограничена высота отображения самых частых запросов, чтобы огромные запросы
    не занимали всю страницу. Спасибо ilias ilisepe1 за патч.
  - Исправлен выход запросов и подробностей за границы в Slowest individual queries.
  - Исправлены URI SSH для файлов, каталогов и подстановочных знаков. Спасибо
    tbussmann за патч.
  - Исправлены примеры URI в документации. Спасибо tbussmann за патч.
  - При использовании --rebuild скрывается сообщение о файле вывода по умолчанию.
  - В вывод usage() добавлена дополнительная новая строка, чтобы документация
    POD не повреждалась при сборке.
  - В документацию повторно добавлено описание --exclude-client. Спасибо
    Christoph Berg за сообщение.

## v11.0 · 2019-06-25 {#v11-0}

Этот выпуск pgBadger добавляет несколько важных возможностей и исправляет
проблемы, о которых пользователи сообщили за предыдущие четыре месяца.
Новые возможности:

  - Запросы, относящиеся к курсорам (DECLARE,CLOSE,FETCH,MOVE), объединены в
    новый тип запросов CURSOR.
  - Добавлен список запросов bind, создающих больше всего временных файлов.
    Требуется включить log_connection и log_disconnection.
  - Добавлен параметр командной строки --exclude-client для исключения записей
    журнала с указанным IP-адресом клиента. Его можно указывать несколько раз.
  - В фильтрах --begin и --end разрешено указывать только время.
  - Добавлен параметр -H, --html-dir для выбора отдельного пути записи HTML-
    отчётов в инкрементальном режиме. Двоичные файлы остаются в каталоге,
    заданном параметром -O, --outdir.
  - Добавлен параметр -E | --explode для разделения основного отчёта на один
    отчёт для каждой базы данных. Общие сведения, не относящиеся к конкретной
    базе, добавляются в отчёт базы postgres.
  - В инкрементальный режим добавлены отчёты по отдельным базам данных. Для
    каждой базы создаётся подкаталог со своими инкрементальными отчётами.
  - Добавлена поддержка формата PostgreSQL logplex от Heroku. Журнал можно
    разобрать командой:

      heroku logs -p postgres | pgbadger -f logplex -o heroku.html -

  - Если запрос превышает 10 КБ, сначала все постоянные строковые параметры
    ограничиваются 30 символами, а затем запрос усекается до 10 КБ. Это не
    позволяет pgbadger тратить чрезмерное время или зависать на очень длинных
    запросах, например при вставке bytea. Предел 10 КБ настраивается параметром
    командной строки --maxlength. Запрос нормализуется или усекается до maxlength
    лишь после этой первой попытки уменьшить размер.

Новый выпуск нарушает обратную совместимость со старыми двоичными файлами и
файлами JSON. Поэтому инкрементальный режим не сможет читать старые двоичные
файлы. Если вы хотите обновить pgBadger и сохранить старые отчёты, выполняйте
обновление в начале новой недели, иначе еженедельный отчёт будет повреждён.
pgBadger выведет предупреждение и пропустит старый двоичный файл.

Также исправлены ошибки и улучшены возможности.

  - Добавлено предупреждение о версии, несовместимый двоичный файл пропускается.
  - Форматировщик кода обновлён до pgFormatter 4.0.
  - Исправлено зависание pgbadger в Windows. Спасибо JMLessard за сообщение.
  - Сценарий tools/pgbadger_tools обновлён для совместимости с новым двоичным
    форматом файлов pgBadger v11.
  - Добавлен список запросов bind, создающих больше всего временных файлов.
    Сбор возможен, только если в postgresql.conf включены log_connection и
    log_disconnection. Спасибо Ildefonso Camargo за запрос функции.
  - Исправлено автоматическое определение часового пояса. Спасибо massimosala
    за исправление.
  - Удалены оставшиеся диаграммы при использовании --nograph.
  - При использовании --normalized-only принудительно применяется расширение .txt.
  - Исправлен отчёт auto vacuum/analyze для формата logplex. Спасибо Konrad
    zichul за сообщение.
  - Исправлено использование индикатора выполнения в Windows. Спасибо JMLessard
    за сообщение.
  - Для хранения времени журнала используется `$prefix_vars{'t_time'}`. Спасибо
    Luca Ferrari за патч.
  - Из справки и документации вызовов pgbadger удалена команда perl. Спасибо
    Luca Ferrari за патч.
  - В begin и end можно использовать время без даты. Спасибо Luca Ferrari за патч.
  - В README внесены небольшие орфографические и грамматические исправления.
    Спасибо ofni yratilim за патч.
  - Исправлены удалённые пути с SSH. Спасибо Luca Ferrari за патч.
  - Регрессионный тест обновлён для новой структуры, появившейся с отчётами по БД.
  - Исправлены дробные секунды во всех параметрах begin и end. Спасибо Luca
    Ferrari за патч.
  - Исправлен URL документации. Спасибо Kara Mansel за сообщение.
  - Исправлен разбор auto_explain. Добавлены сведения о том, что параметр -U
    можно указывать несколько раз. Спасибо Douglas J Hunley за сообщение.
  - Внесено множество улучшений в HTML/CSS отчётов. Спасибо Pierre Giraud за патчи.
  - Обновлён файл ресурсов.
  - Добавлен регрессионный тест формата logplex.
  - Добавлена поддержка формата PostgreSQL logplex от Heroku. Такие журналы
    можно разбирать следующим образом:
        heroku logs -p postgres | pgbadger -f logplex -o heroku.html -
    или, если вывод уже сохранён в файл:
        pgbadger heroku.log
    Формат logplex определяется автоматически, как и другие поддерживаемые
    форматы. pgBadger понимает следующий стандартный log_line_prefix:
        database = %d connection_source = %r sql_error_code = %e
    или сокращённый вариант:
        sql_error_code = %e
    Сообщите о других стандартных log_line_prefix. Префикс всегда можно задать
    параметром pgbadger -p | --prefix:
        pgbadger --p 'base = %d source = %r sql_state = %e' heroku.log
    например. Спасибо Anthony Sosso за запрос функции.
  - Исправлена справка pgbadger по использованию URI.
  - Исправлена подстановка в URI SSH, нарушенная предыдущим патчем. Спасибо
    Tobias Bussmann за сообщение.
  - Разрешены URI с пробелом в пути к файлу журнала. Спасибо Tobias Bussmann
    за сообщение.
  - Исправлены примеры URI в документации. Спасибо Tobias Bussmann за патч.
  - t/02_basics.t больше не завершается ошибкой, если тест syslog длится более
    10 секунд. Спасибо Christoph Berg за патч.

---

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

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