跳转到主要内容

pgBadger 11.x 版本记录

pgBadger 11.x 系列的完整上游版本记录

v11.8 · 2022-04-08

本版本修复了过去三个月用户报告的问题,尤其包括增量模式中检测新日志记录的两项修复:

  • 修复 log_line_prefix 使用毫秒时间戳(%m)或纪元时间戳(%n)时的新记录检测。
  • 修复未使用多进程时本地文件的新记录检测。

完整变更与致谢如下:

  • 全面审查并简化日志文件变化的检测。
  • 在事件报告中加入 could not (receive|send) data (from|to) client 消息。感谢 Adrien Nayrat 报告。
  • 修复预备查询名称包含 : 时的解析问题。感谢 aleszeleny 报告。
  • 修复使用毫秒(%m)或纪元(%n)时间戳时的新记录检测。感谢 aleszeleny 报告。
  • 修复未使用多进程时本地文件的新记录检测。感谢 aleszeleny 报告。
  • 修复通过 SSH 读取远程文件时的新记录检测。感谢 Luca Ferrari 报告。
  • 修复“按用户统计连接”报告中用户名混入无关内容的问题。感谢 caseyandgina 报告。
  • 修复使用 URI 时 SSH 命令缺少连接选项的问题。感谢 Luca Ferrari 报告。
  • 处理查询 ID 占位符 %Q。感谢 Adrien Nayrat 提供补丁。
  • 修正错误消息中的拼写错误。感谢 Luca Ferrari 提供补丁。
  • 在事件报告中加入 server process was terminated by signal 消息。感谢 Avi Vallarapu 报告。
  • 文档:修正每周增量命令中的文件名。感谢 Theophile Helleboid 提供补丁。
  • t/04_advanced.t:修复 syslog 测试。感谢 Christoph Berg 提供补丁。

v11.7 · 2022-01-23

本版本修复了过去五个月用户报告的问题,并作出以下改进:

  • 添加 --no-progressbar 选项,隐藏进度条,同时保留其他输出。
  • 添加 --day-report 选项,重建指定日期的 HTML 报告。它与 --month-report 类似,但仅处理一天;需要增量输出目录及全部必要的二进制数据文件,日期格式为 YYYY-MM-DD。
  • 改善 Heroku logplex 和 Cloud SQL JSON 日志的解析。

完整变更与致谢如下:

  • 更新贡献指南和 Makefile.PL,改善一致性、说明清晰度与依赖管理。感谢 diffuse 提供补丁。
  • 修复二进制模式下最后解析状态文件(--last-parsed)的使用。感谢 wibrt 报告。
  • 为 --last-parsed 添加回归测试,并修复仅报告临时文件时的回归测试。
  • 修正按主机统计会话图表的标题。感谢 Norbert Bede 报告。
  • 修复同时启用 --iso-week-number 和 --incremental 时生成周报的周编号。感谢 hansgv 报告。
  • 添加 --no-progressbar 选项,隐藏进度条,同时保留其他输出。感谢 seidlmic 提出需求。
  • 防止调试模式对多行 jsonlog 打印过多格式未知的日志行。
  • 修复单行 Cloud SQL JSON 日志的解析。感谢 Thomas Leclaire 报告。
  • 修复只启用 log_temp_files 时的临时文件汇总。
  • 即使使用 -q 或 --quiet,指定 -v 后仍打印调试消息。
  • 修复 jsonlog 文件的自动识别。
  • 修复 Cloud SQL 日志文件的解析。感谢 Luc Lamarle 报告。
  • 修复 parse_json_input 中的 PID 提取。感谢 Francois Scala 提供补丁。
  • 添加 --day-report 选项,接受 YYYY-MM-DD 日期并重建该日的 HTML 报告。感谢 Thomas Leclaire 提出需求。
  • 修复进度条中的查询计数。感谢 Guillaume Lelarge 报告。
  • 修复耗时最高的 bind 和 prepare 报告存储了不完整查询的问题。
  • 修复对象标识符的归一化,避免某些情况下把其中数字替换成 ?。
  • 修复以注释开头的归一化查询未格式化的问题。
  • 修复使用 --dbname 时 stderr 格式的多行处理。感谢 Guillaume Lelarge 报告。
  • 修复增量模式使用 --dbname 时未生成报告的问题。感谢 Dudley Perkins 报告。
  • 二进制文件不兼容时不再终止程序,而是继续下一个文件。感谢 Thomas Leclaire 建议。
  • 修复解析器对 Heroku logplex 格式变化的处理。感谢 François Pietka 报告。

v11.6 · 2021-09-04

本版本修复了过去七个月用户报告的问题,并作出以下改进:

  • 检测 PostgreSQL 14 新增的 log_line_prefix 查询 ID。感谢 Florent Jardin 报告。
  • 添加覆盖数据库排除和按数据库拆分报告的高级回归测试。感谢 MigOps Inc 提供补丁。
  • 使用 --explode 时,以多进程生成报告。感谢 MigOps Inc 提供补丁,以及 Thomas Leclaire 提出需求。
  • 添加 --iso-week-number:增量日历每周从周一开始,遵循 ISO 8601,周编号范围为 01 至 53,第 1 周是新年中至少含 4 天的第一周。感谢 Alex Muntada 提出需求。
  • 添加 --keep-comments 选项,保留归一化查询中的注释,以区分归一化结果相同的查询。感谢 Stefan Corneliu Petrea 提出需求。
  • 跳过第三方软件写入 PostgreSQL 日志的 INFO 行。感谢 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 报告。
  • 改善查询 ID 的检测,支持负值,并从 csvlog 中读取。
  • 修复增量模式总是再次解析已经处理过的最后一个文件的问题。感谢 Thomas Leclaire 报告。
  • 更新 syslog 格式的正则表达式,支持会话行标记只含一个整数的情况,而不要求两个以连字符分隔的整数。感谢 Timothy Alexander 提供补丁。
  • 修复 JSON 日志使用 --exclude-db 后仍生成被排除数据库报告的问题。感谢 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 与拆分选项 -E 时数据库参数被部分忽略的问题。感谢 lrevest 报告。
  • 更新 JavaScript 资源。
  • 修复缩小屏幕后切换为折叠菜单前的菜单显示。感谢 Guillaume Lelarge 报告。
  • 修复未正确支持跨多行绑定参数值的问题。
  • 将上一补丁对应的修复同步到 pgFormatter。
  • 修复 pgFormatter 代码中替换迭代器使用未初始化值的另一处问题。感谢 Christophe Courtois 报告。
  • 修复查询归一化。感谢 Jeffrey Beale 提供补丁。
  • 使用 --dump-all-queries 时,确保每条语句都以分号结尾。感谢 Christian 报告。
  • 修正拼写,并修复多个日志文件的行结束符类型初始化。
  • 自动检测行结束符类型,修复 Windows 双字节行结束符导致的 LAST_PARSED 偏移问题。感谢 Bertrand Bourgier 提供补丁。
  • 修复 Windows 不支持 strftime %u 时的 get_day_of_week() 移植问题。感谢 Bertrand Bourgier 提供补丁。
  • 修复 Windows 调用 Perl 工具 pl2bat.bat 时,因 pgBadger 读取 __DATA__ 的方式导致生成损坏的 pgbadger.bat。感谢 Bertrand Bourgier 提供补丁。
  • 修复起止时间过滤,并添加时间戳过滤的回归测试。感谢 Alexis Lahouze 和 plmayekar 报告。
  • 修复 pgFormatter 更新引入的模式匹配使用未初始化值问题。感谢 arlt 报告。

v11.5 · 2021-02-18

本版本修复了过去三个月用户报告的问题,并作出以下改进:

  • 添加会话闲置时间报告,计算方式为: “(total sessions time - total queries time) / number of sessions” 要得到可靠结果,需启用 log_connections 与 log_disconnections,并设置 log_min_duration_statement = 0 以记录全部查询。该报告可帮助了解闲置时间,并评估事务模式连接池的价值。报告位于“全局统计”的“会话”标签页,以及“总体活动”的“会话”标签页(按小时统计)。
  • 添加数值匿名化,将数字替换为四位随机数。
  • 将 SQL 格式化器更新为基于 pgFormatter 5.0 的版本。

完整变更与致谢如下:

  • 修复 Cloud SQL 多行语句的解析。感谢 Jon Young 报告。
  • 为匿名化添加回归测试。
  • 修复 maxlength 截断导致匿名化失效的问题。感谢 artl 报告。
  • 在耗时最高的 prepare 和 bind 报告中匿名化参数。感谢 arlt 报告。
  • 支持 logplex 日志前缀中的微秒。感谢 Ross Gardiner 报告。
  • 添加会话闲置时间报告。感谢 Guillaume Lelarge 提出需求。
  • 完成支持 jsonlog 多行内容的补丁。

v11.4 · 2020-11-24

本版本修复了过去四个月用户报告的问题,改善 PostgreSQL 13 日志信息的支持,并增加以下功能:

  • 在“按表统计 vacuum”报告中添加完整的 autovacuum 信息:缓冲区使用(命中、未命中、弄脏)、因页被固定而跳过、跳过的冻结页,以及 WAL 使用(记录数、全页镜像、字节数)。“各表移除的元组”报告加入剩余元组、尚不能移除的元组和剩余页数。这些信息只在“表”标签页提供。
  • 添加检查点启动原因的分布报告。
  • 从连接授权日志中检测应用名称。

完整变更与致谢如下:

  • 修正错误消息中的拼写错误。感谢 Vidar Tyldum 提供补丁。
  • 修复 Windows 上的 can not load incompatible binary data 错误。感谢 Eric Brawner 报告。
  • 修正用法说明和文档中 --html-outdir 的拼写错误。感谢 Vidar Tyldum 提供补丁。
  • 修复 jsonlog/Cloud SQL 格式的自动识别。感谢 Jon Young 报告。
  • 修复 PostgreSQL v13 的 CSV 日志解析。感谢 Kanwei Li 报告,以及 Kaarel Moppel 提供补丁。
  • 修复产生最多临时文件的查询报告的排序。感谢 Sebastien Lardiere 报告。
  • 在调试模式中显示 pgBadger 版本。

v11.3 · 2020-07-26

本版本修复了过去四个月用户报告的问题,并增加了以下功能和命令行选项:

  • 自动检测 UTC 时间戳,避免向图表再次应用时区偏移。
  • 支持 GCP Cloud SQL JSON 日志格式。
  • 添加 --dump-all-queries,将全部查询导出到文本文件,不生成报告,只列出 PostgreSQL 日志中的完整语句列表。绑定参数会填入查询中相应位置。
  • 添加 -Q | --query-numbering,在使用 --dump-all-queries 或 --normalized-only 时为输出查询编号。
  • 添加 --tempdir,指定临时文件目录,适合不允许写入 /tmp 的系统。
  • 添加 --ssh-port,指定非默认 22 的 SSH 端口。URI 写法也支持指定端口,例如: ssh://192.168.1.100:2222//var/log/postgresql-11.log

完整变更与致谢如下:

  • 修复 jsonlog/Cloud SQL 格式的增量报告。感谢 Ryan DeShone 报告。
  • 自动检测 UTC 时间戳,避免应用自动检测的时区偏移;UTC 时间由 JavaScript 转换为本地时区。感谢 Brett Stauner 报告。
  • 修复 journalctl 日志从第二次运行起增量解析失效的问题。感谢 Paweł Koziol 提供补丁。
  • 修复同时使用 -X 与 -E 时的资源文件路径。感谢 Ryan DeShone 报告。
  • 修复“总体活动”报告的读写查询。感谢 alexandre-sk5 报告。
  • 未使用并行模式时添加调试消息。
  • 修复文件大小检测中的 elsif 逻辑,以及添加 --since 后 journalctl 命令多余的空格。感谢 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 提出需求。
  • 修复启用 log_min_duration_statement 时 Cloud SQL JSON 日志的解析。感谢 alexandre-sk5 报告。
  • 修复 RDS 日志中用户的错误哈希键。感谢 vosmax 报告。
  • 修复修改不可创建数组值导致的错误。感谢 John Walsh 和 Mark Fletcher 报告。
  • 支持 GCP Cloud SQL JSON 日志,日志格式(-f)为 jsonlog。感谢 Thomas Poindessous 提出需求。
  • 添加 --dump-all-queries,将全部查询导出到文本文件,不生成报告;绑定参数填入相应位置,不对查询去重或排序,记录全部查询。感谢 Shantanu Oak 提出需求。
  • 添加 --dump-all-queries 文档。
  • 修复新版 PostgreSQL 的 vacuum 报告。感谢 Alexey Timanovsky 报告。
  • 添加 --no-process-info,不再修改进程标题以标识 pgBadger 进程,适用于不支持该操作的系统。感谢 Akshay2378 报告。
  • 添加 --tempdir,指定临时文件目录,默认: File::Spec->tmpdir() || ‘/tmp’ 适合不允许写入 /tmp 的系统。感谢 Akshay2378 报告。
  • 修复压缩文件名含空格或方括号时不受支持的问题。感谢 Alexey Timanovsky 报告。
  • 添加 --ssh-port,指定非默认 22 的 SSH 端口。URI 写法也支持指定端口,例如: ssh://192.168.1.100:2222//var/log/postgresql-11.log 感谢 Augusto Murri 提出需求。

v11.2 · 2020-03-11

本版本修复了过去六个月用户报告的问题,并增加以下功能:

  • 支持并自动识别 AWS Redshift 日志格式。

  • 支持 PgBouncer 1.11 的新日志格式。

  • 支持 zstd 与 lz4 压缩格式。

  • 增量模式下可完全分离统计数据生成与 HTML 报告生成,生成报告时无需重新读取日志。例如,可以每小时运行:

    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。当时的默认 URL 为:

    http://explain.depesz.com/?is_public=0&is_anon=0&plan=
    

    可用于本地安装的 PgExplain 或其他工具。pgBadger 将转义后的文本格式执行计划追加到 URL 末尾。

  • 添加 --no-week,增量模式下不生成周报,适合周报消耗过多时间和资源的情况。

  • 添加 --command,指定获取日志记录的命令。pgBadger 打开通向该命令的管道,并解析其输出的日志,例如:

    pgbadger -f stderr –command ‘cat /var/log/postgresql.log’

    这与直接将日志文件作为参数传入等效。需要实时改写日志、从程序提取日志或从数据库生成日志时,此选项尤为有用。例如:

    pgbadger -f csv –command ‘psql dbname -c “COPY jrn_log TO STDOUT (FORMAT CSV)”’

  • 添加 --noexplain,不解析或报告 auto_explain 扩展写入日志的执行计划。在 PostgreSQL < 9.0 中,日志包含执行计划时 pgBadger 会生成损坏的报告,此选项可避免该问题。

向后兼容性:

  • 默认将查询截断至 100000 字符;可通过 --maxlength 调整这个人为设定的值。此前默认不截断,可能造成过量资源消耗。限定默认长度更安全,且多数查询不会触及此限制。不过,超过 25000 字符的查询不会进行格式化。

完整变更与致谢如下:

  • 修复 --exclude-client 不生效的问题。感谢 John Walsh 报告。
  • 添加 RDS 日志解析与 --exclude-client 的回归测试。
  • 修复 PgBouncer 日志的进度条,将“查询”标签改为“统计”。
  • 添加 --explain-url,覆盖图形化执行计划工具的 URL。感谢 Christophe Courtois 提出需求。
  • 支持 PgBouncer 1.11 新日志格式。感谢 Dan Aksenov 报告。
  • 支持 zstd 和 lz4 压缩格式。感谢 Adrien Nayrat 提供补丁。
  • 支持并自动识别 AWS Redshift 日志格式。感谢 Bhuvanesh 提出需求。
  • 更新 Redshift 日志格式文档。
  • 添加 --no-week,增量模式下不生成周报。感谢 cleverKermit17 提出需求。
  • 修复 Windows 上文件路径模式匹配导致 pgBadger 失败的问题。
  • 修复 #554:即使指定字符集,西里尔字符及其他编码的语句参数也未在 HTML 中正确显示。该回归由修复 Perl 的 Wide character in print 消息引入;现已撤销原补丁,添加 --wide-char 以恢复所需行为。遇到此消息时请加入该选项。添加西里尔字符和法语编码的回归测试。感谢 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 提供补丁。
  • 修复 Windows 上剩余的 SIGUSR2 调用。感谢 inrap 报告。
  • 修复大小不确定的日志文件的进度条。
  • 添加 --command,执行命令并从其标准输出获取日志记录。感谢 Justin Pryzby 提出需求。
  • 添加 --noexplain,不解析或报告 auto_explain 写入日志的执行计划,以避免 PostgreSQL < 9.0 中日志包含执行计划时报告损坏。感谢 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

本版本修复了过去三个月用户报告的问题,并增加以下功能和报告:

  • 添加 prepare 或 parse 阶段耗时最高的前 N 条查询报告。
  • 添加 bind 阶段耗时最高的前 N 条查询报告。
  • 添加 prepare/bind/execute 各阶段耗时报告,位于“全局统计”新增的“耗时”标签页。例如: Total query duration: 6m16s Prepare/parse total duration: 45s564ms Bind total duration: 4m46s Execute total duration: 44s71m 这也修复了原“查询总耗时”只报告 execute 总耗时的问题。
  • 支持并自动识别 RDS 与 CloudWatch 日志格式;无法自动识别时可使用 -f rds。
  • 添加 --month-report,生成月度增量报告。
  • 恢复 Windows 操作系统支持。

其他缺陷修复与功能改进:

  • 使用 pod2markdown 自动生成 README.md;命令不存在时不生成该文件。感谢 Derek Yang 提供补丁。
  • 将 WITH 语句归类为 CTE,修复上一版本引入的回归。
  • 修复 Windows 操作系统支持。
  • 支持 RDS 和 CloudWatch 日志;无法自动识别时使用 -f rds。感谢 peruuparkar 提出需求。
  • 修复 -f | --format 未应用于全部参数文件的问题:当自动识别失败时,曾错误沿用第一个文件的格式。感谢 Levente Birta 报告。
  • 更新源码文档,将 pgBadger v7.x 引用改为 v11。感谢 Will Buckner 提供补丁。
  • 限制高频/耗时查询的显示高度,避免巨大查询占满页面。感谢 ilias ilisepe1 提供补丁。
  • 修复“最慢的单次查询”中查询与详细信息溢出的问题。
  • 修复文件、目录与通配符的 SSH URI。感谢 tbussmann 提供补丁。
  • 修正文档中的 URI 示例。感谢 tbussmann 提供补丁。
  • 使用 --rebuild 时隐藏默认输出文件的提示。
  • 在 usage() 输出中添加额外换行,避免构建时破坏 POD 文档。
  • 在文档中恢复 --exclude-client 的说明。感谢 Christoph Berg 报告。

v11.0 · 2019-06-25

本版本加入重要新功能,并修复了过去四个月用户报告的问题。新增功能:

  • 将游标相关查询(DECLARE、CLOSE、FETCH、MOVE)归入新查询类型 CURSOR。

  • 添加生成最多临时文件的 bind 查询报告;需要启用连接与断开连接日志。

  • 添加 --exclude-client,排除指定客户端 IP 的日志记录,可多次指定。

  • 允许 --begin 与 --end 只使用时间。

  • 添加 -H, --html-dir,在增量模式下指定独立的 HTML 输出路径;二进制文件仍保存在 -O, --outdir 指定的目录。

  • 添加 -E | --explode,将主报告拆分为每个数据库一份;与数据库无关的全局信息放入 postgres 数据库报告。

  • 增量模式支持按数据库报告,每个数据库有独立子目录与增量报告。

  • 支持 Heroku PostgreSQL 的 logplex 格式,可这样解析:

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

  • 查询超过 10Kb 时,先将所有常量字符串参数限制为 30 字符,再将查询截断为 10Kb,避免插入 bytea 等超长查询造成耗时过多或挂起。10Kb 限制可通过 --maxlength 控制;先尝试缩短参数,再归一化查询或按 maxlength 截断。

此版本与旧二进制或 JSON 文件不兼容,增量模式也无法读取旧二进制文件。若升级后仍需保留历史报告,请在新的一周开始时升级,否则周报会损坏。pgBadger 将打印警告并跳过旧二进制文件。

其他缺陷修复与功能改进:

  • 加入版本警告,并跳过不兼容的二进制文件。
  • 将代码格式化器更新至 pgFormatter 4.0。
  • 修复 pgBadger 在 Windows 上挂起的问题。感谢 JMLessard 报告。
  • 更新 tools/pgbadger_tools,兼容 v11 的新二进制文件格式。
  • 添加生成最多临时文件的 bind 查询报告;只有在 postgresql.conf 中启用连接与断开连接日志时才能收集。感谢 Ildefonso Camargo 提出需求。
  • 修复时区自动检测。感谢 massimosala 修复。
  • 使用 --nograph 时移除剩余图表。
  • 使用 --normalized-only 时强制使用 .txt 扩展名。
  • 修复 logplex 格式的 autovacuum/autoanalyze 报告。感谢 Konrad zichul 报告。
  • 修复 Windows 的进度条。感谢 JMLessard 报告。
  • 使用 $prefix_vars{'t_time'} 存储日志时间。感谢 Luca Ferrari 提供补丁。
  • 更新用法与文档,移除 pgBadger 调用前的 perl 命令。感谢 Luca Ferrari 提供补丁。
  • 允许起止条件使用不含日期的时间。感谢 Luca Ferrari 提供补丁。
  • 修正 README 的少量拼写与语法错误。感谢 ofni yratilim 提供补丁。
  • 修复通过 SSH 使用的远程路径。感谢 Luca Ferrari 提供补丁。
  • 更新回归测试,适应按数据库报告功能引入的新结构。
  • 修复全部起止参数中的小数秒。感谢 Luca Ferrari 提供补丁。
  • 修正文档 URL。感谢 Kara Mansel 报告。
  • 修复 auto_explain 解析,并补充 -U 可多次指定的说明。感谢 Douglas J Hunley 报告。
  • 改进多处 HTML/CSS 报告界面。感谢 Pierre Giraud 提供补丁。
  • 更新资源文件。
  • 添加 logplex 格式的回归测试。
  • 支持 Heroku PostgreSQL 的 logplex 格式,可解析日志流: 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 如有其他默认前缀,可向上游反馈。也可以始终用 -p | --prefix 指定,例如: pgbadger –p ‘base = %d source = %r sql_state = %e’ heroku.log 感谢 Anthony Sosso 提出需求。
  • 修复关于 URI 使用的帮助信息。
  • 修复上一补丁导致 SSH URI 通配符失效的问题。感谢 Tobias Bussmann 报告。
  • 允许日志路径含空格的 URI。感谢 Tobias Bussmann 报告。
  • 修正文档中的 URI 示例。感谢 Tobias Bussmann 提供补丁。
  • 修复 t/02_basics.t,避免 syslog 测试耗时超过 10s 时失败。感谢 Christoph Berg 提供补丁。