pgbadger
/
ChangeLog
2976 строк · 144.6 Кб
12023-12-25 - v12.4
2
3This is a maintenance release of pgBadger that fixes issues reported by
4users since last release.
5
6- Fix pgbouncer report with version 1.21. Thanks to Ales Zeleny for the patch.
7- Prevent parallelism perl file to be higher than the number of files. Thanks
8to maliangzhu for the report.
9- Fix regression test broken since v12.3. Thanks to ieshin for the report.
10- Fix cases where LOG entries where counted as ERROR log level entries. Thanks
11to Matti Linnanvuori for the report.
12
132023-11-27 - v12.3
14
15This is a maintenance release of pgBadger that fixes issues reported by
16users since last release. It also adds some new features:
17
18* Add option --include-pid to only report events related to a session
19pid (%p). Can be used multiple time. Thanks to Henrietta Dombrovskaya
20for the feature request.
21* Add option --include-session to only report events related to the
22session id (%c). Can be used multiple time. Thanks to Henrietta Dombrovskaya
23for the feature request.
24* Add new option --dump-raw-csv to only parse the log and dump the information
25into CSV format. No further processing is done, no report is generated.
26Thanks to Henrietta Dombrovskaya for the feature request.
27
28Here is the complete list of changes and acknowledgments:
29
30- Update pgFormatter to version 5.5
31- Fix end date of parsing with jsonlog format. Thanks to jw1u1 for the report.
32- Fix typo in "Sessions per application". Thanks to fairyfar for the patch.
33- Fix "INSERT/UPDATE/DELETE Traffic" chart bug. Thanks to fairyfar for the
34patch.
35- Fix parsing of orphan lines with bind queries. Thanks to youxq for the
36report.
37- Fix Analyze per table report with new PG versions. Thanks to Jean-Christophe
38Arnu for the patch.
39- Fix syslog entry parser when the syslog timestamp contains milliseconds.
40Thanks to Pavel Rabel for the report.
41
422023-08-20 - v12.2
43
44This is a maintenance release of pgBadger that fixes issues reported by
45users since last release. It also adds two new features:
46
47* Add support for max, avg, min autovacuum duration. Thanks to Francisco
48Reinolds for the patch.
49* Add support for pgbouncer's average waiting time. Thanks to Francisco
50Reinolds for the patch.
51
52Here is the complete list of changes and acknowledgments:
53
54- Fix broken HTML output when application name contains <...>. Thanks to
55Fabio Geiss for the report.
56- Fix incorrect association of orphan lines when a filter on database was
57applied. Thanks to jcasanov for the report.
58- Fix logplex prefix parsing.
59- Fix logplex orphan lines detection.
60- Fix `autovacuum`'s `system usage: CPU: ...` line parsing. Thanks to
61Francisco Reinolds for the patch.
62- Avoid prepending output directory if output is stdout.
63- Standardise Average Query Duration label. Thanks to Francisco Reinolds
64for the patch
65- Update documentation for new pgbadger options. Thanks to Francisco Reinolds
66for the patch.
67- Fix case where parsing was not aborted when no file handle can be opened.
68Thanks to vp for the report.
69- Fix help by adding %p/%t mandatory placeholder log information. Thanks to
70Christophe Courtois for the patch.
71- Fix --retention parameter. Thanks to Bertrand Bourgier for the patch.
72- Fix cleanup output directory removed by commit 0e5c7d5 when HTML output dir
73is set. Thanks to Bertrand Bourgier for the report.
74- Fix output extension when destination directory contain a character that
75need to be escaped in regexp. Thanks to Bertrand Bourgier for the patch.
76- Replace calls to POSIX::strftime("%s", ....) by a call to localtime for
77Windows port. Thanks to Bertrand Bourgier for the patch.
78- Fix html output dir cleanup. Thanks to Bertrand Bourgier for the patch.
79- Use https for explain URL by default. Thanks to Philipp Trulson for the
80patch.
81
822023-03-20 - v12.1
83
84This is a maintenance release of pgBadger that fixes issues reported by users
85since past six months.
86
87Here is the complete list of changes and acknowledgments:
88
89- Fix parsing of multiline parameters. Thanks to Bekir Niyaz for the report.
90- Fix failure to normalize query with ::tsrange. Thanks to Philippe Griboval
91for the report.
92- Add logical decoding consistent point and start for slot log entries to
93the events report.
94- Handle other ns + timezone format in timestamp. Thanks to Ronan Dunklau
95for the report.
96- Fix detection of %m when notation with T is used. Thanks to Ronan Dunklau
97for the report.
98- Add parsing of CloudNativePG generated logs. Thanks to codrut panea for
99the patch.
100- Fix unused option --outdir in report generation. Thanks to Frederic Guiet
101for the report.
102- Update README with last documentation changes. Thanks to Manisankar for
103the report.
104- Fix a typo in pgbadger examples. Thanks to Shinichi Hashiba for the patch.
105
1062022-09-13 - v12.0
107
108This major release of pgBadger fixes some issues reported by users since
109past five months. As usual there is also new features and improvements:
110
111* Remove support to Tsung output.
112* Improve pgbadger performances when there are hundred of bind parameters
113to replace.
114* Remove option -n | --nohighlight which is no more used since upgrade to
115pgFormatter 4.
116* Use POST method to send auto_explain plan to explain.depesz.com to avoid
117GET length parameter limit.
118* Apply --exclude-query and --include-query to bind/parse traces.
119* Add link to pgBadger report examples to documentation.
120
121Here is the complete list of changes and acknowledgments:
122
123- Fix monthly reports that was failing on "log file ... must exists". Thanks
124to Jaume Sabater for the report.
125- Fix pgbouncer start parsing debug message when input is stdin. Thanks to
126aleszeleny for the report.
127- Remove support to Tsung output.
128- Drastically improve pgbadger performances for bind parameters
129replacement that could make pgbadger run infinitely when there was
130hundred of parameters. Thanks to Monty Mobile for the report.
131- Fix documentation about pgBadger return codes and also some wrong return
132code at some places. Thanks to Jaume Sabater for the report.
133- Fix several typo. Thanks to David Gilman for the patch.
134- Remove option -n | --nohighlight which is no more used since upgrade to
135pgFormatter 4. Thanks to Elena Indrupskaya for the report.
136- Lot of pgbadger documentation fixes. Thanks to Elena Indrupskay from
137Postgres Pro for the patch.
138- Allow half hour in --log-timezone and --timezone, value can be an integer,
139ex: 2 or a float, ex: 2.5. Thanks to Mujjamil-K for the feature request.
140- Allow use of regexp for --exclude-app and --exclude-client. Thanks to
141rdnkrkmz for the feature request.
142- Allow use of --explain-url with previous commit and restore the limitation
143to explain text format.
144- Use POST method to send auto_explain plan to explain.depesz.com to avoid
145GET length parameter limit. Thanks to hvisage for the report.
146- Apply --exclude-query and --include-query to bind/parse traces. Thanks to
147Alec Lazarescu for the report.
148- Fix parsing of autovacuum stats from RDS logs. Thanks to David Gilman for
149the report.
150- Fix passing of log format when parsing remote log. Thanks to spookypeanut
151the report.
152- Add link to pgBadger report examples to documentation.
153- Fix Session per user reports. Thanks to vitalca for the report.
154- Fix jsonlog parsing from PG15 ouput
155- Fix text-based error/events reporting. Thanks to Michael Banck for the patch
156- Fix regexp typo in normalize_error(). Thanks to Michael Banck for the patch.
157
1582022-04-08 - v11.8
159
160This release of pgBadger fix some issues reported by users since past
161three months and especially two fixes on new log entries detection in
162incremental mode.
163
164* Fix detection of new log entries with timestamp when millisecond (%m) or
165epoch (%n) was used in log_line_prefix.
166* Fix detection of new log entries in local file when multiprocess was not
167used.
168
169Here is the complete list of changes and acknowledgments:
170
171- Full review and simplification of the log file change detection.
172- Reports messages "could not (receive|send) data (from|to) client" in the
173Events reports. Thanks to Adrien Nayrat for the report.
174- Fix parsing issue when the name of a prepared query contain the ':'
175character. Thanks to aleszeleny for the report.
176- Fix detection of new log entries with timestamp when millisecond (%m) or
177epoch (%n). Thanks to aleszeleny for the report.
178- Fix detection of new log entries in local file when multiprocess was not
179used. Thanks to aleszeleny for the report.
180- Fix detection of new log entries in remote files through ssh. Thanks to
181Luca Ferrari for the report
182- Fix garbage in username of "Connections per user" report. Thanks to
183caseyandgina for the report.
184- Fix ssh command when using URI, the ssh options was missing. Thanks to Luca
185Ferrari for the report.
186- Handle queryid %Q placeholder. Thanks to Adrien Nayrat for the patch.
187- Fix typo in error sentence. Thanks to Luca Ferrari for the patch
188- Report message: "server process was terminated by signal" in the Events
189report. Thanks to Avi Vallarapu for the report.
190- doc: fix filename for incremental every week command. Thanks to Theophile
191Helleboid for the patch.
192- t/04_advanced.t: Fix syslog test. Thanks to Christoph Berg for the patch.
193
1942022-01-23 - v11.7
195
196This release of pgBadger fix some issues reported by users since past
197five months as well as some improvements:
198
199* Add new option --no-progressbar option to not display it but keep the
200other outputs.
201* Add new option --day-report that can be used to rebuild an HTML report
202over the specified day. Like option --month-report but only for a day.
203It requires the incremental output directories and the presence of all
204necessary binary data files. The value is date in format: YYYY-MM-DD
205* Improve parsing of Heroku logplex and cloudsql json logs.
206
207Here is the complete list of changes and acknowledgments:
208
209- Update contribution guidelines and Makefile.PL to improve consistency,
210clarity, and dependencies. Thanks to diffuse for the patch.
211- Fix use of last parse file (--last-parsed) with binary mode. Thanks to
212wibrt for the report.
213- Add regression test for --last-parsed use and fix regression test on
214report for temporary files only.
215- Fix title for session per host graph. Thanks to Norbert Bede for the
216report.
217- Fix week number when computing weeks reports when --iso-week-number
218and --incremental options was enabled. Thanks to hansgv for the report.
219- Add --no-progressbar option to not display it and keep the other outputs.
220Thanks to seidlmic for the feature request.
221- Prevent too much unknown format line prints in debug mode for multi-line
222jsonlog.
223- Fix parsing of single line cloudsql json log. Thanks to Thomas Leclaire
224for the report.
225- Fix temporary files summary with log_temp_files only.
226- Print debug message with -v even if -q or --quiet is used.
227- Fix autodetection of jsonlog file.
228- Fix parsing of cloudsql log file. Thanks to Luc Lamarle for the report.
229- Fixes pid extraction in parse_json_input. Thanks to Francois Scala for
230the patch.
231- Add new option --day-report with value as date in format: YYYY-MM-DD
232that can be used to rebuild an HTML report over the specified day.
233Thanks to Thomas Leclaire for the feature request.
234- Fix query counter in progress bar. Thanks to Guillaume Lelarge for the
235report.
236- Fix incomplete queries stored for top bind and prepare reports.
237- Fix normalization of object identifier, in some case the numbers was
238replaced by a ?.
239- Fix unformatted normalized queries when there is a comment at beginning.
240- Fix multi-line in stderr format when --dbname is used. Thanks to
241Guillaume Lelarge for the report.
242- Fix not generated reports in incremental mode when --dbname is used.
243Thanks to Dudley Perkins for the report.
244- Do not die anymore if a binary file is not compatible, switch to next
245file. Thanks to Thomas Leclaire for the suggestion.
246- Fix Heroku logplex format change in pgbadger parser. Thanks to François
247Pietka for the report.
248
2492021-09-04 - v11.6
250
251This release of pgBadger fix some issues reported by users since past
252seven months as well as some improvements:
253
254* Add detection of Query Id in log_line_prefix new in PG14. Thanks to
255Florent Jardin for the report.
256* Add advanced regression tests with db exclusion and the explode
257feature. Thanks to MigOps Inc for the patch.
258* Apply multiprocess to report generation when --explode is used.
259Thanks to MigOps Inc for the patch and Thomas Leclaire for the
260feature request.
261* Add --iso-week-number in incremental mode, calendar's weeks start
262on a Monday and respect the ISO 8601 week number, range 01 to 53,
263where week 1 is the first week that has at least 4 days in the new
264year. Thanks to Alex Muntada for the feature request.
265* Add command line option --keep-comments to not remove comments from
266normalized queries. It can be useful if you want to distinguish
267between same normalized queries. Thanks to Stefan Corneliu Petrea
268for the feature request.
269* Skip INFO lines introduced in PostgreSQL log file by third parties
270software. Thanks to David Piscitelli for the report.
271* Add compatibility with PostgresPro log file including rows number
272and size in bytes following the statement duration. Thanks to
273panatamann for the report.
274* Parse times with T's to allow using the timestamps from journalctl.
275Thanks to Graham Christensen for the patch.
276* Improve Windows port. Thanks to Bertrand Bourgier for the patches.
277
278Important note:
279
280* Expect that --iso-week-number will be the default in next major
281release and that --start-monday option will be removed as the week
282will always start a Monday. The possibility to have week reports
283start a Sunday will be removed to simplify the code.
284
285Here is the complete list of changes and acknowledgments:
286
287- Fix duplicate of warning message:
288"database ... must be vacuumed within ... transactions".
289Thank to Christophe Courtois for the report.
290- Fix use of uninitialized variable. Thanks to phiresky for the report.
291- Improve query id detection, it can be negative, as well as read it
292from csvlog.
293- Fix case where last file in incremental mode is always parsed even if
294it was already done. Thanks to Thomas Leclaire for the report.
295- Update syslog format regex to handle where session line indicator
296only contains one int vs two ints separated by dash. Thanks to
297Timothy Alexander for the patch.
298- Fix --exclude-db option to create anyway the related report with json
299log. Thanks to MigOps Inc for the patch and Thomas Leclaire for the
300report.
301- Add regression test about Storable buggy version.
302- Fix use of uninitialized value in substitution iterator in incremental
303mode during the week report generation. Thanks to Thomas Leclaire,
304Michael Vitale, Sumeet Shukla and Stefan Corneliu Petrea for the report.
305- Add 'g' option to replace all bind parameters. Thanks to Nicolas Lutic
306and Sebastien Lardiere for the patch.
307- Documentation improvements. Thanks to Stefan Petrea for the patch.
308- Fixes change log time zone calculation. Thanks to Stefan Petrea for
309the patch.
310- Fix log filter by begin/end time.
311- Fix wrong association of orphan lines for multi-line queries with a
312filter on database. Thanks to Abhishek Mehta for the report.
313- Fix reports in incremental mode when --dbname parameter is partially
314ignored with "explode" option (-E). Thanks to lrevest for the report.
315- Update javascript resources.
316- Fix display of menu before switching to hamburger mode when screen is
317reduced. Thanks to Guillaume Lelarge for the report.
318- Fix bind parameters values over multiple lines in the log that were
319not well supported.
320- Apply same fix for previous patch than in pgFormatter.
321- Fix an other use of uninitialized value in substitution iterator from
322pgFormatter code. Thanks to Christophe Courtois for the report.
323- Fix query normalization. Thanks to Jeffrey Beale for the patch.
324- Be sure that all statements end with a semicolon when --dump-all-queries
325is used. Thanks to Christian for the report.
326- Fix typo and init of EOL type with multiple log files.
327- Add auto detection of EOL type to fix LAST_PARSED offset when OEL is on
3282 bytes (Windows case). Thanks to Bertrand Bourgier for the patch.
329- Fix get_day_of_week() port on Windows where strftime %u is not supported.
330Thanks to Bertrand Bourgier for the patch.
331- Fix Windows port that call pl2bat.bat perl utility to create a corrupted
332pgbadger.bat du to the way __DATA__ was read in pgbadger. Thanks to
333Bertrand Bourgier for the patch.
334- Fix begin/end time filter and add regression test for timestamp filters.
335Thanks to Alexis Lahouze and plmayekar for the report.
336- Fix use of uninitialized value in pattern match introduced by pgFormatter
337update. Thanks to arlt for the report.
338
3392021-02-18 - v11.5
340
341This release of pgBadger fix some issues reported by users since
342past three months as well as some improvements:
343
344* Add report about sessions idle time, computed using:
345"total sessions time - total queries time / number of sessions
346This require that log_connection and log disconnection have been
347enabled and that log_min_duration_statement = 0 (all queries logged)
348to have a reliable value. This can help to know how much idle time
349is lost, and if a pooler transaction mode would be useful.
350This report is available in the "Sessions" tab of "Global Stats"
351and in the "Sessions" tab of "General Activity" reports (per hour).
352* Add anonymization of numeric values, replaced by 4 random digits.
353* Update SQL beautifier based on pgFormatter 5.0.
354
355Here is the complete list of changes and acknowledgments:
356
357- Fix parsing of cloudsql multi-line statement. Thanks to Jon Young for the report.
358- Add regression test for anonymization.
359- Fix anonymization broken by maxlength truncate. Thanks to artl for the report.
360- Add anonymization of parameter in time consuming prepare and bind reports. Thanks to arlt for the report.
361- Add support to microseconds in logplex log line prefix. Thanks to Ross Gardiner for the report.
362- Add report about sessions idle time. Thanks to Guillaume Lelarge for the feature request.
363- Complete patch to support multi-line in jsonlog format.
364
365
3662020-11-24 - v11.4
367
368This release of pgBadger fix some issues reported by users since
369past four months. Improve support for PostgreSQL 13 log information
370and adds some new features:
371
372* Add full autovacuum information in "Vacuums per table" report for
373buffer usage (hits, missed, dirtied), skipped due to pins, skipped
374frozen and WAL usage (records, full page images, bytes). In report
375"Tuples removed per table" additional autovacuum information are
376tuples remaining, tuples not yet removable and pages remaining.
377These information are only available on the "Table" tab.
378* Add new repartition report about checkpoint starting causes.
379* Add detection of application name from connection authorized traces.
380
381Here is the complete list of changes and acknowledgments:
382
383- Fix typo in an error message. Thanks to Vidar Tyldum for the patch.
384- Fix Windows port with error: "can not load incompatible binary data".
385Thanks to Eric Brawner for the report.
386- Fix typo on option --html-outdir in pgbadger usage and documentation.
387Thanks to Vidar Tyldum for the patch.
388- Fix autodetection of jsonlog/cloudsql format. Thanks to Jon Young
389for the report.
390- Fix CSV log parsing with PG v13. Thanks to Kanwei Li for the report
391and Kaarel Moppel for the patch.
392- Fix sort of queries generating the most temporary files report.
393Thanks to Sebastien Lardiere for the report.
394- Add pgbadger version trace in debug mode.
395
396
3972020-07-26 - v11.3
398
399This release of pgBadger fix several issues reported by users since
400past four months. It also adds some new features and new command line
401options:
402
403* Add autodetection of UTC timestamp to avoid applying timezone
404for graphs.
405* Add support to GCP CloudSQL json log format.
406* Add new option --dump-all-queries to use pgBadger to dump all
407queries to a text file, no report is generated just the full list
408of statements found in the PostgreSQL log. Bind parameters are
409inserted into the queries at their respective position.
410* Add new option -Q | --query-numbering used to add numbering of
411queries to the output when using options --dump-all-queries or
412--normalized-only.
413* Add new command line option --tempdir to set the directory where
414temporary files will be written. Can be useful on system that do
415not allow writing to /tmp.
416* Add command line option --ssh-port used to set the ssh port if not
417default to 22. The URI notation also adds support to ssh port
418specification by using the form:
419ssh://192.168.1.100:2222//var/log/postgresql-11.log
420
421Here is the complete list of changes and acknowledgments:
422
423- Fix incremental reports for jsonlog/cloudsql log format. Thanks
424to Ryan DeShone for the report
425- Add autodetection of UTC timestamp to avoid applying autodetected
426timezone for graphs. With UTC time the javascript will apply the
427local timezone. Thanks to Brett Stauner for the report.
428- Fix incremental parsing of journalctl logs doesn't work from the
429second run. Thanks to Paweł Koziol for the patch.
430- Fix path to resources file when -X and -E are used. Thanks to Ryan
431DeShone for the report.
432- Fix General Activity report about read/write queries. Thanks to
433alexandre-sk5 for the report.
434- Add debug message when parallel mode is not use.
435- Fix elsif logic in file size detection and extra space introduced
436in the journalctl command when the --since option is added. Thanks
437to Pawel Koziol for the patch.
438- Fix "not a valid file descriptor" error. Thanks to Pawel Koziol
439for the report.
440- Fix incremental mode with RDS files. Thanks to Ildefonso Camargo,
441nodje and John Walsh for the report.
442- Add new option -Q | --query-numbering used to add numbering of
443queries to the output when using options --dump-all-queries or
444--normalized-only. This can be useful to extract multiline queries
445in the output file from an external script. Thanks to Shantanu Oak
446for the feature request.
447- Fix parsing of cloudsql json logs when log_min_duration_statement
448is enabled. Thanks to alexandre-sk5 for the report.
449- Fix wrong hash key for users in RDS log. Thanks to vosmax for the
450report.
451- Fix error related to modification of non-creatable array value.
452Thanks to John Walsh and Mark Fletcher for the report.
453- Add support to GCP CloudSQL json log format, log format (-f) is
454jsonlog. Thanks to Thomas Poindessous for the feature request.
455- Add new option --dump-all-queries to use pgBadger to dump all
456queries to a text file, no report is generated just the full list
457of statements found in the PostgreSQL log. Bind parameters are
458inserted into the queries at their respective position. There is
459not sort on unique queries, all queries are logged. Thanks to
460Shantanu Oak for the feature request.
461- Add documentation for --dump-all-queries option.
462- Fix vacuum report for new PG version. Thanks to Alexey Timanovsky
463for the report.
464- Add new command line option --no-process-info to disable change of
465process title to help identify pgbadger process, some system do
466not allow it. Thanks to Akshay2378 for the report.
467- Add new command line option --tempdir to set the directory where
468temporary files will be written. Default:
469File::Spec->tmpdir() || '/tmp'
470Can be useful on system that do not allow writing to /tmp. Thanks
471to Akshay2378 for the report.
472- Fix unsupported compressed filenames with spaces and/or brackets.
473Thanks to Alexey Timanovsky for the report.
474- Add command line option --ssh-port used to set the ssh port if not
475default to 22. The URI notation also adds support to ssh port
476specification by using the form:
477ssh://192.168.1.100:2222//var/log/postgresql-11.log
478Thanks to Augusto Murri for the feature request.
479
480
4812020-03-11 - v11.2
482
483This release of pgBadger fix several issues reported by users since
484past six months. It also adds some new features:
485
486* Add support and autodetection of AWS redshift log format.
487* Add support to pgbouncer 1.11 new log format.
488* Handle zstd and lz4 compression format
489* Allow to fully separate statistics build and HTML report build in
490incremental mode without having to read a log file. For example
491it is possible to run pgbadger each hours as follow:
492
493pgbadger -I -O "/out-dir/data" --noreport /var/log/postgresql*.log
494
495It just creates the data binary files in "/out-dir/data" then
496for example you can make reports each night for the next day in
497a separate directory `/out-dir/reports`:
498
499pgbadger -I -l "/out-dir/data/LAST_PARSED" -H "/out-dir/reports" /out-dir/data/2020/02/19/*.bin
500
501This require to set the path to the last parsed information, the
502path where HTML reports will be written and the binary data file
503of the day.
504
505There is also new command line options:
506
507* Add new command line option --explain-url used to override the url
508of the graphical explain tool. Default URL is:
509
510http://explain.depesz.com/?is_public=0&is_anon=0&plan=
511
512If you want to use a local install of PgExplain or an other tool.
513pgBadger will add the plan in text format escaped at the end of
514the URL.
515
516* Add new option --no-week to instruct pgbadger to not build weekly
517reports in incremental mode. Useful if it takes too much time and
518resources.
519
520* Add new command line option --command to be able to set a command
521that pgBadger will execute to retrieve log entries on stdin.
522pgBadger will open a pipe to the command and parse log entries
523generated by the command. For example:
524
525pgbadger -f stderr --command 'cat /var/log/postgresql.log'
526
527which is the same as executing pgbadger with the log file directly
528as argument. The interest of this option is obvious if you have to
529modify the log file on the fly or that log entries are extracted
530from a program or generated from a database. For example:
531
532pgbadger -f csv --command 'psql dbname -c "COPY jrn_log TO STDOUT (FORMAT CSV)"'
533
534* Add new command line option --noexplain to prevent pgBadger to
535parse and report explain plan written to log by auto_explain
536extension. This is useful if you have a PostgreSQL version < 9.0
537where pgBadger generate broken reports when there is explain plan
538in log.
539
540Backward compatibility:
541
542- By default pgBadger will truncate queries up to 100000 characters.
543This arbitrary value and can be adjusted using option --maxlength.
544Previous behavior was to not truncate queries but this could
545lead in excessive resources usage. Limiting default size is safer
546and the size limit might allow no truncate in most cases. However
547queries will not be beautified if they exceed 25000 characters.
548
549Here is the complete list of changes and acknowledgments:
550
551- Fix non working --exclude-client option. Thanks to John Walsh
552for the report.
553- Add regression test for RDS log parsing and --exclude-client.
554- Fix progress bar for pgbouncer log file. The "queries" label is
555changed in "stats" for pgbouncer log files.
556- Add command line option --explain-url used to override the url
557of the graphical explain tool. Thanks to Christophe Courtois for
558the feature request.
559- Add support to pgbouncer 1.11 new log format. Thanks to Dan
560Aksenov for the report.
561- Handle zstd and lz4 compression format. Thanks to Adrien Nayrat
562for the patch.
563- Add support and autodetection of AWS redshift log format. Thanks
564to Bhuvanesh for the reature request.
565- Update documentation about redshift log format.
566- Add new option --no-week to instruct pgbadger to not build weekly
567reports in incremental mode. Thanks to cleverKermit17 for the
568feature request.
569- Fix a pattern match on file path that breaks pgBadger on Windows.
570- Fix #554 about cyrillic and other encoded statement parameters
571that was not reported properly in the HTML report even with custom
572charset. The regression was introduced with a fix to the well
573known Perl error message "Wide character in print". The patch have
574been reverted and a new command line option: --wide-char is
575available to recover this behavior. Add this option to your
576pgbadger command if you have message "Wide character in print".
577Add a regression test with Cyrillic and french encoding. Thanks
578to 4815162342lost and yethee for the report.
579- Update documentation to inform that lc_messages = 'en_US.UTF-8'
580is valid too. Thanks to nodje for the report.
581- Update documentation about --maxlength which default truncate size
582is 100000 and no more default to no truncate. Thanks to nodje for
583the report.
584- Fix retention calculation at year overlap. Thanks to Fabio Pereira
585for the patch.
586- Fix parsing of rds log file format. Thanks to Kadaffy Talavera for
587the report.
588- Prevent generating empty index file in incremental mode when there
589is no new log entries. Thanks to Kadaffy Talavera for the report.
590- Fix non up to date documentation. Thanks to Eric Hanson for the
591patch.
592- Fixes the command line parameter from -no-explain to -noexplain.
593Thanks to Indrek Toom for the patch.
594- Fall back to default file size when totalsize can not be found.
595Thanks to Adrien Nayrat for the patch.
596- Fix some dates in examples. Thanks to Greg Clough for the patch.
597- Use compressed file extension regexp in remaining test and extract
598.bin extension in a separate condition.
599- Handle zstd and lz4 compression format. Thanks to Adrien Nayrat
600for the patch.
601- Fix remaining call of SIGUSR2 on Windows. Thanks to inrap for the
602report.
603- Fix progress bar with log file of indetermined size.
604- Add new command line option --command to be able to set a command
605that pgBadger will execute to retrieve log entries on stdin.
606Thanks to Justin Pryzby for the feature request.
607- Add new command line option --noexplain to prevent pgBadger to
608parse and report explain plan written to log by auto_explain
609extension. This is useful if you have a PostgreSQL version < 9.0
610where pgBadger generate broken reports when there is explain plan
611in log. Thanks to Massimo Sala for the feature request.
612- Fix RDS log parsing when the prefix is set at command line. Thanks
613to Bing Zhao for the report.
614- Fix incremental mode with rds log format. Thanks to Bing Zhao for
615the report.
616- Fix possible rds log parsing. Thanks to James van Lommel and Simon
617Dobner for the report.
618- Fix statement classification and add regression test. Thanks to
619alexanderlaw for the report.
620- Fix anonymization of single characters in IN clause. Thanks to
621Massimo Sala for the report.
622- Fix RDS log parsing for rows without client/user/db information.
623Thanks to Konrad for the report.
624
6252019-09-16 - v11.1
626
627This release of pgBadger fix several issues reported by users since
628three months. It also adds some new features and reports:
629
630- Add report of top N queries that consume the most time in the
631prepare or parse stage.
632- Add report of top N queries that consume the most time in the
633bind stage.
634- Add report of timing for prepare/bind/execute queries parts.
635Reported in a new "Duration" tab in Global Stats report. Example:
636Total query duration: 6m16s
637Prepare/parse total duration: 45s564ms
638Bind total duration: 4m46s
639Execute total duration: 44s71m
640This also fix previous report of "Total query duration" that was
641only reporting execute total duration.
642- Add support to RDS and CloudWatch log format, they are detected
643automatically. You can use -f rds if pgbadger is not able to
644auto-detect the log format.
645- Add new configuration option --month-report to be able to build
646monthly incremental reports.
647- Restore support to Windows operating system.
648
649There's also some bugs fixes and features enhancements.
650
651- Add auto-generated Markdown documentation in README.md using tool
652pod2markdown. If the command is not present the file will just not
653be generated. Thanks to Derek Yang for the patch.
654- Translate action WITH into CTE, regression introduced in last release.
655- Fix support of Windows Operating System
656- Add support to RDS and CloudWatch log format, use -f rds if pgbadger is
657not able to auto-detect this log format. Thanks to peruuparkar for the
658feature request.
659- Fix option -f | --format that was not applied on all files get from the
660parameter list where log format auto-detection was failing, the format was
661taken from the fist file parsed. Thanks to Levente Birta for the report.
662- Update source documentation file to replace reference to pgBadger v7.x
663with v11. Thanks to Will Buckner for the patch.
664- Limit height display size of top queries to avoid taking the whole page
665with huge queries. Thanks to ilias ilisepe1 for the patch.
666- Fix overflow of queries and detail in Slowest individual queries.
667- Fix SSH URIs for files, directories and wildcards. Thanks to tbussmann for
668the patch.
669- Fix URI samples in documentation. Thanks to tbussmann for the patch.
670- Hide message of use of default out file when --rebuild is used.
671- Add extra newline to usage() output to not bread POD documentation at
672make time.
673- Reapply --exclude-client option description in documentation. Thanks to
674Christoph Berg for the report.
675
6762019-06-25 - v11.0
677
678This release of pgBadger adds some major new features and fixes some
679issues reported by users since the last four months. New features:
680
681- Regroup cursor related query (DECLARE,CLOSE,FETCH,MOVE) into new
682query type CURSOR.
683- Add top bind queries that generate the more temporary files.
684Require log_connection and log_disconnection be activated.
685- Add --exclude-client command line option to be able to exclude log
686entries for the specified client ip. Can be used multiple time.
687- Allow to use time only in --begin and --end filters.
688- Add -H, --html-dir option to be able to set a different path where
689HTML report must be written in incremental mode. Binary files stay
690on directory defined with -O, --outdir option.
691- Add -E | --explode option to explode the main report into one
692report per database. Global information not related to a database
693are added to the postgres database report.
694- Add per database report to incremental mode. In this mode there
695will be a sub directory per database with dedicated incremental
696reports.
697- Add support to Heroku's PostgreSQL logplex format. Log can be
698parsed using:
699
700heroku logs -p postgres | pgbadger -f logplex -o heroku.html -
701
702- When a query is > 10Kb we first limit size of all constant string
703parameters to 30 characters and then the query is truncated to 10Kb.
704This prevent pgbadger to waste time/hang with very long queries
705when inserting bytea for example. The 10Kb limit can be controlled
706with the --maxlength command line parameter.
707The query is normalized or truncated to maxlength value only after
708this first attempt to limit size.
709
710This new release breaks backward compatibility with old binary or JSON
711files. This also mean that incremental mode will not be able to read
712old binary file. If you want to update pgBadger and keep you old reports
713take care to upgrade at start of a new week otherwise weekly report will
714be broken. pgBadger will print a warning and just skip the old binary
715file.
716
717There's also some bugs fixes and features enhancements.
718
719- Add a warning about version and skip loading incompatible binary file.
720- Update code formatter to pgFormatter 4.0.
721- Fix pgbadger hang on Windows OS. Thanks to JMLessard for the report.
722- Update tools/pgbadger_tools script to be compatible with new binary
723file format in pgBadger v11.
724- Add top bind queries that generate the more temporary files. This
725collect is possible only if log_connection and log_disconnection
726are activated in postgresql.conf. Thanks to Ildefonso Camargo for
727the feature request.
728- Fix auto detection of timezone. Thanks to massimosala for the fix.
729- Remove some remaining graph when --nograph is used
730- Force use of .txt extension when --normalized-only is used.
731- Fix report of auto vacuum/analyze in logplex format. Thanks to
732Konrad zichul for the report.
733- Fix use of progress bar on Windows operating system. Thanks to
734JMLessard for the report.
735- Use a `$prefix_vars{'t_time'} to store the log time. Thanks to Luca
736Ferrari for the patch.
737- Update usage and documentation to remove perl command from pgbadger
738invocations. Thanks to Luca Ferrari for the patch.
739- Use begin and end with times without date. Thanks to Luca Ferrari
740for the patch.
741- Added some very minor spelling and grammar fixes to the readme file.
742Thanks to ofni yratilim for the patch.
743- Fix remote paths using SSH. Thanks to Luca Ferrari for the patch.
744- Update regression test to works with new structure introduced with
745the per database report feature.
746- Fix fractional seconds in all begin and end parameters. Thanks to
747Luca Ferrari for the patch.
748- Fix documentation URL. Thanks to Kara Mansel for the report.
749- Fix parsing of auto_explain.
750Add more information about -U option that can be used multiple time.
751Thanks to Douglas J Hunley for the report.
752- Lot of HTML / CSS report improvements. Thanks to Pierre Giraud for
753the patches.
754- Update resource file.
755- Add regression test for logplex format.
756- Add support to Heroku's PostgreSQL logplex format. You should be able
757to parse these logs as follow:
758heroku logs -p postgres | pgbadger -f logplex -o heroku.html -
759or if you have already saved the output to a file:
760pgbadger heroku.log
761The logplex format is auto-dectected like any other supported format.
762pgBadger understand the following default log_line_prefix:
763database = %d connection_source = %r sql_error_code = %e
764or simply:
765sql_error_code = %e
766Let me know if there's any other default log_line_prefix. The prefix
767can always be set using the -p | --prefix pgbadger option:
768pgbadger --p 'base = %d source = %r sql_state = %e' heroku.log
769for example.
770Thanks to Anthony Sosso for the feature request.
771- Fix pgbadger help on URI use.
772- Fix broken wildcard use in ssh URI introduced in previous patch.
773Thanks to Tobias Bussmann for the report.
774- Allow URI with space in path to log file. Thanks to Tobias Bussmann
775for the report.
776- Fix URI samples in documentation. Thanks to Tobias Bussmann for the
777patch.
778- Fix t/02_basics.t to don't fail if syslog test takes more than 10s.
779Thanks to Christoph Berg for the patch.
780
7812019-02-14 - v10.3
782
783This release of pgBadger is a maintenance release that fixes some
784log format autodetection issues another pgBouncer log parsing issue
785reported by users. There is also a new feature:
786
787The -o | --outfile option can now be used multiple time to dump
788output in several format in a single command. For example:
789pgbadger -o out.html -o out.json /log/pgsql-11.log
790will create two reports in html and json format saved in the
791two corresponding files.
792
793There's also some bugs fixes and features enhancements.
794
795- Fix statistics reports when there a filter on database, user,
796client or application is requested. Some queries was not
797reported.
798- Fix autodetection of pg>=10 defauilt log line prefix.
799- Fix autodetection of log file with "non standard" log line prefix.
800If --prefix specify %t, %m, %n and %p or %c, set format to stderr.
801Thanks to Alex Danvy for the report.
802- Remove extra space at end of line.
803- Add minimal test to syslog parser.
804- Fix a call to autodetect_format().
805- Truncate statement when maxlength is used. Thanks to Thibaud
806Madelaine for the patch.
807- Add test for multiple output format.
808- The -o | --outfile option can now be used multiple time to dump
809output in several format in a single command. For example:
810pgbadger -o out.txt -o out.html -o - -x json /log/pgsql-11.log
811Here pgbadger will create two reports in text and html format
812saved in the two corresponding file. It will also output a json
813report on standard output. Thanks to Nikolay for the feature
814request.
815- Move detection of output format and setting of out filename into
816a dedicated function set_output_extension().
817- Fix another pgBouncer log parsing issue. Thanks to Douglas J.
818Hunley for the report.
819
8202018-12-27 - v10.2
821
822This release of pgBadger is a maintenance release that fixes issues
823reported by users during last three months. There is also some new
824features:
825
826* Add support to pgbouncer 1.8 Stats log format.
827* Auto adjust javascript graph timezone.
828
829There is a new command line option:
830
831* Add --exclude-db option to compute report about everything except
832the specified database.
833* Add support to http or ftp remote PostgreSQL log file download.
834The log file is parsed during the download using curl command
835and never saved to disk. With ssh remote log parsing you can use
836uri as command line argument to specify the PostgreSQL log file.
837
838ssh://localhost/postgresql-10-main.log
839http://localhost/postgresql-10-main.log.gz
840ftp://localhost/postgresql-10-main.log
841
842with http and ftp protocol you need to specify the log file format
843at end of the uri:
844
845http://localhost/postgresql-10-main.log:stderr
846
847You can specify multiple uri for log files to be parsed. This is
848useful when you have pgbouncer log file on a remote host and
849PostgreSQL logs in the local host.
850
851With ssh protocol you can use wild card too like with remote
852mode, ex: ssh://localhost/postgresql-10-main.log*
853
854Old syntax to parse remote log file using -r option is still
855working but is obsolete and might be removed in future versions.
856
857
858There's also some bugs fixes and features enhancements.
859
860- Adjust end of progress bar with files with estimate size (bz2
861compressed files and remote compressed files.
862- Update year in copyright.
863- Add information about URI notation to parse remote log files.
864- Force progress to reach 100% at end of parsing of compressed
865remote file.
866- Extract information about PL/pgSQL function call in queries of
867temporary file reports. The information is append to the details
868display block.
869- Fix progress bar with csv files.
870- Fix reading binary file as input file instead of log file.
871- Encode html output of queries into UTF8 to avoid message "Wide
872character in print". Thanks to Colin 't Hart for the report.
873- Add Checkpoints distance key/value for distance peak.
874- Fix pgbouncer parsing and request throughput reports. Thanks
875to Levente Birta for the report.
876- Fix use of csvlog instead of csv for input format.
877- Add support to pgbouncer 1.8 Stats log format. Thanks to Levente
878Birta for the report.
879- Add warning about parallel processing disabled with csvlog. Thanks
880to cstdenis for the report.
881- Add information in usage output about single process forcing with
882csvlog format in -j and -J options. Thanks to cstdenis for the
883report.
884- Fix unknown line format error for multi line log while incremental
885analysis over ssh. Thanks to Wooyoung Cho for the report.
886- Add -k (--insecure) option to curl command to be able to download
887logs from server using a self signed certificate.
888- Auto adjust javascript graph timezone. Thanks to Massimino Sala
889for the feature request.
890- Add support to HTTP logfile download by pgBadger, for example:
891/usr/bin/pgbadger http://www.mydom.com/postgresql-10.log
892- Will parse the file during download using curl command.
893- Fix documentation. Thanks to 0xflotus for the patch.
894- Reapply fix on missing replacement of bind parameters after some
895extra code cleaning. Thanks to Bernhard J. M. Grun for the report.
896- Add --exclude-db option to compute report about everything except
897the specified database. The option can be used multiple time.
898
8992018-09-12 - v10.1
900
901This release of pgBadger is a maintenance release that fixes reports
902in incremental mode and multiprocess with -j option. Log parsing from
903standard input was also broken. If you are using v10.0 please upgrade
904now.
905
906- Add test on pgbouncer log parser.
907- Some little performances improvment.
908- Fix not a valid file descriptor at pgbadger line 12314.
909- Fix unwanted newline in progressbar at startup.
910- Remove circleci files from the project.
911- Remove dependency of bats and jq for the test suite, they are
912replaced with Test::Simple and JSON::XS.
913- Add more tests especially for incremental mode and input from
914stdin that was broken in release 10.0.
915- Sync pgbadger, pod, and README, and fix some syntax errors.
916Thanks to Christoph Berg for the patch.
917- Add documentation on how to install Perl module JSON::XS from
918apt and yum repositories.
919- Fix URI for CSS in incremental mode. Thanks to Floris van Nee
920for the report.
921- Fix fatal error when looking for log from STDIN. Thanks to
922Jacek Szpot for the report.
923- Fixes SED use for OSX builds. Thanks to Steve Newson for the
924patch.
925- Fix illegal division by zero in incrental mode. Thanks to
926aleszeleny for the report.
927- Replace SQL::Beautify with v3.1 of pgFormatter::Beautify.
928
9292018-09-09 - v10.0
930
931This release of pgBadger is a major release that adds some new
932features and fix all issues reported by users since last release.
933
934* Add support of pgbouncer syslog log file format.
935* Add support to all auto_explain format (text, xml, json and yaml).
936* Add support to %q placeholder in log_line_prefix.
937* Add jsonlog format of Michael Paquier extension, with -f jsonlog
938pgbadger will be able to parse the log.
939* Replace the SQL formatter/beautify with v3.0 of pgFormatter.
940
941There is some new command line option:
942
943- Add --prettify-json command line option to prettify JSON output.
944- Add --log-timezone +/-XX command line option to set the number
945of hours from GMT of the timezone that must be used to adjust
946date/time read from log file before beeing parsed. Note that you
947might still need to adjust the graph timezone using -Z when the
948client has not the same timezone.
949- Add --include-time option to add the ability to choose times that
950you want to see, instead of excluding all the times you do not
951want to see (--exclude-time).
952
953The pgBadger project and copyrights has been transfered from Dalibo
954to the author and official maintainer of the project. Please update
955your links:
956
957- Web site: http://pgbadger.darold.net/
958- Source code: https://github.com/darold/pgbadger
959
960I want to thanks the great guys at Dalibo for all their investments
961into pgBadger during these years and especially Damien Clochard and
962Jean-paul argudo for their help to promote pgBadger.
963
964
965- Fix checkpoint distance and estimate not reported in incremental
966mode. Thanks to aleszeleny for the report.
967- Fix title of pgbouncer simultaneous session report. Thansks to
968Jehan Guillaume De Rorthais for the report.
969- Add support of pgbouncer syslog log file format. Thanks to djester
970for the feature request.
971- Fix error when a remote log is empty. Thanks to Parasit Hendersson
972for the report.
973- Fix test with binary format. Binary file must be generated as it
974is dependent of the plateform. Thanks to Michal Nowak for the
975report.
976- Fix case where an empty explain plan is generated.
977- Fix parsing of autodetected default format with a prefix in
978command line.
979- Remove dependency of git command in Makefile.PL.
980- Update documentation about options changes and remove of the
981[%l-1] part of the mandatory prefix.
982- Fix parsing of vacuum / analyze system usage for PostgreSQL 10.
983Thanks to Achilleas Mantzios for the patch.
984- Fix Temporary File Activity table.
985- Remove dependency to git during install.
986- Add --log-timezone +/-XX command line option to set the number
987of hours from GMT of the timezone that must be used to adjust
988date/time read from log file before beeing parsed. Using this
989option make more difficult log search with a date/time because the
990time will not be the same in the log. Note that you might still
991need to adjust the graph timezone using -Z when the client has not
992the same timezone. Thanks to xdexter for the feature request and
993Julien Tachoire for the patch.
994- Add support to auto_explain json output format. Thanks to dmius
995for the report.
996- Fix auto_explain parser and queries that was counted twice.
997Thanks to zam6ak for the report.
998- Fix checkpoint regex to match PostgreSQL 10 log messages. Thanks
999to Edmund Horner for the patch.
1000- Update description of -f | --format option by adding information
1001about jsonlog format.
1002- Fix query normalisation to not duplicate with bind queries.
1003Normalisation of values are now tranformed into a single ? and no
1004more 0 for numbers, two single quote for string. Thanks to vadv
1005for the report.
1006- Fix log level count. Thanks to Jean-Christophe Arnu for the report
1007- Make pgbadger more compliant with B::Lint bare sub name.
1008- Made perlcritic happy.
1009- Add --prettify-json command line option to prettify JSON output.
1010Default output is all in single line.
1011- Fix Events distribution report.
1012- Fix bug with --prefix when log_line_prefix contain multiple %%.
1013Thanks to svb007 for the report.
1014- Add --log-timezone +/-XX command line option to set the number
1015of hours from GMT of the timezone that must be used to adjust
1016date/time read from log file before beeing parsed. Using this
1017option make more difficult log search with a date/time because the
1018time will not be the same in the log. Note that you might still
1019need to adjust the graph timezone using -Z when the client has not
1020the same timezone. Thanks to xdexter for the feature request.
1021- Remove INDEXES from the keyword list and add BUFFERS to this list.
1022- Fix normalization of query using cursors.
1023- Remove Dockerfile and documentation about docker run. pgBadger
1024comes as a single Perl script without any dependence and it can
1025be used on any plateform. It is a non sens to use docker to run
1026pgbadger, if you don't want to install anything, just copy the
1027file pgbadger where you want and execute it.
1028- Fix broken grid when no temp files activity. Thanks to Pierre
1029Giraud for the patch
1030- Add doc warning about log_in_duration_statement vs log_duration +
1031log_statement. Thanks to Julien Tachoire for the patch.
1032- Apply timezone offset to bar charts. Thanks to Julien Tachoire
1033for the patch.
1034- Delete current temp file info if we meet an error for the same PID
1035Thanks to Julien Tachoire for the patch.
1036- Consistently use app= in examples, and support appname=
1037Some of the usage examples used appname= in the prefix, but the
1038code didn't recognize that token. Use app= in all examples, and
1039add appname= to the prefix parser. Thanks to Christoph Berg for
1040the patch
1041- Fix wrong long name for option -J that should be --Jobs intead
1042of --job_per_file. Thanks to Chad Trabant for the report and
1043Etienne Bersac for the patch.
1044- Ignore blib files. Thanks to Etienne Bersac for the patch.
1045- Add consistency tests. Thanks to damien clochard for the patch.
1046- doc update : stderr is not a default for -f. Thanks to Christophe
1047Courtois for the patch.
1048- Always update pod and README. Thanks to Etienne Bersac for
1049the patch.
1050- Add some regression tests. Thanks to Etienne Bersac for the patch.
1051- Add editorconfig configuration. Thanks to Etienne Bersac for the
1052patch.
1053- Drop vi temp files from gitignore. Thanks to Etienne Bersac for
1054the patch.
1055- Add --include-time option to add the ability to choose times that
1056you want to see, instead of excluding all the times you do not
1057want to see. This is handy when wanting to view only one or two
1058days from a week's worth of logs (simplifies down from multiple
1059--exlucde-time options to one --include-time). Thanks to Wesley
1060Bowman for the patch.
1061- Check pod syntax. Thanks to Etienne Bersac for the patch.
1062- Add HACKING to document tests. Thanks to Etienne Bersac for the
1063patch.
1064- Drop obsolete --bar-graph option. Thanks to Etienne Bersac for
1065the patch.
1066- Drop misleading .perltidyrc. This file date from 2012 and
1067pgbadger code is far from compliant. perltidy unified diff is
106810k lines. Let's drop this. Thanks to Etienne Bersac for the
1069patch.
1070- Fix use of uninitialized value in SQL formatting. Thanks to John
1071Krugger for the report and Jean-paul Argudo for the report.
1072
10732017-07-27 - v9.2
1074
1075This release of pgBadger is a maintenance release that adds some new
1076features.
1077
1078* Add report of checkpoint distance and estimate.
1079* Add support of AWS Redshift keywords to SQL code beautifier.
1080* Add autodetection of log format in remote mode to allow remote
1081parsing of pgbouncer log file together with PostgreSQL log file.
1082
1083There's also some bugs fixes and features enhancements.
1084
1085- Fix reports with histogram that was not showing data upper than
1086the last range.
1087- Fix parsing of journalctl without the the log line number pattern
1088([%l-n]). Thanks to Christian Schmitt for the report.
1089- Add report of checkpoint distance and estimate. Thanks to jjsantam
1090for the feature request.
1091- Append more information on what is done by script to update CSS
1092and javascript files, tools/updt_embedded_rsc.pl.
1093- Do not warn when all log files are empty and exit with code 0.
1094- Fix build_log_line_prefix_regex() that does not include %n as a
1095lookup in %regex_map. Thanks to ghosthound for the patch.
1096- Change error level of "FATAL: cannot use CSV" to WARNING. Thanks
1097to kong1man for the report.
1098- Fix use of uninitialized value warning. Thanks to Payal for the
1099report.
1100- Add permission denied to error normalization
1101- Update pgbadger to latest commit 5bdc018 of pgFormatter.
1102- Add support for AWS Redshift keywords. Thanks to cavanaug for the
1103feature request.
1104- Fix missing query in temporary file report when the query was
1105canceled. Thanks to Fabrizio de Royes Mello for the report.
1106- Normalize query with binded parameters, replaced with a ?.
1107- Sanity check to avoid end time before start time. Thanks to
1108Christophe Courtois for the patch.
1109- Fix a lot of mystyped words and do some grammatical fixes. Use
1110'pgBadger' where it refers to the program and not the binary file.
1111Also, use "official" expressions such as PgBouncer, GitHub, and
1112CSS. POD file was synced with README. Thanks to Euler Taveira for
1113the patch.
1114- Menu is broken when --disable-type top_cancelled_info test and
1115closing list must be inside disable_type test. While in it, ident
1116disable_lock test. Thanks to Euler Taveira for the patch.
1117- Fix use of uninitialized value. Thanks to johnkrugger for the
1118report.
1119- Remove test to read log file during log format auto-detection when
1120the file is hosted remotly. Thanks to clomdd for the report.
1121- Add autodetection of log format in remote mode to allow remote
1122parsing of pgbouncer log file together with PostgreSQL log file.
1123- Fix number of sessions wrongly increased after log line validation
1124Thanks to Achilleas Mantzios for the report.
1125- Minor reformatting of the pgBadger Description.
1126- Fix repeated info in documentation. Thanks to cscatolini for the patch.
1127
11282017-01-24 - v9.1
1129
1130This release of pgBadger is a maintenance release that adds some new
1131features.
1132
1133* Add report of error class distribution when SQLState is available
1134in the log_line_prefix (see %e placeholder).
1135* Update SQL Beautifier to pgFormatter v1.6 code.
1136* Improve error message normalization.
1137* Add --normalized-only option to generate a text file containing all
1138normalized queries found in a log with count.
1139* Allow %c (session id) to replace %p (pid) as unique session id.
1140* Add waiting for lock messages to event reports.
1141* Add --start-monday option to start calendar weeks in Monday
1142instead of default to Sunday.
1143
1144There's also some bugs fixes and features enhancements.
1145
1146- Add report of error class distribution when SQLState is available
1147in the log line prefix. Thanks to jacks33 for the feature request.
1148- Fix incremental global index on resize. Thanks to clomdd for the
1149report.
1150- Fix command tag log_line_prefix placeholder %i to allow space
1151character.
1152- Fix --exclude-line options and removing of obsolete directory
1153when retention is enabled and --noreport is used.
1154- Fix typo in "vacuum activity table". Thanks to Nicolas Gollet for
1155the patch.
1156- Fix autovacuum report. Thanks to Nicolas Gollet for the patch.
1157- Fix author of pgbadger's logo - Damien Cazeils and English in
1158comments. Thanks to Thibaut Madelaine for the patch.
1159- Add information about pgbouncer log format in the -f option.
1160Thanks to clomdd for the report.
1161- Add --normalized-only information in documentation.
1162- Fix broken report of date-time introduced in previous patch.
1163- Fix duration/query association when log_duration=on and
1164log_statement=all. Thanks to Eric Jensen for the report.
1165- Fix normalization of messages about advisory lock. Thanks to
1166Thibaut Madelaine for the report.
1167- Fix report of auto_explain output. Thanks to fch77700 for the
1168report.
1169- Fix unwanted log format auto detection with log entry from stdin.
1170Thanks to Jesus Adolfo Parra for the report.
1171- Add left open parentheses to the "stop" chars of regex to look
1172for db client in the prefix to handle the PostgreSQL client
1173string format that includes source port. Thanks to Jon Nelson
1174for the patch.
1175- Fix some spelling errors. Thanks to Jon Nelson for the patch.
1176- Allow %c (session id) to replace %p (pid) as unique session id.
1177Thanks to Jerryliuk for the report.
1178- Allow pgbadger to parse default log_line_prefix that will be
1179probably used in 10.0: '%m [%p] '
1180- Fix missing first line with interpreter call.
1181- Fix missing Avg values in CSV report. Thanks to Yosuke Tomita
1182for the report.
1183- Fix error message in autodetect_format() method.
1184- Add --start-monday option to start calendar weeks in Monday
1185instead of default to Sunday. Thanks to Joosep Mae for the feature
1186request.
1187- Fix --histo-average option. Thanks to Yves Martin for the report.
1188- Remove plural form of --ssh-option in documentation. Thanks to
1189mark-a-s for the report.
1190- Fix --exclude-time filter and rewrite code to skip unwanted line
1191as well code to update the progress bar. Thanks to Michael
1192Chesterton for the report.
1193- Fix support to %r placeholder in prefix instead of %h.
1194
1195
11962016-09-02 - v9.0
1197
1198This major release of pgBadger is a port to bootstrap 3 and a version
1199upgrade of all resources files (CSS and Javascript). There's also some
1200bugs fixes and features enhancements.
1201
1202Backward compatibility with old incremental report might be preserved.
1203
1204- Sources and licences of resources files are now on a dedicated
1205subdirectory. A script to update their minified version embedded
1206in pgbager script has been added. Thanks to Christoph Berg for
1207the help and feature request.
1208
1209- Try to detect user/database/host from connection strings if
1210log_connection is enabled and log_line_prefix doesn't include
1211them.
1212
1213Extend the regex to autodetect database name, user name, client
1214ip address and application name. The regex now are the following:
1215
1216db => qr/(?:db|database)=([^,]*)/;
1217user => qr/(?:user|usr)=([^,]*)/;
1218client => qr/(?:client|remote|ip|host)=([^,]*)/;
1219appname => qr/(?:app|application)=([^,]*)/;
1220
1221- Add backward compatibility with older version of pgbadger in
1222incremental mode by creating a subdirectory for new CSS and
1223Javascript files. This subdirectory is named with the major
1224version number of pgbadger.
1225
1226- Increase the size of the pgbadger logo that appears too small
1227with the new font size.
1228
1229- Normalize detailed information in all reports.
1230
1231- Fix duplicate copy icon in locks report.
1232
1233- Fix missing chart on histogram of session time. Thanks to
1234Guillaume Lelarge for the report.
1235
1236- Add LICENSE file noting the licenses used by the resource
1237files. Thanks to Christoph Berg for the patch.
1238
1239- Add patch to jqplot library to fix an infinite loop when trying
1240to download some charts. Thanks to Julien Tachoires for the help
1241to solve this issue.
1242
1243- Script tools/updt_embedded_rsc.pl will apply the patch to resource
1244file resources/jquery.jqplot.js and doesn't complain if it has
1245already been applied.
1246
1247- Remove single last comma at end of pie chart dataset. Thanks to
1248Julien Tachoires for the report.
1249
1250- Change display of normalized error
1251
1252- Remove unused or auto-generated files
1253
1254- Update all resources files (js+css) and create a directory to
1255include source of javascript libraries used in pgbadger. There is
1256also a new script tools/updt_embedded_rsc.pl the can be used to
1257generate the minified version of those files and embedded them
1258into pgbadger. This script will also embedded the FontAwesome.otf
1259open truetype font into the fontawesome.css file.
1260
1261
12622016-08-27 - v8.3
1263
1264This is a maintenance release that fix some minor bugs. This release
1265also adds replication command messages statistics to the Events
1266reports.
1267
1268- Fix auto-detection of stderr format with timestamp as epoch (%n).
1269- Fix histogram over multiples days to be cumulative per hour, not
1270an average of the number of event per day.
1271- Fix parsing of remote file that was failing when the file does
1272not exists locally. Thanks to clomdd for the report.
1273- Detect timezones like GMT+3 on CSV logs. Thanks to jacksonfoz
1274for the patch.
1275- Add replication command messages statistics to the Events
1276reports. Thanks to Michael Paquier for the feature request.
1277
1278This is the last minor version of the 8.x series, next major version
1279will include an upgrade of boostrap and jquery library which need
1280some major rewrite.
1281
12822016-08-11 version 8.2
1283
1284This is a maintenance release that fix some minor bug. There is also
1285some performances improvement up to 20% on huge files and some new
1286interesting features:
1287
1288* Multiprocessing can be used with pgbouncer log files.
1289* pgBouncer and PostgreSQL log files can be used together in
1290incremental mode.
1291* With default or same prefix, stderr and syslog file can be
1292parsed together, csvlog format can always be used.
1293* Use a modal dialog window to download graphs as png images.
1294* Add pl/pgSQL function information to queries when available.
1295
1296Here are the complete list of changes:
1297
1298- Fix report of database system messages.
1299- Fix multi line statement concatenation after an error.
1300- Fix box size for report of queries generating the most
1301temporary files and the most waiting queries.
1302- Rewrite code to better handle multi-line queries.
1303- Fix garbage in examples of event queries with error only mode
1304(option -w). Thanks to Thomas Reiss for the report.
1305- Fix getting dataset related to query duration with the use of
1306auto_explain. Thanks to tom__b for the patch.
1307- Use a modal dialog window to download graphs as png images.
1308- Huge rewrite of the incremental mechanism applied to log files
1309to handle PostgreSQL and pgbouncer logs at the same time.
1310- Multiprocess can be used with pgbouncer log.
1311- Add code to remove remaining keyword placeholders tags.
1312- Fix an other possible case of truncated date in LAST_PARSED file
1313Thanks to brafaeloliveira for the report.
1314- Set default scale 1 in pretty_print_number() js function.
1315- Fix auto-detection of pgbouncer files that contain only stats
1316lines. Thanks to Glyn Astill for the patch.
1317- Add date to samples of queries generating most temporary files.
1318- Do not display warning message of empty log when quiet mode is
1319enable.
1320- Fix reading from stdin by disabling pgbouncer format detection.
1321Thanks to Robert Vargason for the patch.
1322- Fix case of duplicate normalized error message with "nonstandard
1323use of ...".
1324- Fix storage of current temporary file related request.
1325- Use the mnemonic rather than a signal number in kill calls.
1326Thanks to Komeda Shinji for the patch.
1327
13282016-04-21 version 8.1
1329
1330This is a maintenance release that fix a major issue introduced with
1331support to pgbouncer that prevent parsing of compressed PostgreSQL
1332log files and adds some improvements.
1333
1334Here are the complete list of changes:
1335
1336- Fix one case where pid file remain after dying.
1337- Add requirement of log_error_verbosity = default to documentation.
1338- Report message "LOG: using stale statistics instead of current
1339ones because stats collector is not responding" in events view.
1340- Remove obsolete days when we are in binary mode with --noreport
1341- Fix wrong report of statements responsible of temporary files.
1342Thanks to Luan Nicolini Marcondes for the report. This patch also
1343exclude line with log level LOCATION to be parsed.
1344- Fix limit on number of sample at report generation and remove
1345pending LAST_PARSED.tmp file.
1346- Update load_stat() function and global variables to support
1347pgbouncer statistics. Update version to 2.0.
1348- Handle more kind or query types. Thanks to julien Rouhaud for
1349the patch.
1350- Fix pgbouncer log parser to handle message: FATAL: the database
1351system is shutting down
1352- Fix whitespace placed in between the E and the quote character.
1353Thanks to clijunky for the report.
1354- Fix a major issue introduced with support to pgbouncer that
1355prevent parsing of compressed PostgreSQL log files. Thanks to
1356Levente Birta for the report.
1357
13582016-02-22 version 8.0
1359
1360This is a major release that adds support to pgbouncer log files.
1361New pgbouncer reports are:
1362
1363* Request Throughput
1364* Bytes I/O Throughput
1365* Average Query Duration
1366* Simultaneous sessions
1367* Histogram of sessions times
1368* Sessions per database
1369* Sessions per user
1370* Sessions per host
1371* Established connections
1372* Connections per database
1373* Connections per user
1374* Connections per host
1375* Most used reserved pools
1376* Most Frequent Errors/Events
1377
1378pgbouncer log files can be parsed together with PostgreSQL logs.
1379
1380It also adds a two new command line options:
1381
1382* --pgbouncer-only to only show pgbouncer related reports.
1383* --rebuild to be able to rebuild all html reports in incremental
1384output directory where binary data files are still available.
1385
1386This release fixes a major bug introduced with journalctl code that
1387was prevented the use of multiprocess feature.
1388
1389Here the complete list of other changes:
1390
1391- Fix progress bar with pgbouncer (only events are increased).
1392- Sort %SYMBOLE hashtable for remove "!=" / "=" bug. Thanks to
1393Nicolas Gollet for the patch.
1394- Fix incorrect numbers on positional parameters in report Queries
1395generating most temporary files. Thanks to Oskar Wiksten for the
1396report.
1397- Update operators list in SQL code beautifier with last update in
1398pgFormatter. Thanks to Laurenz Albe for the report and the list
1399of missing operators.
1400- Cosmetic change to code and add some more debug information.
1401
1402
14032016-01-18 version 7.3
1404
1405This is a maintenance release to fix a major bug that was breaking
1406the incremental mode in pgBadger. It also adds some more reports and
1407features.
1408
1409* Add --timezone=+/-HH to control the timezone used in charts. The
1410javascript library runs at client side so the timezone used is
1411the browser timezone so the displayed time in the charts can be
1412different from the time in the log file.
1413* Add /tmp/pgbadger.pid file to prevent cron jobs overlaping on
1414same log files.
1415* Add command line option --pid-dir to be able to run two pgbadger
1416at the same time by setting an alternate path to the pid file.
1417* Report information about "LOG: skipping analyze of ..." into
1418events reports.
1419* Report message "LOG: sending cancel to blocking autovacuum" into
1420events reports. Useful to look for queries generating autovacuum
1421kill on account of a lock issue.
1422
1423Here the complete list of changes:
1424
1425- Automatically remove obsolete pid file when there is no other
1426pgbadger process running (unix only)
1427- Update documentation about the --timezone command line option.
1428- Add --timezone=+/-HH to control the timezone used in charts.
1429Thanks to CZAirwolf for the report.
1430- Fix Histogram of session times when there is no data.
1431- Fix unclosed test file.
1432- Fix an other case where pgbadger.pid was not removed.
1433- Always display slides part on connections report even if there
1434is no data.
1435- Fix some label on sessions reports
1436- Add remove of pid file at normal ending.
1437- Fix wrong size/offset of log files that was breaking incremental
1438mode. Thanks a lot to CZAirwolf for the report and the help to
1439find the problem.
1440- Add command line option --pid-dir to be able to run two pgbadger
1441at the same time by setting an alternate path to the directory
1442where the pid file will be written.
1443- Add /tmp/pgbadger.pid file to prevent cron jobs overlaping on same
1444log files.
1445- Report information about "LOG: skipping analyze of ..." into
1446events reports.
1447- Report message "LOG: sending cancel to blocking autovacuum" into
1448events reports. Usefull to know which queries generate autovacuum
1449kill on account of a lock issue.
1450- Add more debug information about check log parsing decision.
1451
14522016-01-05 version 7.2
1453
1454This new release fixes some issues especially in temporary files
1455reports and adds some features.
1456
1457* Allow pgBadger to parse natively the journalctl command output
1458* Add new keywords from PG 9.5 for code formating
1459* Add support to %n log_line_prefix option for Unix epoch (PG 9.6)
1460
1461There's also some new command line option:
1462
1463* Adds --journalctl_cmd option to enable this functionality and
1464set the command. Typically:
1465
1466--journalctl_cmd "journalctl -u postgresql-9.4"
1467
1468to parse output of PG 9.4 log
1469
1470Here is the full list of changes/fixes:
1471
1472- Fix missing detailed information (date, db, etc.) in Queries
1473generating the largest temporary files report.
1474- Fix label of sessions histogram. Thanks to Guillaume Lelarge
1475for the patch.
1476- Fix to handle cancelled query that generate more than one
1477temporary file and more generally aggregate size on queries with
1478multiple (> 1GB) temporary files.
1479- Add "Total size" column in Temporary Files Activity table and
1480fix size increment when a query have multiple 1GB temporary file.
1481- Fix temporary file query normalization and examples.
1482- Fix incomplete and wrong queries associated to temporary files
1483when STATEMENT level log line was missing. Thanks to Mael
1484Rimbault for the report.
1485- When -w or --watch-mode is used, message "canceling statement
1486due to statement timeout" s now reported with other errors.
1487- Allow dot in dbname and user name. Thanks to David Turvey for
1488the patch.
1489- Remove use of unmaintained flotr2 javascript chart library and
1490use of jqflot instead.
1491- Fix bad formatting with anonymized values in queries.
1492- Display 0ms instead of 0s when qery time is under the millisecond.
1493Thanks to venkatabn for the report.
1494- Normalize cursor names. Patch from Julien Rouhaud
1495- Fix unregistered client host name with default pattern. Thanks to
1496Eric S. Lucinger Ruiz for the report.
1497- Remove redundant regular expressions.
1498- Tweaking awkward phrasing, correcting subject-verb agreements,
1499typos, and misspellings. Patch from Josh Kupershmid.
1500- Fix potential incorrect creation of subdirectory in incremental mode.
1501- Allow single white space after duration even if this should not appear.
1502- Update copyright.
1503
1504
15052015-07-11 version 7.1
1506
1507This new release fixes some issues and adds a new report:
1508
1509* Distribution of sessions per application
1510
1511It also adds Json operators to SQL Beautifier.
1512
1513Here is the full list of changes/fixes:
1514
1515- Fix unwanted seek on old parsing position when log entry is stdin.
1516Thanks to Olivier Schiavo for the report.
1517- Try to fix a potential issue in log start/end date parsing. Thanks
1518to gityerhubhere for the report.
1519- Fix broken queries with multiline in bind parameters. Thank to
1520Nicolas Thauvin for the report.
1521- Add new report Sessions per application. Thanks to Keith Fiske for
1522the feature request.
1523- Add Json Operators to SQL Beautifier. Thanks to Tom Burnett and
1524Hubert depesz Lubaczewski.
1525- Makefile.PL: changed manpage section from '1' to '1p', fixes #237.
1526Thanks to Cyril Bouthors for the patch.
1527- Update Copyright date-range and installation instructions that was
1528still refering to version 5. Thanks to Steve Crawford for the report.
1529- Fix typo in changelog
1530
1531Note that new official releases must now be downloaded from GitHub and no more
1532from SourceForge. Download at https://github.com/dalibo/pgbadger/releases
1533
15342015-05-08 version 7.0
1535
1536This major release adds some more useful reports and features.
1537
1538* New report about events distribution per 5 minutes.
1539* New per application details (total duration and times executed) for each
1540query reported in Top Queries reports. The details are visible from a new
1541button called "App(s) involved".
1542* Add support to auto_explain extension. EXPLAIN plan will be added together
1543with top slowest queries when available in log file.
1544* Add a link to automatically open the explain plan on http://explain.depesz.com/
1545* New report on queries cumulated durations per user.
1546* New report about the Number of cancelled queries (graph)
1547* New report about Queries generating the most cancellation (N)
1548* New report about Queries most cancelled.
1549
1550Here is the full list of changes/fixes:
1551
1552- Update documentation with last reports.
1553- Fix number of event samples displayed in event reports.
1554- Add new report about events distribution per x minutes.
1555- Add app=%a default prefix to documentation.
1556- Add reports of "App(s) involved" with top queries. Thanks to Antti Koivisto
1557for the feature request.
1558- Remove newline between a ) and , in the beautifier.
1559- Add link to automatically open the explain plan on http://explain.depesz.com/
1560- Add support to auto_explain, EXPLAIN plan will be added together with top
1561slowest queries when available in the log file.
1562- Add a graph on distributed duration per user. Thanks to Korriliam for the
1563patch.
1564- Add tree new report: Number of cancelled queries (graph), Queries generating
1565the most cancellation (N) and Queries most cancelled lists. Thanks to Thomas
1566Reiss for the feature request.
1567- Fix case where temporary file statement must be retrieved from the previous
1568LOG statement and not in the following STATEMENT log entry. Thanks to Mael
1569Rimbault for the report.
1570- Add --enable-checksum to show a md5 hash of each reported queries. Thanks
1571to Thomas Reiss for the feature request.
1572
15732015-04-13 version 6.4
1574
1575This new release fixes a major bugs in SQL beautifier which removed operator
1576and adds some useful improvement in anonymization of parameters values.
1577pgBadger will also try to parse the full csvlog when a broken CSV line is
1578encountered.
1579
1580- Make anonymization more useful. Thanks to Hubert depesz Lubaczewski
1581for the patch.
1582- Fix previous patch for csvlog generated with a PostgreSQL version
1583before 9.0.
1584- Try continue CSV parsing after broken CSV line. Thanks to Sergey
1585Burladyan for the patch.
1586- Fix bug in SQL beautifier which removed operator. Thanks to Thomas
1587Reiss for the report.
1588- Fix loop exit, check terminate quickly and correct comments
1589indentation. Thanks to Sergey Burladyan for the patch
1590
1591Please upgrade.
1592
15932015-03-27 version 6.3
1594
1595This new release fixes some bugs and adds some new reports:
1596
1597* A new per user details (total duration and times executed) for each query
1598reported in Top Queries reports. The details are visible from a new button
1599called "User(s) involved".
1600* Add "Average queries per session" and "Average queries duration per session"
1601in Sessions tab of the Global statistics.
1602* Add connection time histogram.
1603* Use bar graph for Histogram of query times and sessions times.
1604
1605There's also some cool new features and options:
1606
1607* Add -L | --logfile-list option to read a list of logfiles from an external
1608file.
1609* Add support to log_timezones with + and - signs for timestamp with
1610milliseconds (%m).
1611* Add --noreport option to instruct pgbadger to not build any HTML reports
1612in incremental mode. pgBadger will only create binary files.
1613* Add auto detection of client=%h or remote=%h from the log so that adding
1614a prefix is not needed when it respect the default of pgbadger.
1615* Redefine sessions duration histogram bound to be more accurate.
1616* Add new option -M | --no-multiline to not collect multi-line statement
1617and avoid storing and reporting garbage when needed.
1618* Add --log-duration option to force pgbadger to associate log entries
1619generated by both log_duration=on and log_statement=all.
1620
1621The pgbadger_tools script have also been improve with new features:
1622
1623* Add a new tool to pgbadger_tool to output top queries in CSV format for
1624follow-up analysis.
1625* Add --explain-time-consuming and --explain-normalized options to generate
1626explain statement about top time consuming and top normalized slowest
1627queries.
1628
1629Here is the full list of changes/fixes:
1630
1631- Update flotr2.min.js to latest github code.
1632- Add per user detail information (total duration and times executed)
1633for each query reported in "Time consuming queries", "Most frequent
1634queries" "and Normalized slowest queries". The details are visible
1635from a new button called "User(s) involved" near the "Examples"
1636button. Thanks to Guillaume Le Bihan for the patch and tsn77130 for
1637the feature request.
1638- pgbadger_tool: add tool to output top queries to CSV format, for
1639follow-up analysis. Thanks to briklen for the patch.
1640- Add geometric operators to SQL beautifier. Thanks to Rodolphe
1641Quiedeville for the report.
1642- Fix non closing session when a process crash with message:
1643"terminating connection because of crash of another server process".
1644Thanks to Mael Rimbault for the report.
1645- Add -L|--logfile-list command line option to read a list of logfiles
1646from a file. Thanks to Hubert depesz Lubaczewski for the feature
1647request.
1648- Automatically remove %q from prefix. Thanks to mbecroft for report.
1649- Do not store DEALLOCATE log entries anymore.
1650- Fix queries histogram where range was not appears in the right order.
1651Thanks to Grzegorz Garlewicz for the report.
1652- Fix min yaxis in histogram graph. Thanks to grzeg1 for the patch.
1653- Add --log-duration command line option to force pgbadger to associate
1654log entries generated by both log_duration = on and log_statement=all.
1655Thanks to grzeg1 for the feature request.
1656- Small typographical corrections. Thanks to Jefferson Queiroz Venerando
1657and Bill Mitchell the patches.
1658- Reformat usage output and add explanation of the --noreport command
1659line option.
1660- Fix documentation about minimal pattern in custom log format. Thanks
1661to Julien Rouhaud for the suggestion.
1662- Add support to log_timezones with + and - signs to timestamp with
1663milliseconds (%m). Thanks to jacksonfoz for the patch.
1664pgbadger was not recognize log files with timezones like 'GMT+3'.
1665- Add --noreport command line option to instruct pgbadger to not build
1666any reports in incremental mode. pgBadger will only create binary
1667files. Thanks to hubert Depesz Lubaczewski for the feature request.
1668- Add time consuming information in tables of Queries per database...
1669Thanks to Thomas for the feature request.
1670- Add more details about the CSV parser error. It now prints the line
1671number and the last parameter that generate the failure. This should
1672allow to see the malformed log entry.
1673- Change substitution markup in attempt to fix a new look-behind
1674assertions error. Thanks to Paolo Cavallini for the report.
1675- Use bar graph for Histogram of query times and sessions times.
1676- Fix wrong count of min/max queries per second. Thanks to Guillaume
1677Lelarge for the report. Add COPY statement to SELECT or INSERT
1678statements statistics following the copy direction (stdin or stdout).
1679- Fix Illegal division by zero at line 3832. Thanks to MarcoTrek for
1680the report.
1681- Add "Average queries per session" and "Average queries duration per
1682session" in Sessions tab of the Global stat. Thanks to Guillaume
1683Lelarge for the feature request.
1684- Reformat numbers in pie graph tracker. Thanks to jirihlinka for the
1685report.
1686- pgbadger_tools: Add --explain-time-consuming and --explain-normalized
1687to generate explain statement about top time consuming and top
1688normalized slowest queries. Thanks to Josh Kupershmid fot the feature
1689request.
1690- Remove everything than error information from json output when -w |
1691--watch-mode is enable. Thanks to jason.
1692- Fix undefined subroutine encode_json when using -x json. Thanks to
1693jason for the report.
1694- Add auto detection of client=%h or remote=%h from the log so that
1695adding a prefix is not needed when it respect the default of pgbadger.
1696- Redefine sessions duration histogram bound to be more accurate. Thanks
1697to Guillaume Lelarge for the report.
1698- Add connection time histogram. Thanks to Guillaume Lelarge for the
1699feature request.
1700- Add new option -M | --no-multiline to not collect multi-line statement
1701to avoid garbage especially on errors that generate a huge report.
1702- Do not return SUCCESS error code 0 when aborted or something fails.
1703Thanks to Bruno Almeida for the patch.
1704
17052014-10-07 version 6.2
1706
1707This is a maintenance release to fix a regression in SQL traffic graphs and
1708fix some other minor issues.
1709
1710The release also add a new option -D or --dns-resolv to map client ip addresses
1711to FQDN without having log_hostname enabled on the postgresql's configuration
1712
1713- Do not display queries in Slowest individual, Time consuming and
1714Normalized slowest queries reports when there is no duration in
1715log file. Display NO DATASET instead.
1716- Fix min/max queries in SQL traffic that was based on duration instead
1717of query count.
1718- Fix wrong unit to Synced files in Checkpoints files report. Thanks
1719to Levente Birta for the report.
1720- Enable allow_loose_quotes in Text::CSV_XS call to fix CSV parsing
1721error when fields have quote inside an unquoted field. Thanks to
1722Josh Berkus for the report.
1723- Add -D | --dns-resolv command line option to replace ip addresses
1724by their DNS name. Be warned that this can slow down pgBagder a lot.
1725Thanks to Jiri Hlinka for the feature request.
1726
17272014-09-25 version 6.1
1728
1729This release fix some issues and adds some new features. It adds a new option
1730-B or --bar-graph to use bar instead of line in graphs. It will also keep tick
1731formatting when zooming.
1732
1733The release also add a new program: pgbadger_tools to demonstrate how to
1734works with pgBadger binary files to build your own new feature. The first
1735tools 'explain-slowest' allow printing of top slowest queries as EXPLAIN
1736statements. There's also additional options to execute automatically the
1737statements with EXPLAIN ANALYZE and get the execution plan. See help of the
1738program for more information or the README file in the tools directory.
1739
1740Some modifications will change certain behavior:
1741
1742- The -T | --title text value will now be displayed instead of the
1743pgBadger label right after the logo. It was previously displayed
1744on mouse over the pgBadger label.
1745
1746Here is the full list of changes/fixes:
1747
1748- Change -T | --title position on pgBadger report. Title now override
1749the pgBadger label. Thanks to Julien Rouhauld for the patch.
1750- Add --file-per-query and --format-query option to write each slowest
1751query in separate file named qryXXX.sql and perform minimal formating
1752of the queries. Thanks to Rodolphe Quiedeville for the patch.
1753- Remove debug query from explain-slowest tool.
1754- Fix surge in sessions number report when an exclusion or inclusion
1755option (dbname, user, appname, etc.) is used. Thanks to suyah for the
1756report.
1757- Fix fatal error when remote log file is 0 size. Thanks to Julien
1758Rouhaud for the report.
1759- Allow pgbadger_tools --explain-slowest to automatically execute the
1760EXPLAIN statements an report the plan. See pgbadger_tools --help for
1761more explanation.
1762- Add --analyze option to replace EXPLAIN statements by EXPLAIN
1763(ANALYZE, VERBOSE, BUFFERS).
1764- Move pgbadger_tools program and README.tools into the tools/
1765subdirectory with removing the extension. Add more comments and
1766explanations.
1767- Fix case where die with interrupt signal is received when using -e
1768option. Thanks to Lloyd Albin for the report.
1769- Add a new program pgbadger_tools to demonstrate how to deal with
1770pgBadger binary files to build your own new feature. The first one
1771'explain-slowest' allow printing of top slowest queries as EXPLAIN
1772statements.
1773- Keep tick formatting when zooming. Thanks to Julien Rouhaud for the
1774patch.
1775- Fix automatic detection of rsyslogd logs. Thanks to David Day for
1776the report.
1777- Fix issue in calculating min/max/avg in "General Activity" report. It
1778was build on the sum of queries duration per minutes instead of each
1779duration. Thanks to Jayadevan M for the report.
1780- The same issue remains with percentile that are build using the sum of
1781duration per minutes and doesn't represent the real queries duration.
1782- This commit also include a modification in convert_time() method to
1783reports milliseconds.
1784- Add -B or --bar-graph command line option to use bar instead of line
1785in graph. Thanks to Bart Dopheide for the suggestion.
1786- Fix Checkpoint Wal files usage graph title.
1787
17882014-08-08 version 6.0
1789
1790This new major release adds some new features like automatic cleanup of binary
1791files in incremental mode or maximum number of weeks for reports retention.
1792It improve the incremental mode with allowing the use of multiprocessing with
1793multiple log file.
1794
1795It also adds report of query latency percentile on the general activity table
1796(percentiles are 90, 95, 99).
1797
1798There's also a new output format: JSON. This format is good for sharing data
1799with other languages, which makes it easy to integrate pgBadger's result into
1800other monitoring tools.
1801
1802You may want to expose your reports but not the data, using the --anonymize
1803option pgBadger will be able to anonymize all literal values in the queries.
1804
1805Sometime select to copy a query from the report could be a pain. There's now
1806a click-to-select button in front of each query that allow you to just use
1807Ctrl+C to copy it on clipboard
1808
1809The use of the new -X option also allow pgBadger to write out extra files to
1810the outdir when creating incremental reports. Those files are the CSS and
1811Javascript code normally repeated in each HTLM files.
1812
1813Warning: the behavior of pgBadger in incremental mode has changed. It will now
1814always cleanup the output directory of all the obsolete binary file. If you were
1815using those files to build your own reports, you can prevent pgBadger to remove
1816them by using the --noclean option. Note that if you use the retention feature,
1817all those files in obsolete directories will be removed too.
1818
1819Here is the complete list of changes.
1820
1821
1822- Javascript improvement to use only one call of sql_select and
1823sql_format. Use jQuery selector instead of getElementById to
1824avoid js errors when not found. Thanks to Julien Rouhaud for the
1825patches.
1826- Add -R | --retention command line option to set the maximum number of
1827week reports to preserve in the output directory for incremental mode.
1828Thanks to Kong Man for the feature request.
1829- Session count is immediately decreased when a FATAL error is received
1830in the current session to prevent overcount of simultaneous session
1831number. Thanks to Josh Berkus for the report.
1832- Fix issue in incremental mode when parsing is stopped after rotating
1833log and rotated log has new lines. The new file was not parsed at all.
1834Thanks to CZAirwolf for the report.
1835- Fix revert to single thread when last_line_parsed exists. Thanks to
1836Bruno Almeida for the report.
1837- Fix issue in handling SIGTERM/SIGINT that cause pgbadger to continue.
1838- Add autoclean feature to pgbadger in incremental mode. pgbadger will
1839now removed automatically obsolete binary files unless you specify
1840--noclean at command line.
1841- Add new command line option --anonymize to obscure all literals in
1842queries/errors to hide confidential data. Thanks to wmorancfi for the
1843feature request.
1844- Fix single "SELECT;" as a query in a report. Thanks to Marc Cousin for
1845the report.
1846- Add a copy icon in front of each query in the report to select the
1847entire query. Thanks to Josh Berkus for the feature request.
1848- Fix wrong move to beginning of a file if the file was modified after
1849have been parsed a time. Thanks to Herve Werner for the report.
1850- Allow pgBadger to write out extra files to outdir when creating
1851incremental reports. Require the use of the -X or --extra-files option
1852in incremental mode. Thanks to Matthew Musgrove for the feature request.
1853- Fix incomplete handling of XZ compressed format.
1854- Fix move to offset in incremental mode with multiprocess and incomplete
1855condition when file is smaller than the last offset. Thanks to Herve
1856Werner for the report.
1857- Allow/improve incremental mode with multiple log file and multiprocess.
1858- Fix incorrect location of temporary file storing last parsed line in
1859multiprocess+incremental mode. Thanks to Herve Werner for the report.
1860- Fix remote ssh command error sh: 2: Syntax error: "|" unexpected.
1861Thanks to Herve Werner for the report.
1862- Fix missing database name in samples of top queries reports. Thanks to
1863Thomas Reiss for the report.
1864- Add minimal documentation about JSON output format.
1865- Add execute attribute to pgbadger in the source repository, some may
1866find this more helpful when pgbadger is not installed and executed
1867directly from this repository.
1868- Fix issue with csv log format and incremental mode. Thanks to Suya for
1869the report and the help to solve the issue. There also a fix to support
1870autovacuum statistic with csv format.
1871- Fix bad URL to documentation. Thanks to Rodolphe Quiedeville for the report.
1872- Two minor change to made easier to use Tsung scenario: Remove the first
1873empty line and replace probability by weight. Now it is possible to use
1874the scenario as is with Tsung 1.5.
1875- Fix incremental mode where weeks on index page start on sunday and week
1876reports start on monday. Thanks to flopma and birkosan for the report.
1877- Replace label "More CPU costly" by "Highest CPU-cost". Thanks to Marc
1878Cousin for the suggestion.
1879- Add query latency percentile to General Activity table (percentiles are
188090, 95, 99). Thanks to Himanchali for the patch.
1881- Fix typon pgbadger call. Thanks to Guilhem Rambal for the report.
1882- Add JSON support for output format. JSON format is good for sharing data
1883with other languages, which makes it easy to integrate pgBadger's result
1884into other monitoring tools like Cacti or Graphite. Thanks to Shanzhang
1885Lan for the patch.
1886- Update documentation about remote mode feature.
1887- Update documentation to inform that the xz utility should be at least in
1888version 5.05 to support the --robot command line option. Thanks to Xavier
1889Millies-Lacroix for the report.
1890- Fix remote logfile parsing. Thanks to Herve Werner for the report.
1891
18922014-05-05 version 5.1-1
1893
1894- Fix parsing of remote log file, forgot to apply some patches.
1895Thank to Herve Werner for the report.
1896
18972014-05-04 version 5.1
1898
1899This new release fixes several issues and adds several new features like:
1900
1901* Support to named PREPARE and EXECUTE queries. They are replaced by
1902the real prepare statement and reported into top queries.
1903* Add new --exclude-line command line option for excluding immediately
1904log entries matching any regex.
1905* Included remote and client information into the most frequent events.
1906* pgBadger is now able to parse remote logfiles using a password less
1907ssh connection and generate locally the reports.
1908* Histogram granularity can be adjusted using the -A command line option.
1909* Add new detail information on top queries to show when the query is a
1910bind query.
1911* Support to logfile compressed using the xz compression format.
1912* Change week/day menu in incremental index, it is now represented as
1913usual with a calendar view per month.
1914* Fix various compatibility issue with Windows and Perl 5.8
1915
1916Here is the full list of changes:
1917
1918- fixed calendar display and correct typo. Thanks to brunomgalmeida
1919for the patch.
1920- revert to single thread if file is small. Thanks to brunomgalmeida
1921for the patch.
1922- print calendars 4+4+4 instead of 3+4+4+1 when looking at full year.
1923Thanks to brunomgalmeida for the patch.
1924- Add --exclude-line option for excluding log entries with a regex based
1925on the full log line. Thanks to ferfebles for the feature request.
1926- Fix SQL keywords that was beautified twice.
1927- Remove duplicate pg_keyword in SQL beautifier.
1928- Fix increment of session when --disable-session is activated.
1929- Fix missing unit in Checkpoints Activity report when time value is
1930empty. Thanks to Herve Werner for the report.
1931- Fix double information in histogram data when period is the hour.
1932- Add support to named PREPARE and EXECUTE queries. Calls to EXECUTE
1933statements are now replaced by the prepared query and show samples
1934with parameters. Thanks to Brian DeRocher for the feature request.
1935- Included Remote and Client information into the most frequent events
1936examples. Thanks to brunomgalmeida for the patch.
1937- Fix documentation about various awkward phrasings, grammar, and
1938spelling. Consistently capitalize "pgBadger" as such, except for
1939command examples which should stay all-lowercase. Thanks to Josh
1940Kupershmidt for the patch.
1941- Fix incremental mode on Windows by replacing %F and %u POSIX::strftime
1942format to %Y-%m-%d and %w. Thanks to dthiery for the report.
1943- Remove Examples button when there is no examples available.
1944- Fix label on tips in histogram of errors reports.
1945- Fix error details in incremental mode in Most Frequent Errors/Events
1946report. Thanks to Herve Werner for the report.
1947- Fix Sync time value in Checkpoints buffers report. Thanks to Herve
1948Werner for the report.
1949- Fix wrong connections per host count. Thanks to Herve Werner for the
1950report.
1951- Allow pgBadger to parse remote log file using a password less ssh
1952connection. Thanks to Orange OLPS department for the feature request.
1953- Histogram granularity can be adjusted using the -A command line
1954option. By default they will report the mean of each top queries or
1955errors occurring per hour. You can now specify the granularity down to
1956the minute. Thanks to Orange OLPS department for the feature request.
1957- Add new detail information on top queries to show when the query is
1958a bind query. Thanks to Orange OLPS department for the feature request.
1959- Fix queries that exceed the size of the container.
1960- Add unit (seconds) to checkpoint write/sync time in the checkpoints
1961activity report. Thanks to Orange OLPS department for the report.
1962- Fix missing -J option in usage.
1963- Fix incomplete lines in split logfile to rewind to the beginning of
1964the line. Thanks to brunomgalmeida for the patch.
1965- Fix tsung output and add tsung xml header sample to output file.
1966- Make it possible to do --sample 0 (prior it was falling back to the
1967default of 3). Thanks to William Moran for the patch.
1968- Fix xz command to be script readable and always have size in bytes:
1969xz --robot -l %f | grep totals | awk "{print $5}"
1970- Add support to logfile compressed by the xz compression format.
1971Thanks to Adrien Nayrat for the patch.
1972- Do not increment queries duration histogram when prepare|parse|bind
1973log are found, but only with execute log. Thanks to Josh Berkus for
1974the report.
1975- Fix normalization of error message about unique violation when
1976creating intermediate dirs. Thanks to Tim Sampson for the report.
1977- Allow use of Perl metacharacters like [..] in application name.
1978Thanks to Magnus Persson for the report.
1979- Fix dataset tip to be displayed above image control button. Thanks
1980to Ronan Dunklau for the fix.
1981- Renamed the Reset bouton to "To Chart" to avoid confusion with unzoom
1982feature.
1983- Fix writing of empty incremental last parsed file.
1984- Fix several other graphs
1985- Fix additional message at end of query or error when it was logged
1986from application output. Thanks to Herve Werner for the report.
1987- Fix checkpoint and vacuum graphs when all dataset does not have all
1988values. Thanks to Herve Werner for the report.
1989- Fix week numbered -1 in calendar view.
1990- Change week/day menu in incremental index, it is now represented as
1991usual with a calendar view per month. Thanks to Thom Brown for the
1992feature request.
1993- Load FileHandle to fix error: Can not locate object method "seek"
1994via package "IO::Handle" with perl 5.8. Thanks to hkrizek for the
1995report.
1996- Fix count of queries in progress bar when there is compressed file
1997and multiprocess is enabled. Thanks to Johnny Tan for the report.
1998- Fix debug message "Start parsing at offset"
1999- Add ordering in queries times histogram. Thanks to Ulf Renman for
2000the report.
2001- Fix various typos. Thanks to Thom Brown for the patch.
2002- Fix Makefile error, "WriteMakefile: Need even number of args at
2003Makefile.PL" with Perl 5.8. Thanks to Fangr Zhang for the report.
2004- Fix some typo in Changelog
2005
20062014-02-05 version 5.0
2007
2008This new major release adds some new features like incremental mode and SQL
2009queries times histogram. There is also a hourly graphic representation of the
2010count and average duration of top normalized queries. Same for errors or events,
2011you will be able to see graphically at which hours they are occurring the most
2012often.
2013
2014The incremental mode is an old request issued at PgCon Ottawa 2012 that concern
2015the ability to construct incremental reports with successive runs of pgBadger.
2016It is now possible to run pgbadger each days or even more, each hours, and have
2017cumulative reports per day and per week. A top index page allow you to go
2018directly to the weekly and daily reports.
2019
2020This mode have been build with simplicity in mind so running pgbadger by cron
2021as follow:
2022
20230 23 * * * pgbadger -q -I -O /var/www/pgbadger/ /var/log/postgresql.log
2024
2025is enough to have daily and weekly reports viewable using your browser.
2026
2027You can take a look at a sample report at http://dalibo.github.io/pgbadger/demov5/index.html
2028
2029There's also a useful improvement to allow pgBadger to seek directly to the
2030last position in the same log file after a successive execution. This feature
2031is only available using the incremental mode or the -l option and parsing a
2032single log file. Let's say you have a weekly rotated log file and want to run
2033pgBadger each days. With 2GB of log per day, pgbadger was spending 5 minutes
2034per block of 2 GB to reach the last position in the log, so at the end of the
2035week this feature will save you 35 minutes. Now pgBadger will start parsing
2036new log entries immediately. This feature is compatible with the multiprocess
2037mode using -j option (n processes for one log file).
2038
2039Histogram of query times is a new report in top queries slide that shows the
2040query times distribution during the analyzed period. For example:
2041
2042Range Count Percentage
2043--------------------------------------------
20440-1ms 10,367,313 53.52%
20451-5ms 799,883 4.13%
20465-10ms 451,646 2.33%
204710-25ms 2,965,883 15.31%
204825-50ms 4,510,258 23.28%
204950-100ms 180,975 0.93%
2050100-500ms 87,613 0.45%
2051500-1000ms 5,856 0.03%
20521000-10000ms 2,697 0.01%
2053> 10000ms 74 0.00%
2054
2055
2056There is also some graphic and report improvements, like the mouse tracker
2057formatting that have been reviewed. It now shows a vertical crosshair and
2058all dataset values at a time when mouse pointer moves over series. Automatic
2059queries formatting has also been changed, it is now done on double click
2060event as simple click was painful when you want to copy some part of the
2061queries.
2062
2063The report "Simultaneous Connections" has been relabeled into "Established
2064Connections", it is less confusing as many people think that this is the number
2065of simultaneous sessions, which is not the case. It only count the number of
2066connections established at same time.
2067
2068Autovacuum reports now associate database name to the autovacuum and autoanalyze
2069entries. Statistics now refer to "dbname.schema.table", previous versions was only
2070showing the pair "schema.table".
2071
2072This release also adds Session peak information and a report about Simultaneous
2073sessions. Parameters log_connections and log_disconnections must be enabled in
2074postgresql.conf.
2075
2076Complete ChangeLog:
2077
2078- Fix size of SQL queries columns to prevent exceeding screen width.
2079- Add new histogram reports on top normalized queries and top errors
2080or event. It shows at what hours and in which quantity the queries
2081or errors appears.
2082- Add seeking to last parser position in log file in incremental mode.
2083This prevent parsing all the file to find the last line parse from
2084previous run. This only works when parsing a single flat file, -j
2085option is permitted. Thanks to ioguix for the kick.
2086- Rewrite reloading of last log time from binary files.
2087- Fix missing statistics of last parsed queries in incremental mode.
2088- Fix bug in incremental mode that prevent reindexing a previous day.
2089Thanks to Martin Prochazka for the great help.
2090- Fix missing label "Avg duration" on column header in details of Most
2091frequent queries (N).
2092- Add vertical crosshair on graph.
2093- Fix case where queries and events was not updated when using -b and
2094-e command line. Thanks to Nicolas Thauvin for the report.
2095- Fix week sorting on incremental report main index page. Thanks to
2096Martin Prochazka for the report.
2097- Add "Histogram of query times" report to show statistics like
20980-100ms : 80%, 100-500ms :14%, 500-1000ms : 3%, > 1000ms : 1%.
2099Thanks to tmihail for the feature request.
2100- Format mouse tracker on graphs to show all dataset value at a time.
2101- Add control of -o vs -O option with incremental mode to prevent
2102wrong use.
2103- Change log level of missing LAST_PARSED.tmp file to WARNING and
2104add a HINT.
2105- Update copyright date to 2014
2106- Fix empty reports of connections. Thanks to Reeshna Ramakrishnan
2107for the report.
2108- Fix display of connections peak when no connection was reported.
2109- Fix warning on META_MERGE for ExtUtils::MakeMaker < 6.46. Thanks
2110to Julien Rouhaud for the patch.
2111- Add documentation about automatic incremental mode.
2112- Add incremental mode to pgBadger. This mode will build a report
2113per day and a cumulative report per week. It also create an index
2114interface to easiest access to the different report. Must be run,
2115for example, as:
2116pgbadger /var/log/postgresql.log.1 -I -O /var/www/pgbadger/
2117after a daily PostgreSQL log file rotation.
2118- Add -O | --outdir path to specify the directory where out file
2119must be saved.
2120- Automatic queries formatting is now done on double click event,
2121simple click was painful when you want to copy some part of the
2122queries. Thanks to Guillaume Smet for the feature request.
2123- Remove calls of binmode to force html file output to be utf8 as
2124there is some bad side effect. Thanks to akorotkov for the report.
2125- Remove use of Time::HiRes Perl module as some distributions does
2126not include this module by default in core Perl install.
2127- Fix "Wide character in print" Perl message by setting binmode
2128to :utf8. Thanks to Casey Allen Shobe for the report.
2129- Fix application name search regex to handle application name with
2130space like "pgAdmin III - Query Tool".
2131- Fix wrong timestamps saved with top queries. Thanks to Herve Werner
2132for the report.
2133- Fix missing logs types statitics when using binary mode. Thanks to
2134Herve Werner for the report.
2135- Fix Queries by application table column header: Database replaced
2136by Application. Thanks to Herve Werner for the report.
2137- Add "Max number of times the same event was reported" report in
2138Global stats Events tab.
2139- Replace "Number of errors" by "Number of ERROR entries" and add
2140"Number of FATAL entries".
2141- Replace "Number of errors" by "Number of events" and "Total errors
2142found" by "Total events found" in Events reports. Thanks to Herve
2143Werner for the report.
2144- Fix title error in Sessions per database.
2145- Fix clicking on the info link to not go back to the top of the page.
2146Thanks to Guillaume Smet for the report and solution.
2147- Fix incremental report from binary output where binary data was not
2148loaded if no queries were present in log file. Thanks to Herve Werner
2149for the report.
2150- Fix parsing issue when log_error_verbosity = verbose. Thanks to vorko
2151for the report.
2152- Add Session peak information and a report about Simultaneous sessions.
2153log_connections+log_disconnections must be enabled in postgresql.conf.
2154- Fix wrong requests number in Queries by user and by host. Thanks to
2155Jehan-Guillaume de Rorthais for the report.
2156- Fix issue with rsyslog format failing to parse logs. Thanks to Tim
2157Sampson for the report.
2158- Associate autovacuum and autoanalyze log entry to the corresponding
2159database name. Thanks to Herve Werner for the feature request.
2160- Change "Simultaneous Connections" label into "Established Connections",
2161it is less confusing as many people think that this is the number of
2162simultaneous sessions, which is not the case. It only count the number
2163of connections established at same time. Thanks to Ronan Dunklau for
2164the report.
2165
21662013-11-08 version 4.1
2167
2168This release fixes two major bugs and some others minor issues. There's also a
2169new command line option --exclude-appname that allow exclusion from the report
2170of queries generated by a specific program, like pg_dump. Documentation have
2171been updated with a new chapter about building incremental reports.
2172
2173- Add log_autovacuum_min_duration into documentation in chapter about
2174postgresql configuration directives. Thanks to Herve Werner for the
2175report.
2176- Add chapter about "Incremental reports" into documentation.
2177- Fix reports with per minutes average where last time fraction was
2178not reported. Thanks to Ludovic Levesque and Vincent Laborie for the
2179report.
2180- Fix unterminated comment in information popup. Thanks to Ronan
2181Dunklau for the patch.
2182- Add --exclude-appname command line option to eliminate unwanted
2183traffic generated by a specific application. Thanks to Steve Crawford
2184for the feature request.
2185- Allow external links use into URL to go to a specific report. Thanks
2186to Hubert depesz Lubaczewski for the feature request.
2187- Fix empty reports when parsing compressed files with the -j option
2188which is not allowed with compressed file. Thanks to Vincent Laborie
2189for the report.
2190- Prevent progress bar length to increase after 100% when real size is
2191greater than estimated size (issue found with huge compressed file).
2192- Correct some spelling and grammar in ChangeLog and pgbadger. Thanks
2193to Thom Brown for the patch.
2194- Fix major bug on SQL traffic reports with wrong min value and bad
2195average value on select reports, add min/max for select queries.
2196Thanks to Vincent Laborie for the report.
2197
21982013-10-31 - Version 4.0
2199
2200This major release is the "Say goodbye to the fouine" release. With a full
2201rewrite of the reports design, pgBadger has now turned the HTML reports into
2202a more intuitive user experience and professional look.
2203
2204The report is now driven by a dynamic menu with the help of the embedded
2205Bootstrap library. Every main menu corresponds to a hidden slide that is
2206revealed when the menu or one of its submenus is activated. There's
2207also the embedded font Font Awesome webfont to beautify the report.
2208
2209Every statistics report now includes a key value section that immediately
2210shows you some of the relevant information. Pie charts have also been
2211separated from their data tables using two tabs, one for the chart and the
2212other one for the data.
2213
2214Tables reporting hourly statistics have been moved to a multiple tabs report
2215following the data. This is used with General (queries, connections, sessions),
2216Checkpoints (buffer, files, warnings), Temporary files and Vacuums activities.
2217
2218There's some new useful information shown in the key value sections. Peak
2219information shows the number and datetime of the highest activity. Here is the
2220list of those reports:
2221
2222- Queries peak
2223- Read queries peak
2224- Write queries peak
2225- Connections peak
2226- Checkpoints peak
2227- WAL files usage Peak
2228- Checkpoints warnings peak
2229- Temporary file size peak
2230- Temporary file number peak
2231
2232Reports about Checkpoints and Restartpoints have been merged into a single report.
2233These are almost one in the same event, except that restartpoints occur on a slave
2234cluster, so there was no need to distinguish between the two.
2235
2236Recent PostgreSQL versions add additional information about checkpoints, the
2237number of synced files, the longest sync and the average of sync time per file.
2238pgBadger collects and shows this information in the Checkpoint Activity report.
2239
2240There's also some new reports:
2241
2242- Prepared queries ratio (execute vs prepare)
2243- Prepared over normal queries
2244- Queries (select, insert, update, delete) per user/host/application
2245- Pie charts for tables with the most tuples and pages removed during vacuum.
2246
2247The vacuum report will now highlight the costly tables during a vacuum or
2248analyze of a database.
2249
2250The errors are now highlighted by a different color following the level.
2251A LOG level will be green, HINT will be yellow, WARNING orange, ERROR red
2252and FATAL dark red.
2253
2254Some changes in the binary format are not backward compatible and the option
2255--client has been removed as it has been superseded by --dbclient for a long time now.
2256
2257If you are running a pg_dump or some batch process with very slow queries, your
2258report analysis will be hindered by those queries having unwanted prominence in the
2259report. Before this release it was a pain to exclude those queries from the
2260report. Now you can use the --exclude-time command line option to exclude all
2261traces matching the given time regexp from the report. For example, let's say
2262you have a pg_dump at 13:00 each day during half an hour, you can use pgbadger
2263as follows:
2264
2265pgbadger --exclude-time "2013-09-.* 13:.*" postgresql.log
2266
2267If you are also running a pg_dump at night, let's say 22:00, you can write it
2268as follows:
2269
2270pgbadger --exclude-time '2013-09-\d+ 13:[0-3]' --exclude-time '2013-09-\d+ 22:[0-3]' postgresql.log
2271
2272or more shortly:
2273
2274pgbadger --exclude-time '2013-09-\d+ (13|22):[0-3]' postgresql.log
2275
2276Exclude time always requires the iso notation yyyy-mm-dd hh:mm:ss, even if log
2277format is syslog. This is the same for all time-related options. Use this option
2278with care as it has a high cost on the parser performance.
2279
2280
22812013-09-17 - version 3.6
2282
2283Still an other version in 3.x branch to fix two major bugs in vacuum and checkpoint
2284graphs. Some other minors bugs has also been fixed.
2285
2286- Fix grammar in --quiet usage. Thanks to stephen-a-ingram for the report.
2287- Fix reporting period to starts after the last --last-parsed value instead
2288of the first log line. Thanks to Keith Fiske for the report.
2289- Add --csv-separator command line usage to documentation.
2290- Fix CSV log parser and add --csv-separator command line option to allow
2291change of the default csv field separator, coma, in any other character.
2292- Avoid "negative look behind not implemented" errors on perl 5.16/5.18.
2293Thanks to Marco Baringer for the patch.
2294- Support timestamps for begin/end with fractional seconds (so it'll handle
2295postgresql's normal string representation of timestamps).
2296- When using negative look behind set sub-regexp to -i (not case insensitive)
2297to avoid issues where some upper case letter sequence, like SS or ST.
2298- Change shebang from /usr/bin/perl to /usr/bin/env perl so that user-local
2299(perlbrew) perls will get used.
2300- Fix empty graph of autovacuum and autoanalyze.
2301- Fix checkpoint graphs that was not displayed any more.
2302
2303
23042013-07-11 - Version 3.5
2305
2306Last release of the 3.x branch, this is a bug fix release that also adds some
2307pretty print of Y axis number on graphs and a new graph that groups queries
2308duration series that was shown as second Y axis on graphs, as well as a new
2309graph with number of temporary file that was also used as second Y axis.
2310
2311- Split temporary files report into two graphs (files size and number
2312of file) to no more used a second Y axis with flotr2 - mouse tracker
2313is not working as expected.
2314- Duration series representing the second Y axis in queries graph have
2315been removed and are now drawn in a new "Average queries duration"
2316independant graph.
2317- Add pretty print of numbers in Y axis and mouse tracker output with
2318PB, TB, GB, KB, B units, and seconds, microseconds. Number without
2319unit are shown with P, T, M, K suffix for easiest very long number
2320reading.
2321- Remove Query type reports when log only contains duration.
2322- Fix display of checkpoint hourly report with no entry.
2323- Fix count in Query type report.
2324- Fix minimal statistics output when nothing was load from log file.
2325Thanks to Herve Werner for the report.
2326- Fix several bug in log line parser. Thanks to Den Untevskiy for the
2327report.
2328- Fix bug in last parsed storage when log files was not provided in the
2329right order. Thanks to Herve Werner for the report.
2330- Fix orphan lines wrongly associated to previous queries instead of
2331temporary file and lock logged statement. Thanks to Den Untevskiy for
2332the report.
2333- Fix number of different samples shown in events report.
2334- Escape HTML tags on error messages examples. Thanks to Mael Rimbault
2335for the report.
2336- Remove some temporary debug informations used with some LOG messages
2337reported as events.
2338- Fix several issues with restartpoint and temporary files reports.
2339Thanks to Guillaume Lelarge for the report.
2340- Fix issue when an absolute path was given to the incremental file.
2341Thanks to Herve Werner for the report.
2342- Remove creation of incremental temp file $tmp_last_parsed when not
2343running in multiprocess mode. Thanks to Herve Werner for the report.
2344
2345
23462013-06-18 - Version 3.4
2347
2348This release adds lot of graphic improvements and a better rendering with logs
2349over few hours. There's also some bug fixes especially on report of queries that
2350generate the most temporary files.
2351
2352- Update flotr2.min.js to latest github code.
2353- Add mouse tracking over y2axis.
2354- Add label/legend information to ticks displayed on mouseover graphs.
2355- Fix documentation about log_statement and log_min_duration_statement.
2356Thanks to Herve Werner for the report.
2357- Fix missing top queries for locks and temporary files in multiprocess
2358mode.
2359- Cleanup code to remove storage of unused information about connection.
2360- Divide the huge dump_as_html() method with one method per each report.
2361- Checkpoints, restart points and temporary files are now drawn using a
2362period of 5 minutes per default instead of one hour. Thanks to Josh
2363Berkus for the feature request.
2364- Change fixed increment of one hour to five minutes on queries graphs
2365"SELECT queries" and "Write queries". Remove graph "All queries" as,
2366with a five minutes increment, it duplicates the "Queries per second".
2367Thanks to Josh Berkus for the feature request.
2368- Fix typos. Thanks to Arsen Stasic for the patch.
2369- Add default HTML charset to utf-8 and a command line option --charset
2370to be able to change the default. Thanks to thomas hankeuhh for the
2371feature request.
2372- Fix missing temporary files query reports in some conditions. Thanks
2373to Guillaume Lelarge and Thomas Reiss for the report.
2374- Fix some parsing issue with log generated by pg 7.4.
2375- Update documentation about missing new reports introduced in previous
2376version 3.3.
2377
2378Note that it should be the last release of the 3.x branch unless there's major
2379bug fixes, but next one will be a major release with a completely new design.
2380
2381
23822013-05-01 - Version 3.3
2383
2384This release adds four more useful reports about queries that generate locks and
2385temporary files. An other new report about restart point on slaves and several
2386bugs fix or cosmetic change. Support to parallel processing under Windows OS has
2387been removed.
2388
2389- Remove parallel processing under Windows platform, the use of waitpid
2390is freezing pgbadger. Thanks to Saurabh Agrawal for the report. I'm
2391not comfortable with that OS this is why support have been removed,
2392if someone know how to fix that, please submit a patch.
2393- Fix Error in tempfile() under Windows. Thanks to Saurabh Agrawal for
2394the report.
2395- Fix wrong queries storage with lock and temporary file reports. Thanks
2396to Thomas Reiss for the report.
2397- Add samples queries to "Most frequent waiting queries" and "Queries
2398generating the most temporary files" report.
2399- Add two more reports about locks: 'Most frequent waiting queries (N)",
2400and "Queries that waited the most". Thanks to Thomas Reiss for the
2401patch.
2402- Add two reports about temporary files: "Queries generating the most
2403temporary files (N)" and "Queries generating the largest temporary
2404files". Thanks to Thomas Reiss for the patch.
2405- Cosmetic change to the Min/Max/Avg duration columns.
2406- Fix report of samples error with csvlog format. Thanks to tpoindessous
2407for the report.
2408- Add --disable-autovacuum to the documentation. Thanks to tpoindessous
2409for the report.
2410- Fix unmatched ) in regex when using %s in prefix.
2411- Fix bad average size of temporary file in Overall statistics report.
2412Thanks to Jehan Guillaume de Rorthais for the report.
2413- Add restartpoint reporting. Thanks to Guillaume Lelarge for the patch.
2414- Made some minor change in CSS.
2415- Replace %% in log line prefix internally by a single % so that it
2416could be exactly the same than in log_line_prefix. Thanks to Cal
2417Heldenbrand for the report.
2418- Fix perl documentation header, thanks to Cyril Bouthors for the patch.
2419
24202013-04-07 - Version 3.2
2421
2422This is mostly a bug fix release, it also adds escaping of HTML code inside
2423queries and the adds Min/Max reports with Average duration in all queries
2424reports.
2425
2426- In multiprocess mode, fix case where pgbadger does not update
2427the last-parsed file and do not take care of the previous run.
2428Thanks to Kong Man for the report.
2429- Fix case where pgbadger does not update the last-parsed file.
2430Thanks to Kong Man for the report.
2431- Add CDATA to make validator happy. Thanks to Euler Taveira de
2432Oliveira for the patch.
2433- Some code review by Euler Taveira de Oliveira, thanks for the
2434patch.
2435- Fix case where stat were multiplied by N when -J was set to N.
2436Thanks to thegnorf for the report.
2437- Add a line in documentation about log_statement that disable
2438log_min_duration_statement when it is set to all.
2439- Add quick note on how to contribute, thanks to Damien Clochard
2440for the patch.
2441- Fix issue with logs read from stdin. Thanks to hubert depesz
2442lubaczewski for the report.
2443- Force pgbadger to not try to beautify queries bigger than 10kb,
2444this will take too much time. This value can be reduce in the
2445future if hang with long queries still happen. Thanks to John
2446Rouillard for the report.
2447- Fix an other issue in replacing bind param when the bind value
2448is alone on a single line. Thanks to Kjeld Peters for the report.
2449- Fix parsing of compressed files together with uncompressed files
2450using the the -j option. Uncompressed files are now processed using
2451split method and compressed ones are parsed per one dedicated process.
2452- Replace zcat by gunzip -c to fix an issue on MacOsx. Thanks to
2453Kjeld Peters for the report.
2454- Escape HTML code inside queries. Thanks to denstark for the report.
2455- Add Min/Max in addition to Average duration values in queries reports.
2456Thanks to John Rouillard fot the feature request.
2457- Fix top slowest array size with binary format.
2458- Fix an other case with bind parameters with value in next line and
2459the top N slowest queries that was repeated until N even if the real
2460number of queries was lower. Thanks to Kjeld Peters for the reports.
2461- Fix non replacement of bind parameters where there is line breaks in
2462the parameters, aka multiline bind parameters. Thanks to Kjeld Peters
2463for the report.
2464- Fix error with seekable export tag with Perl v5.8. Thanks to Jeff Bohmer
2465for the report.
2466- Fix parsing of non standard syslog lines begining with a timestamp like
2467"2013-02-28T10:35:11-05:00". Thanks to Ryan P. Kelly for the report.
2468- Fix issue #65 where using -c | --dbclient with csvlog was broken. Thanks
2469to Jaime Casanova for the report.
2470- Fix empty report in watchlog mode (-w option).
2471
24722013-02-21 - Version 3.1
2473
2474This is a quick release to fix missing reports of most frequent errors and slowest
2475normalized queries in previous version published yesterday.
2476
2477- Fix empty report in watchlog mode (-w option).
2478- Force immediat die on command line options error.
2479- Fix missing report of most frequent events/errors report. Thanks to
2480Vincent Laborie for the report.
2481- Fix missing report of slowest normalized queries. Thanks to Vincent
2482Laborie for the report.
2483- Fix display of last print of progress bar when quiet mode is enabled.
2484
24852013-02-20 - Version 3.0
2486
2487This new major release adds parallel log processing by using as many cores as
2488wanted to parse log files, the performances gain is directly related to the
2489number of cores specified. There's also new reports about autovacuum/autoanalyze
2490informations and many bugs have been fixed.
2491
2492- Update documentation about log_duration, log_min_duration_statement
2493and log_statement.
2494- Rewrite dirty code around log timestamp comparison to find timestamp
2495of the specified begin or ending date.
2496- Remove distinction between logs with duration enabled from variables
2497log_min_duration_statement and log_duration. Commands line options
2498--enable-log_duration and --enable-log_min_duration have been removed.
2499- Update documentation about parallel processing.
2500- Remove usage of Storable::file_magic to autodetect binary format file,
2501it is not include in core perl 5.8. Thanks to Marc Cousin for the
2502report.
2503- Force multiprocess per file when files are compressed. Thanks to
2504Julien Rouhaud for the report.
2505- Add progress bar logger for multiprocess by forking a dedicated
2506process and using pipe. Also fix some bugs in using binary format
2507that duplicate query/error samples per process.
2508- chmod 755 pgbadger
2509- Fix checkpoint reports when there is no checkpoint warnings.
2510- Fix non report of hourly connections/checkpoint/autovacuum when not
2511query is found in log file. Thanks to Guillaume Lelarge for the
2512report.
2513- Add better handling of signals in multiprocess mode.
2514- Add -J|--job_per_file command line option to force pgbadger to use
2515one process per file instead of using all to parse one file. Useful
2516to have better performances with lot of small log file.
2517- Fix parsing of orphan lines with stderr logs and log_line_prefix
2518without session information into the prefix (%l).
2519- Update documentation about -j | --jobs option.
2520- Allow pgbadger to use several cores, aka multiprocessing. Add options
2521-j | --jobs option to specify the number of core to use.
2522- Add autovacuum and autoanalyze infos to binary format.
2523- Fix case in SQL code highlighting where QQCODE temp keyword was not
2524replaced. Thanks to Julien Ruhaud for the report.
2525- Fix CSS to draw autovacuum graph and change legend opacity.
2526- Add pie graph to show repartition of number of autovacuum per table
2527and number of tuples removed by autovacuum per table.
2528- Add debug information about selected type of log duration format.
2529- Add report of tuples/pages removed in report of Vacuums by table.
2530- Fix major bug on syslog parser where years part of the date was
2531wrongly extracted from current date with logs generated in 2012.
2532- Fix issue with Perl 5.16 that do not allow "ss" inside look-behind
2533assertions. Thanks to Cedric for the report.
2534- New vacuum and analyze hourly reports and graphs. Thanks to Guillaume
2535Lelarge for the patch.
2536
2537UPGRADE: if you are running pgbadger by cron take care if you were using one of
2538the following option: --enable-log_min_duration and --enable-log_duration, they
2539have been removed and pgbadger will refuse to start.
2540
25412013-01-17 - Version 2.3
2542
2543This release fixes several major issues especially with csvlog and a memory leak
2544with log parsing using a start date. There's also several improvement like new
2545reports of number of queries by database and application. Mouse over reported
2546queries will show database, user, remote client and application name where they
2547are executed.
2548
2549A new binary input/output format have been introduced to allow saving or reading
2550precomputed statistics. This will allow incremental reports based on periodical
2551runs of pgbader. This is a work in progress fully available with next coming
2552major release.
2553
2554Several SQL code beautifier improvement from pgFormatter have also been merged.
2555
2556- Clarify misleading statement about log_duration: log_duration may be
2557turned on depending on desired information. Only log_statement must
2558not be on. Thanks to Matt Romaine for the patch.
2559- Fix --dbname and --dbuser not working with csvlog format. Thanks to
2560Luke Cyca for the report.
2561- Fix issue in SQL formatting that prevent left back indentation when
2562major keywords were found. Thanks to Kevin Brannen for the report.
2563- Display 3 decimals in time report so that ms can be seen. Thanks to
2564Adam Schroder for the request.
2565- Force the parser to not insert a new line after the SET keyword when
2566the query begin with it. This is to preserve the single line with
2567queries like SET client_encoding TO "utf8";
2568- Add better SQL formatting of update queries by adding a new line
2569after the SET keyword. Thanks to pilat66 for the report.
2570- Update copyright and documentation.
2571- Queries without application name are now stored under others
2572application name.
2573- Add report of number of queries by application if %a is specified in
2574the log_line_prefix.
2575- Add link menu to the request per database and limit the display of
2576this information when there is more than one database.
2577- Add report of requests per database.
2578- Add report of user,remote client and application name to all request
2579info.
2580- Fix memory leak with option -b (--begin) and in incremental log
2581parsing mode.
2582- Remove duration part from log format auto-detection. Thanks to
2583Guillaume Lelarge for the report.
2584- Fix a performance issue on prettifying SQL queries that makes pgBagder
2585several time slower that usual to generate the HTML output. Thanks to
2586Vincent Laborie for the report.
2587- Add missing SQL::Beautify paternity.
2588- Add 'binary' format as input/output format. The binary output format
2589allows to save log statistics in a non human readable file instead of
2590an HTML or text file. These binary files might then be used as regular
2591input files, combined or not, to produce a html or txt report. Thanks
2592to Jehan Guillaume de Rorthais for the patch.
2593- Remove port from the session regex pattern to match all lines.
2594- Fix the progress bar. It was trying to use gunzip to get real file
2595size for all formats (by default). Unbreak the bz2 format (that does
2596not report real size) and add support for zip format. Thanks to Euler
2597Taveira de Oliveira fort the patch.
2598- Fix some typos and grammatical issues. Thanks to Euler Taveira de
2599Oliveira fort the patch.
2600- Improve SQL code highlighting and keywords detection merging change
2601from pgFormatter project.
2602- Add support to hostname or ip address in the client detection. Thanks
2603to stuntmunkee for the report.
2604- pgbadger will now only reports execute statement of the extended
2605protocol (parse/bind/execute). Thanks to pierrestroh for the report.
2606- Fix numerous typos as well as formatting and grammatical issues.
2607Thanks to Thom Brown for the patch.
2608- Add backward compatibility to obsolete --client command line option.
2609If you were using the short option -c nothing is changed.
2610- Fix issue with --dbclient and %h in log_line_prefix. Thanks to Julien
2611Rouhaud for the patch.
2612- Fix multiline progress bar output.
2613- Allow usage of a dash into database, user and application names when
2614prefix is used. Thanks to Vipul for the report.
2615- Mouse over queries will now show in which database they are executed
2616in the overviews (Slowest queries, Most frequent queries, etc. ).
2617Thank to Dirk-Jan Bulsink for the feature request.
2618- Fix missing keys on %cur_info hash. Thanks to Marc Cousin for the
2619report.
2620- Move opening file handle to log file into a dedicated function.
2621Thanks to Marc Cousin for the patch.
2622- Replace Ctrl+M by printable \r. Thanks to Marc Cousin for the report.
2623
2624
26252012-11-13 - Version 2.2
2626
2627This release add some major features like tsung output, speed improvement with
2628csvlog, report of shut down events, new command line options to generate report
2629excluding some user(s), to build report based on select queries only, to specify
2630regex of the queries that must only be included in the report and to remove
2631comments from queries. Lot of bug fixes, please upgrade.
2632
2633- Update PostgreSQL keywords list for 9.2
2634- Fix number of queries in progress bar with tsung output.
2635- Remove obsolete syslog-ng and temporary syslog-ll log format added to
2636fix some syslog autodetection issues. There is now just one syslog
2637format: syslog, differences between syslog formats are detected and
2638the log parser is adaptive.
2639- Add comment about the check_incremental_position() method
2640- Fix reports with empty graphs when log files were not in chronological
2641order.
2642- Add report of current total of queries and events parsed in progress
2643bar. Thanks to Jehan-Guillaume de Rorthais for the patch.
2644- Force pgBadger to use an require the XS version of Text::CSV instead
2645of the Pure Perl implementation. It is a good bit faster thanks to
2646David Fetter for the patch. Note that using csvlog is still a bit
2647slower than syslog or stderr log format.
2648- Fix several issue with tsung output.
2649- Add report of shut down events
2650- Add debug information on command line used to pipe compressed log
2651file when -v is provide.
2652- Add -U | --exclude-user command line option to generate report
2653excluded user. Thanks to Birta Levente for the feature request.
2654- Allow some options to be specified multiple time or be written as a
2655coma separated list of value, here are these options: --dbname,
2656--dbuser, --dbclient, --dbappname, --exclude_user.
2657- Add -S | --select-only option to build report only on select queries.
2658- Add first support to tsung output, see usage. Thanks to Guillaume
2659Lelarge for the feature request.
2660- Add --include-query and --include-file to specify regex of the queries
2661that must only be included in the report. Thanks to Marc Cousin for
2662the feature request.
2663- Fix auto detection of log_duration and log_min_duration_statement
2664format.
2665- Fix parser issue with Windows logs without timezone information.
2666Thanks to Nicolas Thauvin for the report.
2667- Fix bug in %r = remote host and port log line prefix detection.
2668Thanks to Hubert Depesz Lubaczewski for the report.
2669- Add -C | --nocomment option to remove comment like /* ... */ from
2670queries. Thanks to Hubert Depesz Lubaczewski for the feature request.
2671- Fix escaping of log_line_prefix. Thanks to Hubert Depesz Lubaczewski
2672for the patch.
2673- Fix wrong detection of update queries when a query has a object names
2674containing update and set. Thanks to Vincent Laborie for the report.
2675
26762012-10-10 - Version 2.1
2677
2678This release add a major feature by allowing any custom log_line_prefix to be
2679used by pgBadger. With stderr output you at least need to log the timestamp (%t)
2680the pid (%p) and the session/line number (%l). Support to log_duration instead
2681of log_min_duration_statement to allow reports simply based on duration and
2682count report without query detail and report. Lot of bug fixes, please upgrade
2683asap.
2684
2685- Add new --enable-log_min_duration option to force pgbadger to use lines
2686generated by the log_min_duration_statement even if the log_duration
2687format is autodetected. Useful if you use both but do not log all queries.
2688Thanks to Vincent Laborie for the feature request.
2689- Add syslog-ng format to better handle syslog traces with notation like:
2690[ID * local2.info]. It is autodetected but can be forced in the -f option
2691with value set to: syslog-ng.
2692- Add --enable-log_duration command line option to force pgbadger to only
2693use the log_duration trace even if log_min_duration_statement traces are
2694autodetected.
2695- Fix display of empty hourly graph when no data were found.
2696- Remove query type report when log_duration is enabled.
2697- Fix a major bug in query with bind parameter. Thanks to Marc Cousin for
2698the report.
2699- Fix detection of compressed log files and allow automatic detection
2700and uncompress of .gz, .bz2 and .zip files.
2701- Add gunzip -l command to find the real size of a gzip compressed file.
2702- Fix log_duration only reports to not take care about query detail but
2703just count and duration.
2704- Fix issue with compressed csvlog. Thanks to Philip Freeman for the
2705report.
2706- Allow usage of log_duration instead of log_min_duration_statement to
2707just collect statistics about the number of queries and their time.
2708Thanks to Vincent Laborie for the feature request.
2709- Fix issue on syslog format and autodetect with additional info like:
2710[ID * local2.info]. Thanks to kapsalar for the report.
2711- Removed unrecognized log line generated by deadlock_timeout.
2712- Add missing information about unsupported csv log input from stdin.
2713It must be read from a file. Thank to Philip Freeman for the report.
2714- Fix issue #28: Illegal division by zero with log file without query
2715and txt output. Thanks to rlowe for the report.
2716- Update documentation about the -N | --appname option.
2717- Rename --name option into --appname. Thanks to Guillaume Lellarge for
2718the patch.
2719- Fix min/max value in xasis that was always represented 2 days by
2720default. Thanks to Casey Allen Shobe for the report.
2721- Fix major bug when running pgbadger with the -e option. Thanks to
2722Casey Allen Shobe for the report and the great help
2723- Change project url to http://dalibo.github.com/pgbadger/. Thanks to
2724Damien Clochard for this new hosting.
2725- Fix lot of issues in CSV parser and force locale to be C. Thanks to
2726Casey Allen Shobe for the reports.
2727- Improve speed with custom log_line_prefix.
2728- Merge pull request #26 from elementalvoid/helpdoc-fix
2729- Fixed help text for --exclude-file. Old help text indicated that the
2730option name was --exclude_file which was incorrect.
2731- Remove the obsolete --regex-user and --regex-db options that was used
2732to specify a search pattern in the log_line_prefix to find the user
2733and db name. This is replaced by the --prefix option.
2734- Replace Time column report header by Hour.
2735- Fix another issue in log_line_prefix parser with stderr format
2736- Add a more complex example using log_line_prefix
2737- Fix log_line_prefix issue when using timepstamp with millisecond.
2738- Add support to use any custom log_line_prefix with new option -p or
2739--prefix. See README for an example.
2740- Fix false autodetection of CSV format when log_statement is enable or
2741in possible other cases. This was resulting in error: "FATAL: cannot
2742use CSV". Thanks to Thomas Reiss for the report.
2743- Fix display of empty graph of connections per seconds
2744- Allow character : in log line prefix, it will no more break the log
2745parsing. Thanks to John Rouillard for the report.
2746- Add report of configuration parameter changes into the errors report
2747and change errors report by events report to handle important messages
2748that are not errors.
2749- Allow pgbadger to recognize " autovacuum launcher" messages.
2750
27512012-08-21 - version 2.0
2752
2753This major version adds some changes not backward compatible with previous
2754versions. Options -p and -g are not more used as progress bar and graphs
2755generation are enabled by default now.
2756
2757The obsolete -l option use to specify the log file to parse has been reused to
2758specify an incremental file. Outside these changes and some bug fix there's
2759also new features:
2760
2761* Using an incremental file with -l option allow to parse multiple time a
2762single log file and to "seek" at the last line parsed during the previous
2763run. Useful if you have a log rotation not sync with your pgbadger run.
2764For exemple you can run somthing like this:
2765
2766pgbadger `find /var/log/postgresql/ -name "postgresql*" -mtime -7 -type f` \
2767-o report_`date +%F`.html -l /var/run/pgbadger/last_run.log
2768
2769* All queries diplayed in the HTML report are now clickable to display or
2770hide a nice SQL query format. This is called SQL format beautifier.
2771
2772* CSV log parser have been entirely rewritten to handle csv with multiline.
2773
2774Every one should upgrade.
2775
2776- Change license from BSD like to PostgreSQL license. Request from
2777Robert Treat.
2778- Fix wrong pointer on Connections per host menu. Reported by Jean-Paul
2779Argudo.
2780- Small fix for sql formatting adding scrollbars. Patch by Julien
2781Rouhaud.
2782- Add SQL format beautifier on SQL queries. When you will click on a
2783query it will be beautified. Patch by Gilles Darold
2784- The progress bar is now enabled by default, the -p option has been
2785removed. Use -q | --quiet to disable it. Patch by Gilles Darold.
2786- Graphs are now generated by default for HTML output, option -g as
2787been remove and option -G added to allow disabling graph generation.
2788Request from Julien Rouhaud, patch by Gilles Darold.
2789- Remove option -g and -p to the documentation. Patch by Gilles Darold.
2790- Fix case sensitivity in command line options. Patch by Julien Rouhaud.
2791- Add -T|--title option to change report title. Patch by Yury Bushmelev.
2792- Add new option --exclude-file to exclude specific commands with regex
2793stated in a file. This is a rewrite by Gilles Darold of the neoeahit
2794(Vipul) patch.
2795- CSV log parser have been entirely rewritten to handle csv with multi
2796line, it also adds approximative duration for csvlog. Reported by
2797Ludhimila Kendrick, patch by Gilles Darold.
2798- Alphabetical reordering of options list in method usage() and
2799documentation. Patch by Gilles Darold.
2800- Remove obsolete -l | --logfile command line option, the -l option
2801will be reused to specify an incremental file. Patch by Gilles Darold.
2802- Add -l | --last-parsed options to allow incremental run of pgbadger.
2803Patch by Gilles Darold.
2804- Replace call to timelocal_nocheck by timegm_nocheck, to convert date
2805time into second from the epoch. This should fix timezone issue.
2806Patch by Gilles Darold.
2807- Change regex on log parser to allow missing ending space in
2808log_line_prefix. This seems a common mistake. Patch by Gilles Darold.
2809- print warning when an empty log file is found. Patch by Gilles Darold.
2810- Add perltidy rc file to format pgbadger Perl code. Patch from depesz.
2811
28122012-07-15 - version 1.2
2813
2814This version adds some reports and fixes a major issue in log parser. Every one
2815should upgrade.
2816
2817- Rewrite this changelog to be human readable.
2818- Add -v | --verbose to enable debug mode. It is now disable by default
2819- Add hourly report of checkpoint warning when checkpoints are occuring
2820too frequently, it will display the hourly count and the average
2821occuring time.
2822- Add new report that sums the messages by log types. The report shows
2823the number of messages of each log type, and a percentage. It also
2824displays a pie graph. Patch by Guillaume Lelarge.
2825- Add missing pie graph on locks by type report.
2826- Format pie mouse track to display values only.
2827- Fix graph download button id on new connection graph.
2828- Add trackFormatter to flotr2 line graphs to show current x/y values.
2829- Fix issue on per minute minimum value.
2830- Add a note about Windows Os and zcat as well as a more general note
2831about using compressed log file in other format than gzip.
2832- Complete rewrite of the log parser to handle unordered log lines.
2833Data are now stored by pid before and added to the global statistics
2834at end. Error report now include full details, statements, contexts
2835and hints when available. Deadlock are also fully reported with the
2836concerned queries.
2837- Fix miss handling of multi lines queries on syslog.
2838- Add -a|--average option to configure the per minutes average interval
2839for queries and connexions. If you want the average to be calculated
2840each minutes instead of the 5 per default, use --average 1 or for the
2841default --average 5. If you want average per hour set it to 60.
2842- Add hourly statistics of connections and sessions as well as a chart
2843about the number of connection per second (5 minutes average).
2844- Allow OTHERS type of queries lower than 2% to be include in the sum of
2845types < 2%.
2846- Add autodetection of syslog ident name if different than the default
2847"postgres" and that there is just one ident name in the log.
2848- Remove syslog replacement of tabulation by #011 still visible when
2849there was multiple tabulation.
2850- Fix autodetection of log format syslog with single-digit day number
2851in date.
2852- Add ChangeLog to MANIFEST and change URI in html footer.
2853- Check pgBadger compatibility with Windows Oses. Run perfectly.
2854
2855
28562012-07-04 - version 1.1
2857
2858This release fixes lot of issues and adds several main features.
2859
2860New feature:
2861
2862- Add possibility to get log from stdin
2863- Change syslog parsing regex to allow log timestamp in log_line_prefix
2864very often forgotten when log destination is changed from stderr to
2865syslog.
2866- Add documentation for the -z | --zcat command line option.
2867- Allow `zcat` location to be specified via `--zcat` - David E. Wheeler
2868- Add --disable-session,--disable-connection and disable-checkpoint
2869command line options to remove their respective reports from the
2870output
2871- Add --disable-query command line option to remove queries statistics
2872from the output
2873- Add --disable-hourly command line option to remove hourly statistics
2874from the output
2875- Add --disable-error command line option to remove error report from
2876the output
2877- Add --exclude-query option to exclude types of queries by specifying
2878a regex
2879- Set thousand separator and decimal separator to be locale dependant
2880- Add -w option to only report errors
2881- Add Makefile.PL and full POD documentation to the project
2882- Allow multiple log files from command line
2883- Add simple csvlog support - Alex Hunsaker
2884- Hourly report for temporary files and checkpoints have moved in a
2885separate table.
2886- Add hourly connections and sessions statistics.
2887- Add a chart about the number of connections per seconds.
2888
2889Bug fix:
2890
2891- Add information about log format requirement (lc_message = 'C').
2892Reported by Alain Benard.
2893- Fix for begin/end dates with single digit day using syslog. Patch by
2894Joseph Marlin.
2895- Fix handle of syslog dates with single-digit day number. Patch by
2896Denis Orlikhin.
2897- Fix many English syntax in error messages and documentation. Patch by
2898Joseph Marlin.
2899- Fix non terminated TH html tag in checkpoint hourly table. Reported
2900by Joseph Marlin.
2901- "Log file" section will now only report first and last log file parsed
2902- Fix empty output in hourly temporary file stats.
2903- Fix wrapping query that goes out of the table and makes the window
2904scroll horizontally. Asked by Isaac Reuben.
2905- Fix code where != was replaced by $$CLASSSY0A$$!=$$CLASSSY0B$$ in the
2906output. Reported by Isaac Reuben
2907- Fix and review text report output.
2908- Fix an issue in SQL code highligh replacement.
2909- Complete review of the HTML output.
2910- Add .gitignore for swap files. Patch by Vincent Picavet
2911- Fix wrong variable for user and database filter. Patch by Vincent
2912Picavet.
2913- Change default regexp for user and db to be able to detect both. Patch
2914by Vincent Picavet.
2915- Fix false cur_date when using syslog and allow -b and -e options to
2916work. Patch by Vincent Picavet.
2917- Fix some case where logs where not detected as PostgreSQL log lines.
2918- Added explanation for --begin and --end datetime setting. Patch by
2919ragged.
2920- Added -v / --version. Patch by ragged.
2921- Fix usage information and presentation in README file.
2922
29232012-05-04 - version to 1.0
2924
2925First public release of pgBadger.
2926
2927New feature:
2928
2929- Add graph of ckeckpoint Wal files usage (added, removed, recycled).
2930- Add --image-format to allow the change of the default png image
2931format to jpeg.
2932- Allow download of all pie graphics as images.
2933- Add --pie-limit to sum all data lower than this percentage limit to
2934avoid label overlap.
2935- Allow download of graphics as PNG images.
2936- Replace GD::Graph by the Flotr2 javascript library to draw graphics.
2937Patch by Guillaume Lelarge
2938- Add pie graphs for session, database, user and host. Add a --quiet
2939option to remove debug output and --progress to show a progress bar
2940during log parsing
2941- Add pie graph for Queries by type.
2942- Add graph for checkpoint write buffer per hours
2943- Allow log parsing without any log_line_prefix and extend it to be
2944defined by the user. Custom log_line prefix can be parsed using user
2945defined regex with command line option --regex-db and --regex-user.
2946For exemple the default regex of pgbadger to parse user and db name
2947from log_line_prefix can be written like this:
2948pgbadger -l mylogfile.log --regex-user="user=([^,]*)," \
2949--regex-db="db=([^,]*)"
2950- Separe log_line_prefix from log level part in the parser to extend
2951log_line_prefix parsing
2952- If there is just one argument, assume it is the logfile and use
2953default value for all other parameters
2954- Add autodetection of log format (syslog or stderr) if none is given
2955with option -f
2956- Add --outfile option to dump output to a file instead of stdout.
2957Default filename is out.html or out.txt following the output format.
2958To dump to stdout set filename to -
2959- Add --version command line option to show current pgbadger version.
2960
2961Bug fix:
2962
2963- Rearrange x and y axis
2964- Fix legend opacity on graphics
2965- Rearrange Overall stats view
2966- Add more "normalization" on errors messages
2967- Fix samples error with normalyzed error instead of real error message
2968- Fix an other average size of temporary file decimal limit
2969- Force quiet mode when --progress is used
2970- Fix per sessions graphs
2971- Fix sort order of days/hours into hours array
2972- Fix sort order of days into graphics
2973- Remove display of locks, sessions and connections statistics when none
2974are available
2975- Fix display of empty column of checkpoint when no checkpoint was found
2976in log file
2977
2978