Aller au contenu

Vue imprimable multi-pages de cette section. .

Retour à la version par défaut.

pgBadger 13.2 Documentation

Analyse rapide des journaux PostgreSQL et PgBouncer avec des rapports détaillés et autonomes
logo pgBadger

pgBadger est un analyseur de journaux PostgreSQL rapide et autonome, écrit en Perl. Il lit les journaux PostgreSQL ou PgBouncer et génère des sorties détaillées au format HTML, texte, binaire, JSON ou CSV brut. Les rapports HTML sont autonomes, interactifs, zoomables et nécessitent uniquement un navigateur web pour être visualisés.

Pourquoi pgBadger

pgBadger est conçu pour les gros volumes de journaux et une utilisation opérationnelle :

  • un programme Perl, sans dépendance obligatoire à des modules Perl non essentiels ;
  • détection automatique de stderr, syslog, csvlog, jsonlog, RDS, Cloud SQL, logplex, Redshift et PgBouncer en entrée ;
  • lecture directe de fichiers locaux, de l’entrée standard, de fichiers distants via SSH, ainsi que d’URL HTTP, FTP ou SFTP ;
  • entrée compressée avec gzip, bzip2, lz4, xz, zip ou zstd ;
  • analyse parallèle d’un grand fichier ou de nombreux petits fichiers ;
  • rapports incrémentiels quotidiens, hebdomadaires et mensuels à la demande ;
  • filtres par heure, base de données, utilisateur, client, application, processus, session et motif de requête.

Ce que contiennent les rapports

L’ensemble de rapports PostgreSQL couvre :

  • activité globale et statistiques des requêtes ;
  • requêtes lentes, fréquentes, longues, en attente et annulées ;
  • fichiers temporaires, points de contrôle, verrous, sessions et connexions ;
  • activité d’auto-vacuum et d’auto-analyse par table ;
  • erreurs et événements par gravité et catégorie ;
  • distributions par base de données, utilisateur, client, application et type de requête.

L’entrée PgBouncer ajoute des rapports sur le débit, la durée moyenne des requêtes, le nombre de sessions simultanées, la répartition des connexions et des sessions, l’utilisation du pool réservé, ainsi que des rapports fréquents sur les erreurs et événements.

Documentation map

Lisez le manuel dans cet ordre, ou utilisez la barre latérale pour accéder directement à une tâche :

  1. Téléchargez et installez pgBadger et ses modules optionnels.
  2. Consultez la référence complète de la ligne de commande .
  3. Configurez la journalisation de PostgreSQL avec un préfixe analysable.
  4. Choisissez le mode traitement parallèle adapté.
  5. Générez des rapports incrémentiels de manière sécurisée.
  6. Sélectionnez un format de sortie et examinez les exemples locaux .
  7. Suivez l’historique des versions , le support et la licence .

1 - Téléchargement et installation

Versions officielles, paquets, exigences et installation à partir de la source

Choisissez un canal de distribution

ChannelUtilisationEmplacement
Version officielleArchives sources et notes de versionGitHub Releases
Paquet RPMDistributions Linux basées sur RPMPostgreSQL Yum Repository
Paquet Debian/UbuntuDistributions Linux basées sur APTPostgreSQL Apt Repository
Code source de développementCode actuel non encore publiédarold/pgbadger

La version de documentation disponible sur ce site est basée sur l’arbre source 13.2. Vérifiez toujours la page de publication avant de télécharger : la version locale est intentionnellement figée, tandis que les versions upstream évoluent continuellement.

Conditions requises

Le chemin du rapport HTML doit uniquement :

  • une distribution Perl moderne ;
  • un navigateur web pour afficher les graphiques JavaScript intégrés.

Les fonctionnalités facultatives ajoutent les dépendances suivantes :

FonctionnalitéDépendance
Analyse des journaux CSV de PostgreSQLText::CSV_XS
Écriture de sortie au format JSONJSON::XS
Lecture d’entrée .gz, .bz2, .lz4, .xz, .zip, ou .zstl’utilitaire correspondant zcat, bzcat, lz4cat, xz, unzip, ou zstdcat

Installez le support JSON sur Debian ou Ubuntu :

$ sudo apt-get install libjson-xs-perl

Sur un système basé sur RPM :

$ sudo yum install perl-JSON-XS

Utilisez --zcat pour remplacer le chemin du décompresseur. Fournir une commande personnalisée désactive la possibilité d’utiliser plusieurs formats compressés dans la même invocation.

Installer à partir d’un tarball officiel

Téléchargez une archive de version, puis générez et installez-la à l’aide de la chaîne d’outils standard de Perl :

$ tar xzf pgbadger-13.2.tar.gz
$ cd pgbadger-13.2
$ perl Makefile.PL
$ make
$ sudo make install

Le schéma par défaut site installe le programme sous le nom /usr/local/bin/pgbadger et la page de manuel sous le nom /usr/local/share/man/man1/pgbadger.1.

Pour une installation au style distribution sous /usr, générez le fichier Makefile avec :

$ perl Makefile.PL INSTALLDIRS=vendor
$ make
$ sudo make install

INSTALLDIRS=perl est une autre disposition prise en charge par le projet principal. Vérifiez les chemins générés avant d’installer dans un système géré.

Installer le code de développement

$ git clone https://github.com/darold/pgbadger.git
$ cd pgbadger
$ perl Makefile.PL
$ make
$ make test
$ sudo make install

Le code en développement peut contenir des modifications non encore documentées dans les notes de version. Privilégiez une archive étiquetée pour un conditionnement en production reproductible.

Vérifier l’installation

$ pgbadger --version
$ pgbadger --help

Poursuivez avec la référence de la ligne de commande et la configuration de la journalisation PostgreSQL .

2 - Référence en ligne de commande

Syntaxe complète de la commande pgBadger, options, entrée distante, codes de retour et exemples

Cette page conserve la référence de commande générée à partir de la source upstream verrouillée. Les noms d’option et le texte d’aide restent tels quels afin de pouvoir être comparés directement avec pgbadger --help.

Utilisation et options

Utilisation : pgBadger [options] fichier_journal […]

PostgreSQL log analyzer with fully detailed reports and graphs.

Arguments :

logfile can be a single log file, a list of files, or a shell command
returning a list of files. If you want to pass log content from stdin
use - as filename. Note that input from stdin will not work with csvlog.

Options :

-a | --average minutes : number of minutes to build the average graphs of
                         queries and connections. Default 5 minutes.
-A | --histo-average min: number of minutes to build the histogram graphs
                         of queries. Default 60 minutes.
-b | --begin datetime  : start date/time for the data to be parsed in log
                         (either a timestamp or a time)
-c | --dbclient host   : only report on entries for the given client host.
-C | --nocomment       : remove comments like /* ... */ from queries.
-d | --dbname database : only report on entries for the given database.
-D | --dns-resolv      : client ip addresses are replaced by their DNS name.
                         Be warned that this can really slow down pgBadger.
-e | --end datetime    : end date/time for the data to be parsed in log
                         (either a timestamp or a time)
-E | --explode         : explode the main report by generating one report
                         per database. Global information not related to a
                         database is added to the postgres database report.
-f | --format logtype  : possible values: syslog, syslog2, stderr, jsonlog,
                         csv, pgbouncer, logplex, rds and redshift. Use this
                         option when pgBadger is not able to detect the log
                         format.
-G | --nograph         : disable graphs on HTML output. Enabled by default.
-h | --help            : show this message and exit.
-H | --html-outdir path: path to directory where HTML report must be written
                         in incremental mode, binary files stay on directory
                         defined with -O, --outdir option.
-i | --ident name      : programname used as syslog ident. Default: postgres
-I | --incremental     : use incremental mode, reports will be generated by
                         days in a separate directory, --outdir must be set.
-j | --jobs number     : number of jobs to run at same time for a single log
                         file. Run as single by default or when working with
                         csvlog format.
-J | --Jobs number     : number of log files to parse in parallel. Process
                         one file at a time by default.
-l | --last-parsed file: allow incremental log parsing by registering the
                         last datetime and line parsed. Useful if you want
                         to watch errors since last run or if you want one
                         report per day with a log rotated each week.
-L | --logfile-list file:file containing a list of log files to parse.
-m | --maxlength size  : maximum length of a query, it will be restricted to
                         the given size. Default truncate size is 100000.
-M | --no-multiline    : do not collect multiline statements to avoid garbage
                         especially on errors that generate a huge report.
-N | --appname name    : only report on entries for given application name
-o | --outfile filename: define the filename for the output. Default depends
                         on the output format: out.html, out.txt, out.bin,
                         or out.json. This option can be used multiple times
                         to output several formats. To use json output, the
                         Perl module JSON::XS must be installed, to dump
                         output to stdout, use - as filename.
-O | --outdir path     : directory where out files must be saved.
-p | --prefix string   : the value of your custom log_line_prefix as
                         defined in your postgresql.conf. Only use it if you
                         aren't using one of the standard prefixes specified
                         in the pgBadger documentation, such as if your
                         prefix includes additional variables like client IP
                         or application name. MUST contain escape sequences
                         for time (%t, %m or %n) and processes (%p or %c).
                         See examples below.
-P | --no-prettify     : disable SQL queries prettify formatter.
-q | --quiet           : don't print anything to stdout, not even a progress
                         bar.
-Q | --query-numbering : add numbering of queries to the output when using
                         options --dump-all-queries or --normalized-only.
-r | --remote-host ip  : set the host where to execute the cat command on
                         remote log file to parse the file locally.
-R | --retention N     : number of weeks to keep in incremental mode. Defaults
                         to 0, disabled. Used to set the number of weeks to
                         keep in output directory. Older weeks and days
                         directories are automatically removed.
-s | --sample number   : number of query samples to store. Default: 3.
-S | --select-only     : only report SELECT queries.
-t | --top number      : number of queries to store/display. Default: 20.
-T | --title string    : change title of the HTML page report.
-u | --dbuser username : only report on entries for the given user.
-U | --exclude-user username : exclude entries for the specified user from
                         report. Can be used multiple time.
-v | --verbose         : enable verbose or debug mode. Disabled by default.
-V | --version         : show pgBadger version and exit.
-w | --watch-mode      : only report errors just like logwatch could do.
-W | --wide-char       : encode html output of queries into UTF8 to avoid
                         Perl message "Wide character in print".
-x | --extension       : output format. Values: text, html, bin or json.
                         Default: html
-X | --extra-files     : in incremental mode allow pgBadger to write CSS and
                         JS files in the output directory as separate files.
-z | --zcat exec_path  : set the full path to the zcat program. Use it if
                         zcat, bzcat or unzip is not in your path.
-Z | --timezone +/-XX  : Set the number of hours from GMT of the timezone.
                         Use this to adjust date/time in JavaScript graphs.
                         The value can be an integer, ex.: 2, or a float,
                         ex.: 2.5.
--anonymize            : obscure all literals in queries, useful to hide
--charset              : used to set the HTML charset to be used.
                         Default: utf-8.
--command CMD          : command to execute to retrieve log entries on
                         stdin. pgBadger will open a pipe to the command
                         and parse log entries generated by the command.
--csv-separator        : used to set the CSV field separator, default: ,
--day-report YYYY-MM-DD: create an HTML report over the specified day.
                         Requires incremental output directories and the
                         presence of all necessary binary data files
--disable-autovacuum   : do not generate autovacuum report.
                         confidential data.
--disable-checkpoint   : do not generate checkpoint/restartpoint report.
--disable-connection   : do not generate connection report.
--disable-error        : do not generate error report.
--disable-hourly       : do not generate hourly report.
--disable-lock         : do not generate lock report.
--disable-query        : do not generate query reports (slowest, most
                         frequent, queries by users, by database, ...).
--disable-session      : do not generate session report.
--disable-temporary    : do not generate temporary report.
--disable-type         : do not generate report of queries by type, database
                         or user.
--dump-all-queries     : dump all queries found in the log file replacing
                         bind parameters included in the queries at their
                         respective placeholders positions.
--dump-raw-csv         : parse the log and dump the information into CSV
                         format. No further processing is done, no report.
--enable-checksum      : used to add an md5 sum under each query report.
--exclude-appname name : exclude entries for the specified application name
                         from report.  Example: "pg_dump".  Can be used
                         multiple times.
--exclude-client name  : exclude log entries for the specified client ip.
                         Can be used multiple times.
--exclude-db name      : exclude entries for the specified database from
                         report. Example: "postgres". Can be used multiple
                         times.
--exclude-file filename: path of the file that contains each regex to use
                         to exclude queries from the report. One regex per
                         line.
--exclude-line regex   : exclude any log entry that will match the given
                         regex. Can be used multiple times.
--exclude-query regex  : any query matching the given regex will be excluded
                         from the report. For example: "^(VACUUM|COMMIT)"
                         You can use this option multiple times.
--exclude-time  regex  : any timestamp matching the given regex will be
                         excluded from the report. Example: "2013-04-12 .*"
                         You can use this option multiple times.
--explain-url URL      : use it to override the url of the graphical explain
                         tool. Default: https://explain.depesz.com/
--histogram-query VAL  : use custom inbound for query times histogram.
                        Default inbound in milliseconds:
                     0,1,5,10,25,50,100,500,1000,10000
--histogram-session VAL: use custom inbound for session times histogram.
                        Default inbound in milliseconds:
                     0,500,1000,30000,60000,600000,1800000,3600000,28800000
--include-file filename: path of the file that contains each regex to the
                         queries to include from the report. One regex per
                         line.
--include-query regex  : any query that does not match the given regex will
                         be excluded from the report. You can use this
                         option multiple times. For example: "(tbl1|tbl2)".
--include-pid PID      : only report events related to the session pid (%p).
                         Can be used multiple time.
--include-session ID   : only report events related to the session id (%c).
                         Can be used multiple time.
--include-time  regex  : only timestamps matching the given regex will be
                         included in the report. Example: "2013-04-12 .*"
                         You can use this option multiple times.
--iso-week-number      : in incremental mode, calendar weeks start on
                         Monday and respect the ISO 8601 week number, range
                         01 to 53, where week 1 is the first week that has
                         at least 4 days in the new year.
--keep-comments        : do not remove comments from normalized queries. It
                         can be useful if you want to distinguish between
                         same normalized queries.
--journalctl command   : command to use to replace PostgreSQL logfile by
                         a call to journalctl. Basically it might be:
                            journalctl -u postgresql-9.5
--log-duration         : force pgBadger to associate log entries generated
                         by both log_duration = on and log_statement = 'all'
--log-timezone +/-XX   : Set the number of hours from GMT of the timezone
                         that must be used to adjust date/time read from
                         log file before beeing parsed. Using this option
                         makes log search with a date/time more difficult.
                         The value can be an integer, ex.: 2, or a float,
                         ex.: 2.5.
--month-report YYYY-MM : create a cumulative HTML report over the specified
                         month. Requires incremental output directories and
                         the presence of all necessary binary data files
--noexplain            : do not process lines generated by auto_explain.
--no-fork              : do not fork any process, for debugging purpose.
--no-process-info      : disable changing process title to help identify
                         pgbadger process, some system do not support it.
--no-progressbar       : disable progressbar.
--noreport             : no reports will be created in incremental mode.
--no-week              : inform pgbadger to not build weekly reports in
                         incremental mode. Useful if it takes too much time.
--normalized-only      : only dump all normalized queries to out.txt
--pgbouncer-only       : only show PgBouncer-related menus in the header.
--pid-dir path         : set the path where the pid file must be stored.
                         Default /tmp
--pid-file file        : set the name of the pid file to manage concurrent
                         execution of pgBadger. Default: pgbadger.pid
--pie-limit num        : pie data lower than num% will show a sum instead.
--prettify-json        : use it if you want json output to be prettified.
--rebuild              : used to rebuild all html reports in incremental
                         output directories where there's binary data files.
--start-monday         : in incremental mode, calendar weeks start on
                         Sunday. Use this option to start on a Monday.
--tempdir DIR          : set directory where temporary files will be written
                         Default: File::Spec->tmpdir() || '/tmp'

pgBadger est capable d’analyser un fichier journal distant en utilisant une connexion SSH sans mot de passe. Utilisez -r ou –remote-host pour définir l’adresse IP ou le nom d’hôte du serveur. Il existe également plusieurs options supplémentaires pour contrôler entièrement la connexion SSH.

--ssh-identity file      path to the identity file to use.
--ssh-option  options    list of -o options to use for the ssh connection.
                         Options always used:
                             -o ConnectTimeout=$ssh_timeout
                             -o PreferredAuthentications=hostbased,publickey
--ssh-port port          ssh port to use for the connection. Default: 22.
--ssh-program ssh        path to the ssh program to use. Default: ssh.
--ssh-timeout second     timeout to ssh connection failure. Default: 10 sec.
--ssh-user username      connection login name. Defaults to running user.

Le fichier journal à analyser peut également être spécifié à l’aide d’un URI. Les protocoles pris en charge sont http[s] et [s]ftp. La commande curl sera utilisée pour télécharger le fichier, qui sera analysé pendant le téléchargement. Le protocole ssh est également pris en charge et utilisera la commande ssh, de la même manière qu’avec un hôte distant. Voir les exemples ci-dessous.

Codes de retour :

0: on success
1: die on error
2: if it has been interrupted using ctr+c for example
3: the pid file already exists or can not be created
4: no log file was given at command line

Exemples :

pgbadger /var/log/postgresql.log
pgbadger /var/log/postgres.log.2.gz /var/log/postgres.log.1.gz /var/log/postgres.log
pgbadger /var/log/postgresql/postgresql-2012-05-*
pgbadger --exclude-query="^(COPY|COMMIT)" /var/log/postgresql.log
pgbadger -b "2012-06-25 10:56:11" -e "2012-06-25 10:59:11" /var/log/postgresql.log
cat /var/log/postgres.log | pgbadger -
# Log line prefix with stderr log output
pgbadger --prefix '%t [%p]: user=%u,db=%d,client=%h' /pglog/postgresql-2012-08-21*
pgbadger --prefix '%m %u@%d %p %r %a : ' /pglog/postgresql.log
# Log line prefix with syslog log output
pgbadger --prefix 'user=%u,db=%d,client=%h,appname=%a' /pglog/postgresql-2012-08-21*
# Use my 8 CPUs to parse my 10GB file faster, much faster
pgbadger -j 8 /pglog/postgresql-10.1-main.log

Utilisez la notation URI pour le fichier journal distant :

pgbadger http://172.12.110.1//var/log/postgresql/postgresql-10.1-main.log
pgbadger ftp://username@172.12.110.14/postgresql-10.1-main.log
pgbadger ssh://username@172.12.110.14:2222//var/log/postgresql/postgresql-10.1-main.log*

Vous pouvez utiliser conjointement un fichier journal PostgreSQL local et un fichier journal pgbouncer distant pour analyser :

pgbadger /var/log/postgresql/postgresql-10.1-main.log ssh://username@172.12.110.14/pgbouncer.log

Rapporter les erreurs chaque semaine par une tâche cron :

30 23 * * 1 /usr/bin/pgbadger -q -w /var/log/postgresql.log -o /var/reports/pg_errors.html

Générez un rapport chaque semaine en utilisant le comportement incrémental :

0 4 * * 1 /usr/bin/pgbadger -q `find /var/log/ -mtime -7 -name "postgresql.log*"` -o /var/reports/pg_errors-`date +\%F`.html -l /var/reports/pgbadger_incremental_file.dat

Cela suppose que votre fichier journal et le rapport HTML sont également rotés chaque semaine.

Ou mieux, utilisez les rapports incrémentiels générés automatiquement :

0 4 * * * /usr/bin/pgbadger -I -q /var/log/postgresql/postgresql.log.1 -O /var/www/pg_reports/

générera un rapport par jour et par semaine.

En mode incrémental, vous pouvez également préciser le nombre de semaines à conserver dans les rapports :

/usr/bin/pgbadger --retention 2 -I -q /var/log/postgresql/postgresql.log.1 -O /var/www/pg_reports/

Si vous disposez d’un pg_dump à 23:00 et à 13:00 chaque jour pendant une demi-heure, vous pouvez utiliser pgBadger comme suit pour exclure ces périodes du rapport :

pgbadger --exclude-time "2013-09-.* (23|13):.*" postgresql.log

Cela permettra d’éviter d’avoir des instructions COPY, générées par pg_dump, en tête de la liste des requêtes les plus lentes. Vous pouvez également utiliser –exclude-appname “pg_dump” pour résoudre ce problème de manière plus simple.

Vous pouvez également analyser la sortie de journalctl comme si elle était un fichier journal :

pgbadger --journalctl 'journalctl -u postgresql-9.5'

ou, dans le pire des cas, exécutez-le depuis un hôte distant :

pgbadger -r 192.168.1.159 --journalctl 'journalctl -u postgresql-9.5'

Vous n’avez pas besoin de spécifier de fichier journal en ligne de commande, mais si vous avez d’autres fichiers journaux PostgreSQL à analyser, vous pouvez les ajouter comme d’habitude.

Pour reconstruire tous les rapports HTML incrémentaux après coup, procédez comme suit :

rm /path/to/reports/*.js
rm /path/to/reports/*.css
pgbadger -X -I -O /path/to/reports/ --rebuild

Il mettra également à jour tous les fichiers de ressources (JS et CSS). Utilisez -E ou –explode si les rapports ont été générés en utilisant cette option.

pgBadger prend également en charge les journaux PostgreSQL Heroku au format logplex :

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

Cela enverra les journaux Heroku PostgreSQL à pgBadger via stdin.

pgBadger peut détecter automatiquement les journaux PostgreSQL RDS et CloudWatch en utilisant le format rds :

pgbadger -f rds -o rds_out.html rds.log

Chaque journal CloudSQL PostgreSQL est un journal PostgreSQL relativement classique, mais encapsulé au format JSON. Il est détecté automatiquement par pgBadger, mais en cas de besoin, forcez le format de journalisation en utilisant `jsonlog` :

pgbadger -f jsonlog -o cloudsql_out.html cloudsql.log

Cela fonctionne de la même manière que l’extension jsonlog : le format JSON est différent, mais pgBadger peut parser les deux formats.

pgBadger prend également en charge les journaux produits par l’opérateur Postgres CloudNativePG pour Kubernetes :

pgbadger -f jsonlog -o cnpg_out.html cnpg.log

Pour créer un rapport cumulatif sur une période d’un mois, utilisez la commande :

pgbadger --month-report 2919-05 /path/to/incremental/reports/

Cela ajoutera un lien vers le nom du mois dans la vue calendrier des rapports incrémentiels pour consulter le rapport du mois de mai 2019. Utilisez -E ou –explode si les rapports ont été générés en utilisant cette option.

3 - Configuration de journalisation de PostgreSQL

Configurer la journalisation des requêtes, log_line_prefix, la locale et les statistiques associées pour pgBadger

pgBadger ne peut rapporter que les informations écrites par PostgreSQL dans les journaux. Commencez par un préfixe analysable et une politique de journalisation explicite des requêtes, puis ajoutez les événements opérationnels que vous souhaitez analyser.

Journalisation minimale des requêtes

Pour inclure le texte et la durée de la requête, activez la journalisation des instructions basée sur la durée :

log_min_duration_statement = 0

0 enregistre chaque instruction terminée. Sur un serveur très sollicité, sélectionnez une valeur plus élevée en millisecondes afin de contrôler le volume des journaux. Mesurez la surcharge et la croissance du stockage avant d’activer une seuil faible en production.

Si vous avez besoin uniquement de la durée et du nombre de requêtes, et non du texte des requêtes, utilisez :

log_min_duration_statement = -1
log_duration = on

Privilégiez log_min_duration_statement lorsque vous avez besoin des rapports sur les requêtes les plus lentes et le temps total passé aux requêtes.

Champs de préfixe requis

Un log_line_prefix personnalisé doit inclure les deux éléments suivants :

  • un champ de type heure : %t, %m ou %n ;
  • un champ de type processus ou session : %p ou %c.

Un préfixe stderr minimal est :

log_line_prefix = '%t [%p]: '

Un préfixe plus utile enregistre l’utilisateur, la base de données, l’application et le client :

log_line_prefix = '%t [%p]: user=%u,db=%d,app=%a,client=%h '

Le préfixe équivalent pour une destination syslog omet l’horodatage et les champs processus déjà fournis par syslog :

log_line_prefix = 'user=%u,db=%d,app=%a,client=%h '

Un autre ordre de clés pris en charge est :

log_line_prefix = '%t [%p]: db=%d,user=%u,app=%a,client=%h '

Lorsque votre préfixe n’est pas l’une des formes reconnues par pgBadger, passez la valeur exacte avec --prefix. Ne la simplifiez ni ne la retapez différemment par rapport à postgresql.conf.

Activez les classes d’événements que vous souhaitez voir apparaître dans le rapport :

log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on
log_temp_files = 0
log_autovacuum_min_duration = 0
log_error_verbosity = default

Ces paramètres peuvent générer un trafic de journalisation important. En particulier, log_temp_files = 0 et log_autovacuum_min_duration = 0 journalisent chaque événement correspondant ; ajustez-les en fonction de la charge de travail et du budget de rétention.

Garder les messages serveur en anglais

Le parseur reconnaît les messages du serveur PostgreSQL en anglais. Utilisez l’une des options suivantes :

lc_messages = 'en_US.UTF-8'

ou :

lc_messages = 'C'

Les locales telles que fr_FR.UTF-8 ne sont pas prises en charge par le parseur principal.

Éviter les conflits entre les paramètres d’instruction

N’activez pas simultanément log_min_duration_statement, log_duration et log_statement = 'all'. La même exécution peut être journalisée plus d’une fois, ce qui fausse les compteurs de pgBadger et augmente considérablement le volume des journaux.

ObjectifParamétrage recommandé
Texte de requête et chronométragelog_min_duration_statement = 0 ou une seuil choisi
Durée et comptage uniquementlog_min_duration_statement = -1, log_duration = on
Audit des énoncés générauxTraiter log_statement comme une politique de journalisation distincte ; ne pas combiner les trois paramètres pour les statistiques de pgBadger

Après avoir rechargé PostgreSQL, examinez plusieurs entrées de journal réelles avant d’exécuter une analyse importante. Vérifiez que les champs horodatage, identifiant de processus/session, utilisateur, base de données, application et client correspondent au format sélectionné.

4 - Traitement parallèle

Choisissez entre des tronçons parallèles d’un seul journal ou un traitement parallèle de plusieurs journaux

pgBadger dispose de deux modes de traitement parallèle complémentaires. Choisissez selon la forme de l’entrée, et non simplement selon le nombre de processeurs.

OptionUnité parallèleMeilleur ajustementContrainte principale
-j N / --jobs Ntronçons d’un fichier journalun seul fichier journal volumineux et accessible par rechercheles limites des tronçons peuvent dupliquer ou omettre un petit nombre de requêtes
-J N / --Jobs Nfichiers journaux entiersplusieurs fichiers journaux indépendantsutile uniquement lorsque suffisamment de fichiers sont disponibles pour garder les workers occupés

Découper un grand fichier avec -j

$ pgbadger -j 8 /var/log/postgresql/postgresql.log

L’algorithme upstream divise chaque fichier en plages de N octets, lance un parseur par plage, écrit des statistiques binaires temporaires, puis fusionne ces statistiques pour produire le rapport final.

for each log file
    divide the file into N chunks
    find each chunk's start and end offsets
    fork N parsers at those offsets
    write one temporary binary statistics file per parser
wait for the workers
merge the binary files and build the report

Étant donné que les enregistrements de journal et les requêtes multilignes ne correspondent pas parfaitement aux décalages d’octets, jusqu’à environ N requêtes par fichier peuvent être tronquées, omises ou, plus fréquemment, comptées deux fois aux limites des tronçons. Utilisez ce mode pour une analyse agrégée de fichiers très volumineux, et non pour un flux de travail nécessitant un décompte précis de chaque enregistrement.

Traiter plusieurs fichiers avec -J

$ pgbadger -J 8 /var/log/postgresql/postgresql-*.log

Chaque worker possède un fichier complet, ce qui permet d’éviter les lacunes aux limites des tronçons. Ce mode devient particulièrement utile avec des centaines de petits fichiers et une capacité CPU et E/S suffisante. La documentation officielle autorise également -J pour des fichiers compressés indépendants ; le découpage en tronçons sur un seul fichier avec -j nécessite une entrée accessible par recherche, non compressée.

Benchmark côté serveur

Le manuel d’origine indique ces mesures sur un hôte à 8 processeurs. Considérez-les comme une comparaison entre les deux algorithmes, et non comme une prédiction pour le matériel actuel.

Un fichier de 9,5 Go :

Option1 CPU2 CPU4 CPU8 CPU
-j1h41m1850m2525m3915m58
-J1h41m1854m2841m1634m45

Deux cents fichiers de 10 Mo, soit 2 Go au total :

Option1 CPU2 CPU4 CPU8 CPU
-j20m159m565m204m20
-J20m159m495m002m40

La valeur par défaut pratique est -j pour quelques fichiers volumineux et -J pour de nombreux fichiers petits. Les deux modes peuvent être combinés lorsque l’entrée et la plateforme le permettent, mais testez cette combinaison : l’analyse des journaux peut devenir limitée par le débit de stockage avant le processeur.

Limites et fichiers temporaires

  • -j n’est pas disponible pour les entrées compressées ou au format CSV et repose sur la duplication de processus, il n’est donc pas compatible avec Windows.
  • La lecture distante de fichiers CSV n’est pas prise en charge par le chemin d’entrée distante du projet principal.
  • L’analyse parallèle crée des fichiers temporaires nommés comme tmp_pgbadgerXXXX.bin dans le répertoire temporaire sélectionné (par défaut, le répertoire temporaire du système).
  • Ne supprimez pas ces fichiers pendant l’exécution de pgBadger. Utilisez --tempdir pour les placer sur un stockage disposant d’une capacité suffisante.
  • Commencez avec un nombre modeste de workers et surveillez la charge CPU, le débit de lecture, la consommation d’espace temporaire et le temps écoulé.

5 - Rapports incrémentiels

Générer des rapports quotidiens et hebdomadaires, contrôler la rétention, reconstruire la sortie et ajouter des synthèses mensuelles

Le mode incrémentiel stocke les statistiques analysées sous forme binaire, puis génère un rapport HTML par jour, un rapport cumulatif par semaine et un index au format calendrier reliant ces rapports. Il est destiné à un traitement répété des journaux tournés sans compter deux fois les mêmes entrées.

Générer des rapports quotidiens et hebdomadaires

Exécutez pgBadger après la rotation quotidienne des journaux et spécifiez un répertoire de sortie persistant :

crontab
0 4 * * * /usr/bin/pgbadger -I -q /var/log/postgresql/postgresql.log.1 -O /var/www/pg_reports/

-I active le mode incrémentiel et -O sélectionne le répertoire contenant l’état binaire, l’index calendrier et les rapports générés. pgBadger conserve son propre état incrémentiel dans ce répertoire, donc --last-parsed est inutile sauf si vous souhaitez délibérément placer le fichier d’état ailleurs.

Utilisez un répertoire HTML séparé tout en conservant l’état binaire dans le répertoire d’origine :

$ pgbadger -I -O /var/lib/pgbadger/data -H /var/www/pg_reports postgresql.log.1

Traitez les fichiers binaires comme des données sources pour des reconstructions ultérieures. Sauvegardez-les ou conservez les journaux d’origine si la régénération du rapport est importante.

Rétention

Gardez uniquement un nombre choisi de semaines :

$ pgbadger --incremental --retention 8 \
    --outdir /var/www/pg_reports \
    /var/log/postgresql/postgresql.log.1

Les répertoires semaine et jour plus anciens sont supprimés automatiquement. Testez la politique sur une copie non productive avant de l’activer autour de votre historique de rapports unique.

Écrire les ressources partagées séparément

Par défaut, les rapports HTML intègrent leur JavaScript et leur CSS. Dans un répertoire contenant de nombreux rapports incrémentiels, -X / --extra-files écrit les ressources partagées séparément et réduit la duplication de sortie :

$ pgbadger -X -I -O /var/www/pg_reports postgresql.log.1

Tous les rapports ainsi que leur répertoire de ressources versionnées doivent être déplacés ensemble.

Reconstruire les rapports existants

Après une mise à jour de pgBadger ou l’application d’une correction de génération de rapport, reconstruisez le HTML à partir des données binaires conservées :

$ rm /var/www/pg_reports/*.js
$ rm /var/www/pg_reports/*.css
$ pgbadger -X -I -O /var/www/pg_reports --rebuild

Utilisez -E / --explode à nouveau si les rapports originaux ont été générés par base de données.

Utilisez l’option longue --rebuild. Dans la référence actuelle des commandes, -R signifie --retention ; traiter -R comme un raccourci de reconstruction appliquerait l’option incorrecte.

Ajouter un rapport mensuel

Les rapports quotidiens et hebdomadaires sont automatiques. L’agrégation mensuelle est explicite, car elle peut être coûteuse pour un historique important :

$ pgbadger -X --month-report 2026-07 /var/www/pg_reports/

Le mois généré est ajouté à l’index du calendrier. Exécuter à nouveau la commande reconstruit ce mois à partir des données binaires disponibles. Pour l’historique par base de données, répétez -E :

$ pgbadger -E -X --month-report 2026-07 /var/www/pg_reports/

La référence complète des commandes fournit également --day-report YYYY-MM-DD, --no-week, --noreport, --start-monday, et --iso-week-number pour des plans plus spécialisés.

Ouvrez l’exemple de rapport incrémental incremental-report inclus pour examiner le calendrier, les liens par semaine et la hiérarchie des rapports journaliers sans connexion réseau.

6 - Formats de sortie

Choisissez une sortie HTML, texte, binaire, JSON ou CSV brut et combinez les fichiers intermédiaires

pgBadger sélectionne la sortie en fonction de l’extension du nom de fichier ou de -x / --extension. Utilisez -o / --outfile plus d’une fois pour générer plusieurs formats à partir du même analyse.

FormatExtension typiqueMeilleur usage
HTML.htmlrapport interactif, lisible par l’humain avec graphiques
Texte.txtconsultation en terminal et sortie archivée brute
Binaire.binstatistiques intermédiaires fusionnables et reconstructions de rapport
JSON.jsonintégration avec d’autres logiciels ; nécessite JSON::XS
CSV brutfichier de sortie choisiextraction orientée ligne avec --dump-raw-csv

HTML et texte

La sortie par défaut est out.html :

$ pgbadger postgresql.log -o report.html

HTML intègre normalement les scripts, styles, polices et données de rapport nécessaires à la visualisation autonome. -X / --extra-files déplace les ressources JavaScript et CSS partagées hors des rapports incrémentiels ; conservez ces ressources à côté de l’arborescence HTML.

Générer du texte explicitement :

$ pgbadger -x text -o report.txt postgresql.log

Utilisez - comme nom de fichier de sortie pour écrire un format pris en charge sur la sortie standard.

Données intermédiaires binaires

La sortie binaire sépare l’analyse de la présentation. Générez des incréments horaires à partir d’un journal quotidien en croissance :

$ pgbadger --last-parsed .pgbadger_last_state \
    -o sunday/hour01.bin \
    /var/log/pgsql/postgresql-Sun.log

Fusionnez un ou plusieurs fichiers binaires dans un rapport frais :

$ pgbadger -o sunday.html sunday/*.bin

Lorsque le serveur écrit un fichier journal par heure, créez un fichier binaire pour chaque rotation, puis reconstruisez le fichier HTML cumulatif chaque fois que nécessaire :

$ pgbadger -o day1/hour01.bin postgresql-2026-08-15_01.log
$ pgbadger -o day1/hour02.bin postgresql-2026-08-15_02.log
$ pgbadger -o day1/hour03.bin postgresql-2026-08-15_03.log
$ pgbadger -o day1.html day1/*.bin

Gardez les fichiers binaires provenant de versions compatibles de pgBadger ensemble. Consultez les notes de version pour la compatibilité des formats incrémentaux avant de mettre à jour un répertoire de rapports à long terme.

JSON

La sortie JSON est destinée aux consommateurs programmables, tels que les pipelines de surveillance ou de rapport :

$ pgbadger -o report.json postgresql.log

Installez JSON::XS en premier. Ajoutez --prettify-json pour améliorer la lisibilité lorsque la taille du fichier et le temps de génération sont secondaires.

Exports bruts et orientés requêtes

La référence de commande fournit également des exports spécialisés :

  • --dump-raw-csv analyse le journal et écrit un fichier CSV orienté ligne sans générer de rapport ;
  • --csv-separator change le délimiteur du CSV brut ;
  • --dump-all-queries émet chaque requête après avoir remplacé les paramètres liés ;
  • --normalized-only écrit les requêtes normalisées ;
  • --query-numbering numérote la sortie texte orientée requête.

Ces modes peuvent contenir du SQL d’application, des identificateurs, des utilisateurs, des adresses clientes ou des valeurs littérales. Examinez la sortie avant de la partager et utilisez --anonymize lorsque l’analyse prévue ne nécessite pas de valeurs littérales.

7 - Rapports d'exemple

Ouvrir des rapports complets, erreur uniquement et incrémentaux pgBadger à partir de l’instantané du site local

Le contenu d’exemple a été généré par pgBadger 11.8 en mai 2022. Les exemples originaux sont stockés avec ce site, de sorte que la navigation dans le rapport, les graphiques, les styles et les scripts restent disponibles sans avoir à interroger le serveur d’origine.

ExempleCe qu’il illustreCopie locale
Rapport completActivité PostgreSQL ainsi que les statistiques de PgBouncerOuvrir le rapport complet
Rapport incrémentielIndex calendrier, agrégation hebdomadaire et pages quotidiennesOuvrir l’index incrémentiel
Erreurs et événementsUn rapport limité aux erreurs et aux événements opérationnelsOuvrir le rapport d’erreurs

Rapport complet

Le rapport complet est un document HTML autonome. Utilisez la navigation en haut pour examiner les statistiques globales, les requêtes, les sessions, les connexions, les fichiers temporaires, les points de contrôle, l’activité d’autovacuum, les verrous et les graphiques spécifiques à PgBouncer.

Les données constituent un exemple de démonstration, non une référence de benchmark actuelle. Les valeurs, les versions de PostgreSQL et l’interface utilisateur pgBadger intégrée reflètent la date de génération du rapport.

Hiérarchie incrémentale

L’exemple incrémental préserve la structure de lien complète :

report/
├── index.html
├── 2012/
│   ├── week-49/index.html
│   ├── week-50/index.html
│   └── 12/06 … 12/index.html
└── 11/
    ├── pgbadger.min.css
    ├── pgbadger.min.js
    └── bundled chart and UI assets

L’index principal pointe vers deux rapports hebdomadaires et sept rapports quotidiens. Tous les liens relatifs ont été conservés, donc déplacer uniquement index.html romprait l’exemple ; conservez l’arborescence complète.

Sécurité et vie privée

Les rapports réels peuvent exposer du texte SQL, des valeurs liées, des noms de base de données et d’utilisateurs, des noms d’applications, des adresses clientes, des détails d’erreurs et des modèles de charge. Avant de publier un rapport :

  • utilisez --anonymize lorsque les littéraux ne sont pas nécessaires ;
  • appliquez les filtres d’inclusion/exclusion avant la génération du rapport ;
  • inspectez le rapport HTML final ou les données exportées, et non seulement la ligne de commande ;
  • protégez l’emplacement du rapport avec le même soin que les journaux opérationnels.

8 - Historique des versions

Historique des modifications complet de pgBadger 9.x à 13.x, normalisé à partir du fichier ChangeLog upstream

Le site officiel publie les annonces de version directement sur sa page d’accueil. Cette page s’arrête à la version 12.4 et répète accidentellement les versions 11.1 à 11.3 avec des dates contradictoires. Cette édition utilise comme référence canonique le dépôt upstream verrouillé ChangeLog, supprime uniquement ces rendus en double, et ajoute les versions ultérieures 13.x. Les entrées sont conservées en intégralité et triées par ordre décroissant de date au sein de chaque série.

SérieVersions inclusesPremière – dernière versionPage
13.x13.0–13.22024-12-08 – 2025-12-29Lire 13.x
12.x12.0–12.42022-09-13 – 2023-12-25Lire 12.x
11.x11.0–11.82019-06-25 – 2022-04-08Lire 11.x
10.x10.0–10.32018-09-09 – 2019-02-14Lire 10.x
9.x9.0–9.22016-09-02 – 2017-07-27Lire 9.x

Pour les archives et ressources téléchargeables, utilisez GitHub Releases . Les dates de publication indiquées dans cette section correspondent à l’historique source d’origine ; elles ne correspondent pas à l’heure de téléchargement de cette version documentaire.

8.1 - Notes de version pgBadger 13.x

Notes de version complètes de la série pgBadger 13.x

Ces entrées conservent l’intégralité de l’historique des modifications upstream pour pgBadger 13.x, du plus récent au plus ancien.

v13.2 · 2025-12-29

Il s’agit d’une version de maintenance de pgBadger qui corrige des problèmes et applique des correctifs signalés par les utilisateurs depuis la dernière version.

  • Corriger la normalisation qui ne traitait pas correctement les chaînes entre guillemets simples équilibrées, y compris les guillemets échappés à l’intérieur. Remerciements à Bertrand Bourgier pour le rapport.
  • Corriger les exigences relatives aux espaces réservés dans la documentation.
  • Corriger le cas où aucune entrée d’exemple d’erreur n’était rapportée. Remerciements à john doe pour le rapport.
  • Corriger un problème potentiel de priorité entre ! et %s. Remerciements à Luca Santarelli et Philipp Trulson pour le rapport.
  • Mettre à jour le code pgFormatter à la version 5.9
  • Ajouter une action CI GitHub pour le test lors de la poussée de commit.
  • Corriger l’analyse du placeholder %r dans log_line_prefix. Remerciements à nike7o0 pour le rapport.
  • Corriger l’avertissement relatif à une valeur non initialisée. Remerciements à Ales Zeleny pour le rapport.
  • Améliorer la documentation des options SSH pour l’analyse des journaux PostgreSQL avec des exemples. Remerciements à Ulrich Konrad pour le correctif.
  • Ajouter la commande –ssh-sudo pour exécuter des commandes en SSH en tant que sudo. Remerciements à Andrew Jackson pour le correctif.
  • Corriger un problème potentiel de priorité entre ! et l’égalité de chaîne. Remerciements à Adrien Nayrat pour le rapport.
  • Corriger l’analyse des statistiques de pgbouncer. Remerciements à mrgtt pour le rapport.

v13.1 · 2025-03-16

Il s’agit d’une version de maintenance de pgBadger qui corrige des problèmes signalés par les utilisateurs depuis la dernière version et ajoute certaines nouvelles fonctionnalités :

  • Ajouter un nouveau rapport sur le débit de vacuum avec un graphique affichant le vacuum par table consommant le plus de CPU. Le rapport de sortie sous forme de tableau inclut les temps d’I/O lecture et écriture par table ainsi que le temps CPU écoulé par table. Merci à Ales Zeleny pour la demande de fonctionnalité. Cette mise à jour ajoute également les pages gelées et les tuples au rapport Vacuum par table.
  • Ajouter l’option –no-fork à des fins de débogage pour ne pas créer de processus fils du tout. Merci à Ales Zeleny pour la demande de fonctionnalité.
  • Ajouter les millisecondes à la sortie brute au format CSV. Merci à Henrietta Dombrovskaya pour la demande de fonctionnalité.
  • Ajouter le nom du fichier de journal aux rapports d’échantillonnage lorsqu’un traitement multiple de fichiers est effectué. Merci à Adrien Nayrat pour la demande de fonctionnalité.

Voici la liste complète des modifications et des remerciements :

  • Corriger l’analyse des paramètres liés. Remerciements à Thomas Kotzian pour le correctif
  • Appliquer le filtre de requête aux requêtes sur plusieurs lignes. Remerciements à Benjamin Jacobs pour le correctif
  • Mettre à jour les résultats des tests suite aux modifications du stockage du nom de fichier journal
  • Corriger le niveau de message ERROR par rapport à LOG dans la sortie JSON. Remerciements à Philippe Viegas pour le rapport.
  • Supprimer l’importation de la méthode tmpdir non exportée depuis File::Temp. Remerciements à kmoradha pour le rapport.

v13.0 · 2024-12-08

Il s’agit d’une version majeure de pgBadger qui corrige les problèmes signalés par les utilisateurs depuis la dernière version et ajoute certaines nouvelles fonctionnalités :

  • Ajouter deux nouvelles options permettant de redéfinir les bornes des histogrammes de temps de requête et de session. –histogram-query VAL : utiliser des bornes personnalisées pour l’histogramme des temps de requête. Bornes par défaut en millisecondes : 0,1,5,10,25,50,100,500,1000,10000 –histogram-session VAL : utiliser des bornes personnalisées pour l’histogramme des temps de session. Bornes par défaut en millisecondes : 0,500,1000,30000,60000,600000,1800000,3600000,28800000 Merci à JosefMachytkaNetApp pour la demande de fonctionnalité.
  • Ajouter le support de l’affichage du plan auto_explain pour les formats de journalisation csv et json. Merci à zxwsbg et à Alexander Rumyantsev pour le rapport.
  • Ajouter trois messages LOG qui n’étaient pas signalés comme événements : fin de fichier inattendue, paquet de démarrage incomplet et blocage détecté en attente. Merci à dottle pour le rapport.

Problèmes de compatibilité descendante :

  • Modifiez la manière dont les événements de niveau LOG signalés dans les rapports Événements sont stockés. Certains d’entre eux étaient encore signalés et comptés comme des erreurs au lieu d’être traités comme des entrées de niveau LOG. La correction consiste à les stocker et à les rapporter comme des EVENTLOG afin de les distinguer des requêtes. Ce changement introduit une rupture de compatibilité descendante lorsque pgBadger est utilisé en mode incrémentiel. Vous aurez simplement un comportement double durant la semaine de la mise à jour. Merci à Matti Linnanvuori pour le signalement.

Correctifs de bogues :

  • Requêtes non rapportées générant le plus d’annulations en raison de statement_timeout.
  • Mettre à jour les tests de régression
  • Corriger le formatage du plan d’exploration extrait au format CSV.
  • Corriger la perte de données d’auto-vacuum dans les rapports JSON : Durée moyenne d’auto-vacuum, tuples supprimés par table et nombre de vacuums par heure dans le rapport d’activité d’auto-vacuum. Remerciements à Ales Zeleny pour le correctif.
  • Corriger la ligne orpheline non associée aux requêtes consommant le plus de temps. Remerciements à Henrietta Dombrovskaya pour le signalement. Corriger l’utilisation d’une valeur non initialisée dans la correspondance de motif. Remerciements à Junior Dias pour le correctif.
  • Appliquer l’option –csv-separator à l’export brut au format CSV. Le séparateur par défaut est le point-virgule (;). Remerciements à Henrietta Dombrovskaya pour la demande de fonctionnalité.
  • Sortie CSV brute : ne pas ajouter de guillemets doubles aux paramètres et au nom d’application s’ils sont vides.
  • Ajouter des guillemets doubles lorsque les requêtes contiennent un point-virgule dans la sortie CSV brute. Remerciements à Henrietta Dombrovskaya pour le signalement.

8.2 - Notes de version de pgBadger 12.x

Notes de version complètes de la série pgBadger 12.x

Ces entrées conservent l’intégralité de l’historique des modifications upstream pour pgBadger 12.x, du plus récent au plus ancien.

v12.4 · 2023-12-25

Il s’agit d’une version de maintenance de pgBadger qui corrige les problèmes signalés par les utilisateurs depuis la dernière version.

  • Correction du rapport pgbouncer avec la version 1.21. Remerciements à Ales Zeleny pour le correctif.
  • Empêcher que le parallélisme du fichier Perl dépasse le nombre de fichiers. Remerciements à maliangzhu pour le signalement.
  • Correction du test de régression cassé depuis la version 12.3. Remerciements à ieshin pour le signalement.
  • Correction des cas où les entrées LOG étaient comptées comme des entrées de niveau d’erreur. Remerciements à Matti Linnanvuori pour le signalement.

v12.3 · 2023-11-27

Il s’agit d’une version de maintenance de pgBadger qui corrige des problèmes signalés par les utilisateurs depuis la dernière version. Elle introduit également quelques nouvelles fonctionnalités :

  • Ajouter l’option –include-pid pour ne rapporter que les événements liés à une session pid (%p). Peut être utilisée plusieurs fois. Merci à Henrietta Dombrovskaya pour la demande de fonctionnalité.
  • Ajouter l’option –include-session pour ne rapporter que les événements liés à l’identifiant de session (%c). Peut être utilisée plusieurs fois. Merci à Henrietta Dombrovskaya pour la demande de fonctionnalité.
  • Ajouter une nouvelle option –dump-raw-csv pour ne parser que le journal et exporter les informations au format CSV. Aucun traitement supplémentaire n’est effectué, aucun rapport n’est généré. Merci à Henrietta Dombrovskaya pour la demande de fonctionnalité.

Voici la liste complète des modifications et des remerciements :

  • Mettre à jour pgFormatter à la version 5.5
  • Corriger la date de fin de traitement avec le format jsonlog. Remerciements à jw1u1 pour le rapport.
  • Corriger l’orthographe dans « Sessions par application ». Remerciements à fairyfar pour le correctif.
  • Corriger le bug du graphique « Traffic INSERT/UPDATE/DELETE ». Remerciements à fairyfar pour le correctif.
  • Corriger l’analyse des lignes orphelines avec les requêtes bindées. Remerciements à youxq pour le rapport.
  • Corriger le rapport « Analyse par table » avec les nouvelles versions de PG. Remerciements à Jean-Christophe Arnu pour le correctif.
  • Corriger le parseur d’entrée syslog lorsque l’horodatage syslog contient des millisecondes. Remerciements à Pavel Rabel pour le rapport.

v12.2 · 2023-08-20

Il s’agit d’une version de maintenance de pgBadger qui corrige les problèmes signalés par les utilisateurs depuis la dernière version. Elle introduit également deux nouvelles fonctionnalités :

  • Ajouter le support de la durée d’autovacuum max, avg, min. Remerciements à Francisco Reinolds pour le correctif.
  • Ajouter le support du temps moyen d’attente de pgbouncer. Remerciements à Francisco Reinolds pour le correctif.

Voici la liste complète des modifications et des remerciements :

  • Corriger la sortie HTML corrompue lorsque le nom d’application contient <…>. Remerciements à Fabio Geiss pour le rapport.
  • Corriger l’association incorrecte des lignes orphelines lorsqu’un filtre sur la base de données est appliqué. Remerciements à jcasanov pour le rapport.
  • Corriger l’analyse du préfixe logplex.
  • Corriger la détection des lignes orphelines logplex.
  • Corriger l’analyse de la ligne autovacuum de system usage: CPU: .... Remerciements à Francisco Reinolds pour le correctif.
  • Éviter d’ajouter le répertoire de sortie si la sortie est stdout.
  • Uniformiser l’étiquette Durée moyenne de requête. Remerciements à Francisco Reinolds pour le correctif.
  • Mettre à jour la documentation pour les nouvelles options de pgBadger. Remerciements à Francisco Reinolds pour le correctif.
  • Corriger le cas où l’analyse n’était pas interrompue lorsque aucun descripteur de fichier ne pouvait être ouvert. Remerciements à vp pour le rapport.
  • Corriger l’aide en ajoutant le placeholder obligatoire %p/%t pour les informations de journal. Remerciements à Christophe Courtois pour le correctif.
  • Corriger le paramètre –retention. Remerciements à Bertrand Bourgier pour le correctif.
  • Corriger la suppression du répertoire de sortie supprimée par le commit 0e5c7d5 lorsque le répertoire de sortie HTML est défini. Remerciements à Bertrand Bourgier pour le rapport.
  • Corriger l’extension de sortie lorsque le répertoire de destination contient un caractère nécessitant une échappement en expression régulière. Remerciements à Bertrand Bourgier pour le correctif.
  • Remplacer les appels à POSIX::strftime("%s", ….) par un appel à localtime pour la version Windows. Remerciements à Bertrand Bourgier pour le correctif.
  • Corriger le nettoyage du répertoire de sortie HTML. Remerciements à Bertrand Bourgier pour le correctif.
  • Utiliser https par défaut pour l’URL explain. Remerciements à Philipp Trulson pour le correctif.

v12.1 · 2023-03-20

Il s’agit d’une mise à jour de maintenance de pgBadger qui corrige les problèmes signalés par les utilisateurs au cours des six derniers mois.

Voici la liste complète des modifications et des remerciements :

  • Corriger l’analyse des paramètres multilignes. Remerciements à Bekir Niyaz pour le rapport.
  • Corriger l’échec de normalisation de la requête avec ::tsrange. Remerciements à Philippe Griboval pour le rapport.
  • Ajouter le point cohérent de décodage logique et le démarrage pour les entrées de slot dans le rapport d’événements.
  • Gérer les autres formats d’horodatage avec ns + fuseau horaire. Remerciements à Ronan Dunklau pour le rapport.
  • Corriger la détection de %m lors de l’utilisation de la notation avec T. Remerciements à Ronan Dunklau pour le rapport.
  • Ajouter l’analyse des journaux générés par CloudNativePG. Remerciements à codrut panea pour le correctif.
  • Corriger l’option inutilisée –outdir dans la génération du rapport. Remerciements à Frédéric Guiet pour le rapport.
  • Mettre à jour le README avec les dernières modifications de la documentation. Remerciements à Manisankar pour le rapport.
  • Corriger une faute de frappe dans les exemples de pgBadger. Remerciements à Shinichi Hashiba pour le correctif.

v12.0 · 2022-09-13

Cette version majeure de pgBadger corrige certains problèmes signalés par les utilisateurs au cours des cinq derniers mois. Comme à l’accoutumée, elle inclut également de nouvelles fonctionnalités et des améliorations :

  • Supprimer le support de la sortie Tsung.
  • Améliorer les performances de pgBadger lorsque des centaines de paramètres liés doivent être remplacés.
  • Supprimer l’option -n | –nohighlight qui n’est plus utilisée depuis la mise à jour vers pgFormatter 4.
  • Utiliser la méthode POST pour envoyer le plan auto_explain à explain.depesz.com afin d’éviter la limite de longueur des paramètres GET.
  • Appliquer –exclude-query et –include-query aux traces bind/parse.
  • Ajouter un lien vers des exemples de rapports pgBadger dans la documentation.

Voici la liste complète des modifications et des remerciements :

  • Corriger les rapports mensuels qui échouaient sur « fichier journal … doit exister ». Merci à Jaume Sabater pour le signalement.
  • Corriger l’analyse du démarrage de pgbouncer lors de la lecture d’un message de débogage depuis stdin. Merci à aleszeleny pour le signalement.
  • Supprimer le support des sorties au format Tsung.
  • Améliorer considérablement les performances de pgBadger pour le remplacement des paramètres liés, qui pouvait entraîner une exécution infinie lorsque des centaines de paramètres étaient présents. Merci à Monty Mobile pour le signalement.
  • Corriger la documentation concernant les codes de retour de pgBadger, ainsi que certains codes de retour incorrects à certains endroits. Merci à Jaume Sabater pour le signalement.
  • Corriger plusieurs fautes de frappe. Merci à David Gilman pour le correctif.
  • Supprimer l’option -n | –nohighlight qui n’est plus utilisée depuis la mise à jour vers pgFormatter 4. Merci à Elena Indrupskaya pour le signalement.
  • Nombreuses corrections dans la documentation de pgBadger. Merci à Elena Indrupskay de Postgres Pro pour le correctif.
  • Permettre une demi-heure dans –log-timezone et –timezone, la valeur peut être un entier, par exemple 2, ou un nombre à virgule, par exemple 2.5. Merci à Mujjamil-K pour la demande de fonctionnalité.
  • Permettre l’utilisation d’expressions régulières pour –exclude-app et –exclude-client.. Merci à rdnkrkmz pour la demande de fonctionnalité.
  • Permettre l’utilisation de –explain-url avec le commit précédent et restaurer la limitation pour le format texte explicite.
  • Utiliser la méthode POST pour envoyer le plan auto_explain à explain.depesz.com afin d’éviter la limite de longueur des paramètres GET. Merci à hvisage pour le signalement.
  • Appliquer –exclude-query et –include-query aux traces bind/parse. Merci à Alec Lazarescu pour le signalement.
  • Corriger l’analyse des statistiques d’autovacuum provenant des journaux RDS. Merci à David Gilman pour le signalement.
  • Corriger le passage du format de journal lors de l’analyse d’un journal distant. Merci à spookypeanut pour le signalement.
  • Ajouter un lien vers des exemples de rapports pgBadger dans la documentation.
  • Corriger les rapports Session par utilisateur. Merci à vitalca pour le signalement.
  • Corriger l’analyse des journaux json provenant de la sortie PG15.
  • Corriger le rapport d’erreurs/événements basé sur du texte. Merci à Michael Banck pour le correctif.
  • Corriger la faute de frappe dans la fonction normalize_error(). Merci à Michael Banck pour le correctif.

8.3 - Notes de version de pgBadger 11.x

Notes de version complètes de la série pgBadger 11.x

Ces entrées conservent l’intégralité de l’historique des modifications upstream pour pgBadger 11.x, du plus récent au plus ancien.

v11.8 · 2022-04-08

Cette version de pgBadger corrige certains problèmes signalés par les utilisateurs au cours des trois derniers mois, en particulier deux correctifs concernant la détection des nouvelles entrées de journal en mode incrémentiel.

  • Corriger la détection des nouvelles entrées de journal avec horodatage lorsque le format milliseconde (%m) ou époque (%n) était utilisé dans log_line_prefix.
  • Corriger la détection des nouvelles entrées de journal dans le fichier local lorsque le mode multiprocessus n’était pas utilisé.

Voici la liste complète des modifications et des remerciements :

  • Revue complète et simplification de la détection des modifications dans le fichier journal.
  • Rapports des messages « impossible de (recevoir|envoyer) des données (du|au) client » dans les rapports Événements. Remerciements à Adrien Nayrat pour le signalement.
  • Correction d’un problème d’analyse lorsque le nom d’une requête préparée contient le caractère « : ». Remerciements à aleszeleny pour le signalement.
  • Correction de la détection des nouvelles entrées de journal avec horodatage lorsque les millisecondes (%m) ou l’époque (%n) sont utilisées. Remerciements à aleszeleny pour le signalement.
  • Correction de la détection des nouvelles entrées de journal dans un fichier local lorsque le mode multiprocessus n’était pas utilisé. Remerciements à aleszeleny pour le signalement.
  • Correction de la détection des nouvelles entrées de journal dans les fichiers distants via SSH. Remerciements à Luca Ferrari pour le signalement.
  • Correction des données incorrectes dans le nom d’utilisateur du rapport « Connexions par utilisateur ». Remerciements à caseyandgina pour le signalement.
  • Correction de la commande SSH lors de l’utilisation d’une URI, les options SSH étaient manquantes. Remerciements à Luca Ferrari pour le signalement.
  • Prise en charge du placeholder queryid %Q. Remerciements à Adrien Nayrat pour le correctif.
  • Correction d’une faute de frappe dans une phrase d’erreur. Remerciements à Luca Ferrari pour le correctif.
  • Rapport du message : « le processus serveur a été terminé par un signal » dans le rapport Événements. Remerciements à Avi Vallarapu pour le signalement.
  • doc : correction du nom de fichier pour la commande incrémentale hebdomadaire. Remerciements à Théophile Helleboid pour le correctif.
  • t/04_advanced.t : correction du test syslog. Remerciements à Christoph Berg pour le correctif.

v11.7 · 2022-01-23

Cette version de pgBadger corrige certains problèmes signalés par les utilisateurs au cours des cinq derniers mois, ainsi que certaines améliorations :

  • Ajouter une nouvelle option –no-progressbar pour ne pas l’afficher tout en conservant les autres sorties.
  • Ajouter une nouvelle option –day-report permettant de régénérer un rapport HTML pour une journée spécifique. Comme l’option –month-report, mais uniquement pour une journée. Elle nécessite la présence des répertoires de sortie incrémentielle et de tous les fichiers binaires nécessaires. La valeur doit être une date au format : YYYY-MM-DD
  • Améliorer l’analyse des journaux Heroku logplex et cloudsql au format JSON.

Voici la liste complète des modifications et des remerciements :

  • Mettre à jour les guides de contribution et le fichier Makefile.PL afin d’améliorer la cohérence, la clarté et les dépendances. Merci à diffuse pour le correctif.
  • Corriger l’utilisation du fichier de dernière analyse (–last-parsed) en mode binaire. Merci à wibrt pour le signalement.
  • Ajouter un test de régression pour l’utilisation de –last-parsed et corriger le test de régression sur le rapport pour les fichiers temporaires uniquement.
  • Corriger le titre du graphique session par hôte. Merci à Norbert Bede pour le signalement.
  • Corriger le numéro de semaine lors du calcul des rapports hebdomadaires lorsque les options –iso-week-number et –incremental sont activées. Merci à hansgv pour le signalement.
  • Ajouter l’option –no-progressbar pour ne pas l’afficher tout en conservant les autres sorties. Merci à seidlmic pour la demande de fonctionnalité.
  • Empêcher l’affichage excessif de lignes au format inconnu en mode débogage pour les fichiers JSON multilignes.
  • Corriger l’analyse du journal JSON en ligne simple cloudsql. Merci à Thomas Leclaire pour le signalement.
  • Corriger le résumé des fichiers temporaires avec log_temp_files uniquement.
  • Afficher un message de débogage avec -v même si -q ou –quiet est utilisé.
  • Corriger la détection automatique du fichier jsonlog.
  • Corriger l’analyse du fichier journal cloudsql. Merci à Luc Lamarle pour le signalement.
  • Corriger l’extraction du PID dans parse_json_input. Merci à Francois Scala pour le correctif.
  • Ajouter une nouvelle option –day-report avec une valeur au format : AAAA-MM-JJ, pouvant être utilisée pour reconstruire un rapport HTML pour la journée spécifiée. Merci à Thomas Leclaire pour la demande de fonctionnalité.
  • Corriger le compteur de requêtes dans la barre de progression. Merci à Guillaume Lelarge pour le signalement.
  • Corriger les requêtes incomplètes stockées pour les rapports top bind et prepare.
  • Corriger la normalisation de l’identifiant d’objet, dans certains cas les chiffres étaient remplacés par un ?.
  • Corriger les requêtes normalisées non formatées lorsque des commentaires sont présents au début.
  • Corriger le format multiligne dans stderr lorsque –dbname est utilisé. Merci à Guillaume Lelarge pour le signalement.
  • Corriger la non-génération de rapports en mode incrémental lorsque –dbname est utilisé. Merci à Dudley Perkins pour le signalement.
  • Ne plus interrompre l’exécution si un fichier binaire n’est pas compatible, passer au fichier suivant. Merci à Thomas Leclaire pour la suggestion.
  • Corriger le changement de format Heroku logplex dans le parseur pgBadger. Merci à François Pietka pour le signalement.

v11.6 · 2021-09-04

Cette version de pgBadger corrige certains problèmes signalés par les utilisateurs au cours des sept derniers mois, ainsi que certaines améliorations :

  • Ajouter la détection de l’identifiant de requête dans log_line_prefix, nouvelle fonctionnalité disponible depuis PG14. Remerciements à Florent Jardin pour le signalement.
  • Ajouter des tests de régression avancés avec exclusion de base de données et la fonctionnalité d’explosion. Remerciements à MigOps Inc pour le correctif.
  • Appliquer le traitement multiprocessus à la génération du rapport lorsque –explode est utilisé. Remerciements à MigOps Inc pour le correctif et à Thomas Leclaire pour la demande de fonctionnalité.
  • Ajouter –iso-week-number en mode incrémentiel, les semaines du calendrier commencent un lundi et respectent le numéro de semaine ISO 8601, compris entre 01 et 53, où la semaine 1 est la première semaine qui contient au moins 4 jours dans la nouvelle année. Remerciements à Alex Muntada pour la demande de fonctionnalité.
  • Ajouter l’option de ligne de commande –keep-comments pour ne pas supprimer les commentaires des requêtes normalisées. Utile si vous souhaitez distinguer des requêtes normalisées identiques. Remerciements à Stefan Corneliu Petrea pour la demande de fonctionnalité.
  • Ignorer les lignes INFO introduites dans le fichier journal par des logiciels tiers. Remerciements à David Piscitelli pour le signalement.
  • Ajouter la compatibilité avec les fichiers journaux PostgresPro incluant le numéro de ligne et la taille en octets suivant la durée d’exécution de l’instruction. Remerciements à panatamann pour le signalement.
  • Analyser les horodatages contenant des T pour permettre l’utilisation des timestamps issus de journalctl. Remerciements à Graham Christensen pour le correctif.
  • Améliorer le portage sous Windows. Remerciements à Bertrand Bourgier pour les correctifs.

Note importante :

  • Attendre que –iso-week-number devienne la valeur par défaut dans la prochaine version majeure et que l’option –start-monday soit supprimée, car la semaine commencera toujours un lundi. La possibilité de faire commencer les rapports hebdomadaires un dimanche sera supprimée afin de simplifier le code.

Voici la liste complète des modifications et des remerciements :

  • Corriger la duplication du message d’avertissement : “la base de données … doit être vidée dans un délai de … transactions”. Remerciements à Christophe Courtois pour le signalement.
  • Corriger l’utilisation d’une variable non initialisée. Remerciements à phiresky pour le signalement.
  • Améliorer la détection de l’identifiant de requête, qui peut être négatif, ainsi que sa lecture depuis les fichiers CSV.
  • Corriger le cas où le dernier fichier en mode incrémentiel est toujours analysé, même s’il avait déjà été traité. Remerciements à Thomas Leclaire pour le signalement.
  • Mettre à jour l’expression régulière du format syslog pour gérer le cas où l’indicateur de session contient un seul entier au lieu de deux entiers séparés par un tiret. Remerciements à Timothy Alexander pour le correctif.
  • Corriger l’option –exclude-db afin de créer quand même le rapport associé avec les journaux JSON. Remerciements à MigOps Inc pour le correctif et à Thomas Leclaire pour le signalement.
  • Ajouter un test de régression concernant la version défectueuse de Storable.
  • Corriger l’utilisation d’une valeur non initialisée dans l’itérateur de substitution en mode incrémentiel lors de la génération du rapport hebdomadaire. Remerciements à Thomas Leclaire, Michael Vitale, Sumeet Shukla et Stefan Corneliu Petrea pour le signalement.
  • Ajouter l’option ‘g’ pour remplacer tous les paramètres liés. Remerciements à Nicolas Lutic et Sébastien Lardiere pour le correctif.
  • Améliorations de la documentation. Remerciements à Stefan Petrea pour le correctif.
  • Corriger le calcul de fuseau horaire dans le journal des modifications. Remerciements à Stefan Petrea pour le correctif.
  • Corriger le filtre de journal par heure de début/fin.
  • Corriger l’association erronée des lignes orphelines pour les requêtes multilignes avec un filtre sur la base de données. Remerciements à Abhishek Mehta pour le signalement.
  • Corriger les rapports en mode incrémentiel lorsque le paramètre –dbname est partiellement ignoré avec l’option “explode” (-E). Remerciements à lrevest pour le signalement.
  • Mettre à jour les ressources JavaScript.
  • Corriger l’affichage du menu avant le passage en mode hamburger lorsque l’écran est réduit. Remerciements à Guillaume Lelarge pour le signalement.
  • Corriger le traitement des valeurs de paramètres liés sur plusieurs lignes dans le journal, qui n’était pas correctement pris en charge.
  • Appliquer la même correction que celle du correctif précédent dans pgFormatter.
  • Corriger une autre utilisation d’une valeur non initialisée dans l’itérateur de substitution issu du code de pgFormatter. Remerciements à Christophe Courtois pour le signalement.
  • Corriger la normalisation des requêtes. Remerciements à Jeffrey Beale pour le correctif.
  • S’assurer que toutes les instructions se terminent par un point-virgule lorsque –dump-all-queries est utilisé. Remerciements à Christian pour le signalement.
  • Corriger une faute de frappe et l’initialisation du type de fin de ligne avec plusieurs fichiers journaux.
  • Ajouter la détection automatique du type de fin de ligne pour corriger le décalage LAST_PARSED lorsque le type EOL est sur 2 octets (cas Windows). Remerciements à Bertrand Bourgier pour le correctif.
  • Corriger le portage de get_day_of_week() sous Windows où strftime %u n’est pas pris en charge. Remerciements à Bertrand Bourgier pour le correctif.
  • Corriger le portage sous Windows qui appelait l’utilitaire perl pl2bat.bat pour créer un pgBadger.bat corrompu en raison de la manière dont DATA était lu dans pgBadger. Remerciements à Bertrand Bourgier pour le correctif.
  • Corriger le filtre par heure de début/fin et ajouter un test de régression pour les filtres de timestamp. Remerciements à Alexis Lahouze et plmayekar pour le signalement.
  • Corriger l’utilisation d’une valeur non initialisée dans la correspondance de motif introduite par la mise à jour de pgFormatter. Remerciements à arlt pour le signalement.

v11.5 · 2021-02-18

Cette version de pgBadger corrige certains problèmes signalés par les utilisateurs au cours des trois derniers mois, ainsi que certaines améliorations :

  • Ajouter un rapport sur le temps d’inactivité des sessions, calculé à l’aide de : « temps total des sessions - temps total des requêtes / nombre de sessions » Cela nécessite que les options log_connection et log_disconnection soient activées, ainsi que log_min_duration_statement = 0 (toutes les requêtes sont journalisées) pour obtenir une valeur fiable. Ce rapport permet de connaître la quantité de temps d’inactivité perdue, et d’évaluer si un mode de transaction avec pooler serait utile. Ce rapport est disponible dans l’onglet « Sessions » du rapport « Statistiques globales » et dans l’onglet « Sessions » des rapports « Activité générale » (par heure).
  • Ajouter la masquage des valeurs numériques, remplacées par 4 chiffres aléatoires.
  • Mettre à jour le formateur SQL basé sur pgFormatter 5.0.

Voici la liste complète des modifications et des remerciements :

  • Corriger l’analyse des instructions multilignes cloudsql. Remerciements à Jon Young pour le rapport.
  • Ajouter un test de régression pour l’anonymisation.
  • Corriger l’anonymisation cassée par le troncature maxlength. Remerciements à artl pour le rapport.
  • Ajouter l’anonymisation des paramètres dans les rapports sur les préparations et liaisons coûteuses en temps. Remerciements à arlt pour le rapport.
  • Ajouter la prise en charge des microsecondes dans le préfixe de ligne de journal logplex. Remerciements à Ross Gardiner pour le rapport.
  • Ajouter un rapport sur le temps d’inactivité des sessions. Remerciements à Guillaume Lelarge pour la demande de fonctionnalité.
  • Compléter le correctif pour prendre en charge les lignes multilignes au format jsonlog.

v11.4 · 2020-11-24

Cette version de pgBadger corrige certains problèmes signalés par les utilisateurs au cours des quatre derniers mois. Elle améliore le support des informations de journalisation de PostgreSQL 13 et ajoute quelques nouvelles fonctionnalités :

  • Ajouter des informations complètes sur l’autovacuum dans le rapport « Vacuums par table » concernant l’utilisation du tampon (accès réussis, échoués, modifiés), les sauts dus aux verrous, les sauts dus au gel et l’utilisation du WAL (enregistrements, images de pages entières, octets). Dans le rapport « Tuples supprimés par table », ajouter également les informations suivantes sur l’autovacuum : tuples restants, tuples non encore supprimables et pages restantes. Ces informations ne sont disponibles que dans l’onglet « Table ».
  • Ajouter un nouveau rapport de répartition concernant les causes de démarrage des points de contrôle.
  • Ajouter la détection du nom d’application à partir des traces d’autorisation de connexion.

Voici la liste complète des modifications et des remerciements :

  • Corriger une faute de frappe dans un message d’erreur. Remerciements à Vidar Tyldum pour le correctif.
  • Corriger le portage sous Windows avec l’erreur : « impossible de charger des données binaires incompatibles ». Remerciements à Eric Brawner pour le signalement.
  • Corriger une faute de frappe sur l’option –html-outdir dans l’utilisation et la documentation de pgBadger. Remerciements à Vidar Tyldum pour le correctif.
  • Corriger la détection automatique du format jsonlog/cloudsql. Remerciements à Jon Young pour le signalement.
  • Corriger l’analyse des logs CSV avec PG v13. Remerciements à Kanwei Li pour le signalement et à Kaarel Moppel pour le correctif.
  • Corriger le tri des requêtes générant le rapport des fichiers temporaires les plus nombreux. Remerciements à Sebastien Lardiere pour le signalement.
  • Ajouter la trace de la version de pgBadger en mode débogage.

v11.3 · 2020-07-26

Cette version de pgBadger corrige plusieurs problèmes signalés par les utilisateurs au cours des quatre derniers mois. Elle introduit également certaines nouvelles fonctionnalités et de nouveaux options en ligne de commande :

  • Ajouter la détection automatique des horodatages UTC afin d’éviter d’appliquer un fuseau horaire aux graphiques.
  • Ajouter le support du format de journal JSON de GCP CloudSQL.
  • Ajouter une nouvelle option –dump-all-queries pour utiliser pgBadger afin d’extraire toutes les requêtes dans un fichier texte, aucun rapport n’est généré, uniquement la liste complète des instructions trouvées dans le journal PostgreSQL. Les paramètres liés sont insérés dans les requêtes à leur position respective.
  • Ajouter une nouvelle option -Q | –query-numbering utilisée pour numéroter les requêtes dans la sortie lors de l’utilisation des options –dump-all-queries ou –normalized-only..
  • Ajouter une nouvelle option de ligne de commande –tempdir pour définir le répertoire où les fichiers temporaires seront écrits. Utile sur les systèmes qui n’autorisent pas l’écriture dans /tmp..
  • Ajouter l’option de ligne de commande –ssh-port pour définir le port SSH si ce n’est pas le port par défaut 22. La notation URI prend également en charge la spécification du port SSH en utilisant la forme suivante : ssh://192.168.1.100:2222//var/log/postgresql-11.log

Voici la liste complète des modifications et des remerciements :

  • Corriger les rapports incrémentiels pour le format de journal jsonlog/cloudsql. Merci à Ryan DeShone pour le rapport
  • Ajouter la détection automatique de l’horodatage UTC afin d’éviter d’appliquer un fuseau horaire détecté automatiquement aux graphiques. Avec une heure UTC, le JavaScript appliquera le fuseau horaire local. Merci à Brett Stauner pour le rapport.
  • Corriger l’analyse incrémentielle des journaux journalctl qui ne fonctionnait pas à partir de la deuxième exécution. Merci à Paweł Koziol pour le correctif.
  • Corriger le chemin vers le fichier de ressources lorsque -X et -E sont utilisés. Merci à Ryan DeShone pour le rapport.
  • Corriger le rapport d’activité générale concernant les requêtes de lecture/écriture. Merci à alexandre-sk5 pour le rapport.
  • Ajouter un message de débogage lorsque le mode parallèle n’est pas utilisé.
  • Corriger la logique elsif dans la détection de la taille du fichier et l’espace supplémentaire introduit dans la commande journalctl lorsque l’option –since est ajoutée. Merci à Pawel Koziol pour le correctif.
  • Corriger l’erreur « pas un descripteur de fichier valide ». Merci à Pawel Koziol pour le rapport.
  • Corriger le mode incrémentiel avec les fichiers RDS. Merci à Ildefonso Camargo, nodje et John Walsh pour le rapport.
  • Ajouter une nouvelle option -Q | –query-numbering utilisée pour numéroter les requêtes dans la sortie lors de l’utilisation des options –dump-all-queries ou –normalized-only.. Cela peut être utile pour extraire des requêtes multilignes du fichier de sortie à l’aide d’un script externe. Merci à Shantanu Oak pour la demande de fonctionnalité.
  • Corriger l’analyse des journaux json cloudsql lorsque log_min_duration_statement est activé. Merci à alexandre-sk5 pour le rapport.
  • Corriger la clé de hachage erronée pour les utilisateurs dans les journaux RDS. Merci à vosmax pour le rapport.
  • Corriger l’erreur liée à la modification d’une valeur de tableau non créable. Merci à John Walsh et Mark Fletcher pour le rapport.
  • Ajouter le support du format de journal json GCP CloudSQL, le format de journal (-f) est jsonlog. Merci à Thomas Poindessous pour la demande de fonctionnalité.
  • Ajouter une nouvelle option –dump-all-queries permettant d’utiliser pgBadger pour exporter toutes les requêtes dans un fichier texte, aucun rapport n’est généré, uniquement la liste complète des instructions trouvées dans le journal PostgreSQL. Les paramètres liés aux requêtes sont insérés à leur position respective. Aucun tri sur les requêtes uniques n’est effectué, toutes les requêtes sont journalisées. Merci à Shantanu Oak pour la demande de fonctionnalité.
  • Ajouter la documentation pour l’option –dump-all-queries.
  • Corriger le rapport vacuum pour les nouvelles versions de PG. Merci à Alexey Timanovsky pour le rapport.
  • Ajouter une nouvelle option de ligne de commande –no-process-info pour désactiver le changement du titre du processus afin d’aider à identifier le processus pgBadger, certains systèmes ne le permettent pas. Merci à Akshay2378 pour le rapport.
  • Ajouter une nouvelle option de ligne de commande –tempdir pour définir le répertoire où les fichiers temporaires seront écrits. Valeur par défaut : File::Spec->tmpdir() || ‘/tmp’ Peut être utile sur les systèmes qui n’autorisent pas l’écriture dans /tmp.. Merci à Akshay2378 pour le rapport.
  • Corriger les noms de fichiers compressés non pris en charge contenant des espaces et/ou des crochets. Merci à Alexey Timanovsky pour le rapport.
  • Ajouter une option de ligne de commande –ssh-port utilisée pour définir le port SSH si ce n’est pas le port par défaut 22. La notation URI ajoute également le support de la spécification du port SSH en utilisant la forme : ssh://192.168.1.100:2222//var/log/postgresql-11.log Merci à Augusto Murri pour la demande de fonctionnalité.

v11.2 · 2020-03-11

Cette version de pgBadger corrige plusieurs problèmes signalés par les utilisateurs au cours des six derniers mois. Elle introduit également quelques nouvelles fonctionnalités :

  • Ajouter le support et la détection automatique du format de journal AWS Redshift.
  • Ajouter le support du nouveau format de journal de pgbouncer 1.11.
  • Gérer les formats de compression zstd et lz4.
  • Permettre de séparer entièrement la construction des statistiques et celle du rapport HTML en mode incrémentiel, sans avoir à lire un fichier journal. Par exemple, il est possible d’exécuter pgBadger chaque heure comme suit : pgbadger -I -O “/out-dir/data” –noreport /var/log/postgresql*.log

Il crée simplement les fichiers binaires de données dans “/out-dir/data”, puis, par exemple, vous pouvez générer des rapports chaque soir pour la journée suivante dans un répertoire séparé /out-dir/reports : pgbadger -I -l “/out-dir/data/LAST_PARSED” -H “/out-dir/reports” /out-dir/data/2020/02/19/*.bin

Cela nécessite de définir le chemin vers les informations analysées pour la dernière fois, le chemin où les rapports HTML seront écrits et le fichier binaire de données de la journée.

Il existe également de nouvelles options de ligne de commande :

  • Ajoute une nouvelle option de ligne de commande –explain-url utilisée pour remplacer l’URL de l’outil d’explication graphique. L’URL par défaut est : http://explain.depesz.com/?is_public=0&is_anon=0&plan=

    Si vous souhaitez utiliser une installation locale de PgExplain ou un autre outil. pgBadger ajoutera le plan au format texte, échappé, à la fin de l’URL.

  • Ajoutez l’option –no-week pour indiquer à pgBadger de ne pas générer de rapports hebdomadaires en mode incrémentiel. Utile si cela prend trop de temps et de ressources.

  • Ajoutez l’option de ligne de commande –command afin de pouvoir définir une commande que pgBadger exécutera pour récupérer les entrées de journal sur stdin. pgBadger ouvrira un tube vers la commande et analysera les entrées de journal générées par celle-ci. Par exemple : pgbadger -f stderr –command ‘cat /var/log/postgresql.log’

    ce qui revient à exécuter pgBadger en spécifiant directement le fichier journal en argument. L’intérêt de cette option est évident si vous devez modifier le fichier journal en temps réel ou si les entrées de journal sont extraites d’un programme ou générées à partir d’une base de données. Par exemple :

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

  • Ajoutez l’option de ligne de commande –noexplain pour empêcher pgBadger de parser et de rapporter les plans d’exécution écrits dans le journal par l’extension auto_explain. Cela est utile si vous utilisez une version de PostgreSQL inférieure à 9.0, où pgBadger génère des rapports corrompus lorsqu’un plan d’exécution est présent dans le journal.

Compatibilité descendante :

  • Par défaut, pgBadger tronque les requêtes jusqu’à 100000 caractères. Cette valeur arbitraire peut être ajustée à l’aide de l’option –maxlength.. Le comportement précédent consistait à ne pas tronquer les requêtes, mais cela pouvait entraîner une utilisation excessive des ressources. Limiter la taille par défaut est plus sûr, et la limite de taille permet généralement d’éviter le troncature dans la majorité des cas. Toutefois, les requêtes ne seront pas reformattées si elles dépassent 25000 caractères.

Voici la liste complète des modifications et des remerciements :

  • Correction de l’option –exclude-client non fonctionnelle. Remerciements à John Walsh pour le signalement.
  • Ajout d’un test de régression pour l’analyse des fichiers journaux RDS et –exclude-client.
  • Correction de la barre de progression pour les fichiers journaux de pgbouncer. L’étiquette « queries » est désormais « stats » pour les fichiers journaux de pgbouncer.
  • Ajout de l’option en ligne de commande –explain-url permettant de remplacer l’URL de l’outil d’explication graphique. Remerciements à Christophe Courtois pour la demande de fonctionnalité.
  • Ajout du support du nouveau format de fichier journal de pgbouncer 1.11. Remerciements à Dan Aksenov pour le signalement.
  • Gestion des formats de compression zstd et lz4. Remerciements à Adrien Nayrat pour le correctif.
  • Ajout du support et de la détection automatique du format de fichier journal AWS Redshift. Remerciements à Bhuvanesh pour la demande de fonctionnalité.
  • Mise à jour de la documentation concernant le format de fichier journal Redshift.
  • Ajout de la nouvelle option –no-week pour indiquer à pgBadger de ne pas générer de rapports hebdomadaires en mode incrémentiel. Remerciements à cleverKermit17 pour la demande de fonctionnalité.
  • Correction d’un motif de correspondance sur le chemin du fichier qui provoquait une panne de pgBadger sous Windows.
  • Correction du problème #554 concernant les paramètres d’instruction encodés en cyrillique et autres, qui n’étaient pas correctement rapportés dans le rapport HTML même avec un jeu de caractères personnalisé. La régression avait été introduite par une correction de l’erreur Perl bien connue « Wide character in print ». Le correctif a été annulé et une nouvelle option en ligne de commande : –wide-char est désormais disponible pour restaurer ce comportement. Ajoutez cette option à votre commande pgbadger si vous obtenez le message « Wide character in print ». Ajout d’un test de régression avec des encodages cyrillique et français. Remerciements à 4815162342lost et yethee pour le signalement.
  • Mise à jour de la documentation pour indiquer que lc_messages = ’en_US.UTF-8’ est également valide. Remerciements à nodje pour le signalement.
  • Mise à jour de la documentation concernant –maxlength dont la taille par défaut de troncature est désormais 100000 et plus pas de troncature par défaut. Remerciements à nodje pour le signalement.
  • Correction du calcul de rétention à la frontière d’année. Remerciements à Fabio Pereira pour le correctif.
  • Correction de l’analyse du format de fichier journal RDS. Remerciements à Kadaffy Talavera pour le signalement.
  • Empêcher la génération d’un fichier d’index vide en mode incrémentiel lorsque aucune nouvelle entrée de journal n’est présente. Remerciements à Kadaffy Talavera pour le signalement.
  • Correction de la documentation non à jour. Remerciements à Eric Hanson pour le correctif.
  • Correction du paramètre en ligne de commande de -no-explain à -noexplain.. Remerciements à Indrek Toom pour le correctif.
  • Passer à la taille de fichier par défaut lorsque totalsize n’est pas disponible. Remerciements à Adrien Nayrat pour le correctif.
  • Correction de certaines dates dans les exemples. Remerciements à Greg Clough pour le correctif.
  • Utilisation de l’expression régulière des extensions de fichiers compressés dans les tests restants et extraction de l’extension .bin dans une condition séparée.
  • Gestion des formats de compression zstd et lz4. Remerciements à Adrien Nayrat pour le correctif.
  • Correction de l’appel restant de SIGUSR2 sous Windows. Remerciements à inrap pour le signalement.
  • Correction de la barre de progression avec les fichiers journaux de taille indéterminée.
  • Ajout de la nouvelle option en ligne de commande –command permettant de définir une commande que pgBadger exécutera pour récupérer les entrées de journal sur stdin. Remerciements à Justin Pryzby pour la demande de fonctionnalité.
  • Ajout de la nouvelle option en ligne de commande –noexplain pour empêcher pgBadger d’analyser et de rapporter les plans d’exécution écrits dans le journal par l’extension auto_explain. Cela est utile si vous utilisez une version de PostgreSQL inférieure à 9.0, où pgBadger génère des rapports corrompus lorsqu’un plan d’exécution est présent dans le journal. Remerciements à Massimo Sala pour la demande de fonctionnalité.
  • Correction de l’analyse des fichiers journaux RDS lorsque le préfixe est défini en ligne de commande. Remerciements à Bing Zhao pour le signalement.
  • Correction du mode incrémentiel avec le format de fichier journal RDS. Remerciements à Bing Zhao pour le signalement.
  • Correction possible de l’analyse des fichiers journaux RDS. Remerciements à James van Lommel et Simon Dobner pour le signalement.
  • Correction de la classification des requêtes et ajout d’un test de régression. Remerciements à alexanderlaw pour le signalement.
  • Correction de l’anonymisation des caractères simples dans les clauses IN. Remerciements à Massimo Sala pour le signalement.
  • Correction de l’analyse des fichiers journaux RDS pour les lignes sans informations client/utilisateur/base de données. Remerciements à Konrad pour le signalement.

v11.1 · 2019-09-16

Cette version de pgBadger corrige plusieurs problèmes signalés par les utilisateurs depuis trois mois. Elle introduit également certaines nouvelles fonctionnalités et rapports :

  • Ajouter un rapport des N requêtes les plus coûteuses en temps durant les étapes de préparation ou d’analyse.
  • Ajouter un rapport des N requêtes les plus coûteuses en temps durant l’étape de liaison.
  • Ajouter un rapport des durées des différentes parties d’une requête : préparation/liason/exécution. Affiché dans un nouvel onglet « Durée » du rapport des statistiques globales. Exemple : Durée totale de la requête : 6m16s Durée totale de la préparation/analyse : 45s564ms Durée totale de la liaison : 4m46s Durée totale de l’exécution : 44s71m Cela corrige également le rapport précédent de « Durée totale de la requête », qui ne rapportait que la durée totale d’exécution.
  • Ajouter le support des formats de journaux RDS et CloudWatch, détectés automatiquement. Vous pouvez utiliser -f rds si pgBadger n’est pas en mesure de détecter automatiquement le format du journal.
  • Ajouter une nouvelle option de configuration –month-report afin de pouvoir générer des rapports incrémentiels mensuels.
  • Restaurer le support du système d’exploitation Windows.

Il existe également quelques corrections de bogues et améliorations de fonctionnalités.

  • Ajouter la documentation Markdown générée automatiquement dans README.md à l’aide de l’outil pod2markdown. Si la commande n’est pas disponible, le fichier ne sera tout simplement pas généré. Merci à Derek Yang pour le correctif.
  • Traduire l’action WITH en CTE, correction d’un bug de régression introduit dans la dernière version.
  • Corriger la prise en charge du système d’exploitation Windows.
  • Ajouter la prise en charge des formats de journaux RDS et CloudWatch, utiliser -f si pgBadger n’est pas en mesure de détecter automatiquement ce format de journal. Merci à peruuparkar pour la demande de fonctionnalité.
  • Corriger l’option -f | –format qui n’était pas appliquée à tous les fichiers extraits de la liste de paramètres, où la détection automatique du format de journal échouait ; le format était pris à partir du premier fichier analysé. Merci à Levente Birta pour le signalement.
  • Mettre à jour le fichier de documentation source pour remplacer la référence à pgBadger v7.x par v11. Merci à Will Buckner pour le correctif.
  • Limite la taille d’affichage des requêtes les plus fréquentes afin d’éviter de remplir toute la page avec des requêtes très longues. Merci à ilias ilisepe1 pour le correctif.
  • Corriger le débordement des requêtes et des détails dans les requêtes les plus lentes.
  • Corriger les URI SSH pour les fichiers, répertoires et caractères génériques. Merci à tbussmann pour le correctif.
  • Corriger les exemples d’URI dans la documentation. Merci à tbussmann pour le correctif.
  • Masquer le message d’utilisation du fichier de sortie par défaut lorsque –rebuild est utilisé.
  • Ajouter une ligne vide supplémentaire à la sortie de la fonction usage() afin d’éviter que la documentation POD ne soit coupée lors de la compilation.
  • Réappliquer la description de l’option –exclude-client dans la documentation. Merci à Christoph Berg pour le signalement.

v11.0 · 2019-06-25

Cette version de pgBadger introduit de nouvelles fonctionnalités majeures et corrige certains problèmes signalés par les utilisateurs au cours des quatre derniers mois. Nouvelles fonctionnalités :

  • Regrouper les requêtes liées au curseur (DECLARE, CLOSE, FETCH, MOVE) dans un nouveau type de requête CURSOR.

  • Ajouter les requêtes top bind générant un plus grand nombre de fichiers temporaires. Nécessite que log_connection et log_disconnection soient activés.

  • Ajouter l’option en ligne de commande –exclude-client afin de pouvoir exclure les entrées de journal pour une IP cliente spécifique. Peut être utilisée plusieurs fois.

  • Permettre l’utilisation de l’heure uniquement dans les filtres –begin et –end.

  • Ajouter les options -H et –html-dir afin de pouvoir définir un chemin différent où écrire le rapport HTML en mode incrémentiel. Les fichiers binaires restent dans le répertoire défini par l’option -O, –outdir.

  • Ajouter l’option -E | –explode afin de diviser le rapport principal en un rapport par base de données. Les informations globales non liées à une base sont ajoutées au rapport de la base postgres.

  • Ajouter le rapport par base de données en mode incrémentiel. En ce mode, un sous-répertoire par base de données sera créé, avec des rapports incrémentiels dédiés.

  • Ajouter le support du format logplex de Heroku pour PostgreSQL. Les journaux peuvent être analysés à l’aide de :

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

  • Lorsqu’une requête dépasse 10 Ko, on limite d’abord la taille de tous les paramètres de chaîne de caractères constants à 30 caractères, puis on tronque la requête à 10 Ko. Cela empêche pgBadger de consommer du temps ou de bloquer avec des requêtes très longues, par exemple lors de l’insertion de données bytea. La limite de 10 Ko peut être ajustée à l’aide du paramètre en ligne de commande –maxlength. La normalisation ou le troncature de la requête à la valeur maxlength n’est effectuée qu’après cette première étape de limitation de taille.

Cette nouvelle version rompt la compatibilité descendante avec les anciens fichiers binaires ou JSON. Cela signifie également que le mode incrémentiel ne pourra pas lire les anciens fichiers binaires. Si vous souhaitez mettre à jour pgBadger tout en conservant vos anciens rapports, veillez à effectuer la mise à jour au début d’une nouvelle semaine, sinon le rapport hebdomadaire sera corrompu. pgBadger affichera un avertissement et ignorera simplement le fichier binaire ancien.

Il existe également quelques corrections de bogues et améliorations de fonctionnalités.

  • Ajouter un avertissement concernant la version et ignorer le chargement du fichier binaire incompatible.
  • Mettre à jour le formateur de code pour pgFormatter 4.0.
  • Corriger le blocage de pgBadger sous le système d’exploitation Windows. Remerciements à JMLessard pour le rapport.
  • Mettre à jour le script tools/pgbadger_tools pour assurer la compatibilité avec le nouveau format binaire introduit dans pgBadger v11.
  • Ajouter les requêtes bindées les plus fréquentes générant le plus de fichiers temporaires. Cette collecte est possible uniquement si les options log_connection et log_disconnection sont activées dans postgresql.conf. Remerciements à Ildefonso Camargo pour la demande de fonctionnalité.
  • Corriger la détection automatique du fuseau horaire. Remerciements à massimosala pour la correction.
  • Supprimer certains graphiques restants lorsque –nograph est utilisé.
  • Forcer l’utilisation de l’extension .txt lorsque –normalized-only est utilisé.
  • Corriger l’affichage des rapports d’auto-vacuum/analyze au format logplex. Remerciements à Konrad zichul pour le rapport.
  • Corriger l’utilisation de la barre de progression sous le système d’exploitation Windows. Remerciements à JMLessard pour le rapport.
  • Utiliser une variable `$prefix_vars{’t_time’} pour stocker l’heure du journal. Remerciements à Luca Ferrari pour le correctif.
  • Mettre à jour l’aide et la documentation pour supprimer la commande perl des appels à pgBadger. Remerciements à Luca Ferrari pour le correctif.
  • Utiliser begin et end avec des heures sans date. Remerciements à Luca Ferrari pour le correctif.
  • Ajouter quelques corrections mineures d’orthographe et de grammaire dans le fichier readme. Remerciements à ofni yratilim pour le correctif.
  • Corriger les chemins distants utilisant SSH. Remerciements à Luca Ferrari pour le correctif.
  • Mettre à jour les tests de régression pour qu’ils fonctionnent avec la nouvelle structure introduite par la fonctionnalité de rapport par base de données.
  • Corriger les secondes fractionnaires dans tous les paramètres begin et end. Remerciements à Luca Ferrari pour le correctif.
  • Corriger l’URL de la documentation. Remerciements à Kara Mansel pour le rapport.
  • Corriger l’analyse de auto_explain. Ajouter plus d’informations sur l’option -U pouvant être utilisée plusieurs fois. Remerciements à Douglas J Hunley pour le rapport.
  • Nombreuses améliorations du rapport HTML / CSS. Remerciements à Pierre Giraud pour les correctifs.
  • Mettre à jour le fichier de ressources.
  • Ajouter un test de régression pour le format logplex.
  • Ajouter le support du format logplex de Heroku. Vous devriez pouvoir analyser ces journaux comme suit : heroku logs -p postgres | pgBadger -f logplex -o heroku.html - ou si vous avez déjà enregistré la sortie dans un fichier : pgBadger heroku.log Le format logplex est détecté automatiquement comme tout autre format pris en charge. pgBadger comprend les préfixes par défaut suivants pour log_line_prefix : database = %d connection_source = %r sql_error_code = %e ou simplement : sql_error_code = %e Faites-moi savoir s’il existe d’autres préfixes par défaut. Le préfixe peut toujours être défini à l’aide de l’option -p | –prefix de pgBadger : pgBadger –p ‘base = %d source = %r sql_state = %e’ heroku.log par exemple. Remerciements à Anthony Sosso pour la demande de fonctionnalité.
  • Corriger l’aide de pgBadger pour les URI.
  • Corriger l’utilisation incorrecte des caractères génériques dans les URI SSH introduite dans le correctif précédent. Remerciements à Tobias Bussmann pour le rapport.
  • Permettre les URI contenant des espaces dans le chemin du fichier journal. Remerciements à Tobias Bussmann pour le rapport.
  • Corriger les exemples d’URI dans la documentation. Remerciements à Tobias Bussmann pour le correctif.
  • Corriger t/02_basics.t pour qu’il ne faille pas si le test syslog prend plus de 10 secondes. Remerciements à Christoph Berg pour le correctif.

8.4 - Notes de version pgBadger 10.x

Notes de version complètes de la série pgBadger 10.x

Ces entrées conservent l’intégralité de l’historique des modifications upstream pour pgBadger 10.x, du plus récent au plus ancien.

v10.3 · 2019-02-14

Cette version de pgBadger est une mise à jour de maintenance qui corrige certains problèmes de détection automatique du format de journalisation, ainsi qu’un autre problème de lecture des journaux de pgBouncer signalé par les utilisateurs. Une nouvelle fonctionnalité est également disponible :

The -o | --outfile option can now be used multiple time to dump
output in several format in a single command. For example:
    pgbadger -o out.html -o out.json /log/pgsql-11.log
will create two reports in html and json format saved in the
two corresponding files.

Il existe également quelques corrections de bogues et améliorations de fonctionnalités.

  • Corriger les rapports statistiques lorsque l’on applique un filtre sur la base de données, l’utilisateur, le client ou l’application. Certaines requêtes n’étaient pas rapportées.
  • Corriger la détection automatique du préfixe de ligne de journal par défaut pour pg>=10.
  • Corriger la détection automatique du fichier journal lorsqu’il utilise un préfixe de ligne de journal « non standard ». Si –prefix %t, %m, %n ou %p ou %c est spécifié, définir le format sur stderr. Merci à Alex Danvy pour le signalement.
  • Supprimer l’espace supplémentaire en fin de ligne.
  • Ajouter un test minimal pour le parseur syslog.
  • Corriger un appel à autodetect_format().
  • Tronquer l’instruction lorsque maxlength est utilisé. Merci à Thibaud Madelaine pour le correctif.
  • Ajouter un test pour plusieurs formats de sortie.
  • L’option -o | –outfile peut désormais être utilisée plusieurs fois pour générer plusieurs formats de sortie dans une même commande. Par exemple : pgBadger -o out.txt -o out.html -o - -x json /log/pgsql-11.log Dans ce cas, pgBadger créera deux rapports au format texte et HTML, sauvegardés dans les fichiers correspondants. Il produira également un rapport au format json sur la sortie standard. Merci à Nikolay pour la demande de fonctionnalité.
  • Déplacer la détection du format de sortie et la définition du nom de fichier de sortie vers une fonction dédiée set_output_extension().
  • Corriger un autre problème de parsing des journaux pgBouncer. Merci à Douglas J. Hunley pour le signalement.

v10.2 · 2018-12-27

Cette version de pgBadger est une mise à jour de maintenance qui corrige les problèmes signalés par les utilisateurs au cours des trois derniers mois. Elle inclut également quelques nouvelles fonctionnalités :

  • Ajouter la prise en charge du format de journal des statistiques pgbouncer 1.8.
  • Ajuster automatiquement l’heure de fuseau horaire des graphiques JavaScript.

Une nouvelle option de ligne de commande est disponible :

  • Ajouter l’option –exclude-db pour générer un rapport sur tout sauf la base de données spécifiée.

  • Ajouter le support du téléchargement distant de fichiers journaux PostgreSQL via http ou ftp. Le fichier journal est analysé pendant le téléchargement à l’aide de la commande curl et n’est jamais sauvegardé sur le disque. En cas d’analyse distante via ssh, vous pouvez utiliser l’URI en tant qu’argument de ligne de commande pour préciser le fichier journal PostgreSQL. ssh://localhost/postgresql-10-main.log http://localhost/postgresql-10-main.log.gz ftp://localhost/postgresql-10-main.log

    with http and ftp protocol you need to specify the log file format at end of the uri:

        http://localhost/postgresql-10-main.log:stderr
    

    You can specify multiple uri for log files to be parsed. This is useful when you have pgbouncer log file on a remote host and PostgreSQL logs in the local host.

    With ssh protocol you can use wild card too like with remote mode, ex: ssh://localhost/postgresql-10-main.log*

    Old syntax to parse remote log file using -r option is still working but is obsolete and might be removed in future versions.

Il existe également quelques corrections de bogues et améliorations de fonctionnalités.

  • Ajuster la fin de la barre de progression pour les fichiers dont la taille estimée est connue (fichiers compressés bz2 et fichiers distants compressés).
  • Mettre à jour l’année dans le copyright.
  • Ajouter des informations sur la notation URI pour analyser les fichiers journaux distants.
  • Forcer la progression à atteindre 100 % à la fin de l’analyse d’un fichier distant compressé.
  • Extraire les informations sur les appels de fonctions PL/pgSQL présents dans les requêtes des rapports de fichiers temporaires. Ces informations sont ajoutées au bloc d’affichage détaillé.
  • Corriger la barre de progression pour les fichiers CSV.
  • Corriger la lecture d’un fichier binaire comme fichier d’entrée au lieu du fichier journal.
  • Encoder la sortie HTML des requêtes en UTF8 afin d’éviter le message « Wide character in print ». Merci à Colin ’t Hart pour le signalement.
  • Ajouter la clé/valeur « distance des points de contrôle » pour la distance maximale.
  • Corriger l’analyse des logs de pgbouncer et les rapports de débit de requêtes. Merci à Levente Birta pour le signalement.
  • Corriger l’utilisation de csvlog au lieu de csv pour le format d’entrée.
  • Ajouter la prise en charge du format de journal pgbouncer 1.8. Merci à Levente Birta pour le signalement.
  • Ajouter un avertissement concernant le traitement parallèle désactivé avec csvlog. Merci à cstdenis pour le signalement.
  • Ajouter des informations dans la sortie d’aide sur le forçage du processus unique avec le format csvlog via les options -j et -J. Merci à cstdenis pour le signalement.
  • Corriger l’erreur « format de ligne inconnu » pour les journaux multilignes lors d’une analyse incrémentale via SSH. Merci à Wooyoung Cho pour le signalement.
  • Ajouter l’option -k (–insecure) à la commande curl afin de pouvoir télécharger des journaux depuis un serveur utilisant un certificat auto-signé.
  • Ajuster automatiquement le fuseau horaire des graphiques JavaScript. Merci à Massimino Sala pour la demande de fonctionnalité.
  • Ajouter la prise en charge du téléchargement des journaux HTTP par pgBadger, par exemple : /usr/bin/pgbadger http://www.mydom.com/postgresql-10.log
  • Analyser le fichier pendant son téléchargement à l’aide de la commande curl.
  • Corriger la documentation. Merci à 0xflotus pour le correctif.
  • Reappliquer la correction relative au remplacement des paramètres liés après un nettoyage de code supplémentaire. Merci à Bernhard J. M. Grun pour le signalement.
  • Ajouter l’option –exclude-db pour générer un rapport sur tout sauf la base de données spécifiée. Cette option peut être utilisée plusieurs fois.

v10.1 · 2018-09-12

Cette version de pgBadger est une mise à jour de maintenance qui corrige les rapports en mode incrémentiel et en mode multiprocessus avec l’option -j. La lecture des journaux depuis l’entrée standard était également défectueuse. Si vous utilisez la version 10.0, mettez à jour dès maintenant.

  • Ajouter un test sur le parseur de journaux de pgbouncer.
  • Quelques améliorations de performances mineures.
  • Corriger le descripteur de fichier non valide à la ligne 12314 de pgBadger.
  • Corriger la saut de ligne indésirable dans la barre de progression au démarrage.
  • Supprimer les fichiers CircleCI du projet.
  • Supprimer la dépendance à bats et jq pour la suite de tests, remplacées par Test::Simple et JSON::XS.
  • Ajouter davantage de tests, notamment pour le mode incrémentiel et l’entrée depuis stdin, qui était défectueuse dans la version 10.0.
  • Synchroniser pgBadger, pod et README, et corriger quelques erreurs de syntaxe. Remerciements à Christoph Berg pour le correctif.
  • Ajouter la documentation sur la manière d’installer le module Perl JSON::XS depuis les dépôts apt et yum.
  • Corriger l’URI pour le CSS en mode incrémentiel. Remerciements à Floris van Nee pour le signalement.
  • Corriger l’erreur fatale lors de la recherche de journaux depuis STDIN. Remerciements à Jacek Szpot pour le signalement.
  • Corriger l’utilisation de SED pour les builds macOS. Remerciements à Steve Newson pour le correctif.
  • Corriger la division par zéro illégale en mode incrémentiel. Remerciements à aleszeleny pour le signalement.
  • Remplacer SQL::Beautify par la version 3.1 de pgFormatter::Beautify.

v10.0 · 2018-09-09

Cette version de pgBadger est une version majeure qui introduit de nouvelles fonctionnalités et corrige tous les problèmes signalés par les utilisateurs depuis la dernière version.

  • Ajouter le support du format de fichier journal syslog de pgbouncer.
  • Ajouter le support de tous les formats auto_explain (texte, XML, JSON et YAML).
  • Ajouter le support du placeholder %q dans log_line_prefix.
  • Ajouter le format jsonlog de l’extension de Michael Paquier, avec -f jsonlog pgBadger pourra parser le fichier journal.
  • Remplacer le formateur SQL/embellisseur par la version 3.0 de pgFormatter.

Une nouvelle option de ligne de commande est disponible :

  • Ajouter l’option en ligne de commande –prettify-json pour formater de manière lisible la sortie JSON.
  • Ajouter l’option en ligne de commande –log-timezone + /-XX pour définir le nombre d’heures par rapport à GMT de la zone horaire à utiliser afin d’ajuster les dates/heure lues dans le fichier journal avant leur analyse. Notez que vous pourriez toutefois devoir ajuster la zone horaire du graphique en utilisant -Z lorsque le client n’utilise pas la même zone horaire.
  • Ajouter l’option –include-time pour permettre de choisir les périodes que vous souhaitez afficher, plutôt que d’exclure toutes les périodes que vous ne souhaitez pas voir (–exclude-time).

Le projet pgBadger et ses droits d’auteur ont été transférés de Dalibo à l’auteur et au mainteneur officiel du projet. Veuillez mettre à jour vos liens :

Je tiens à remercier chaleureusement les équipes de Dalibo pour leurs investissements constants dans pgBadger au fil des années, et plus particulièrement Damien Clochard et Jean-Paul Argudo pour leur aide précieuse à la promotion de pgBadger.

  • Corriger la distance du point de contrôle et l’estimation non rapportées en mode incrémentiel. Remerciements à aleszeleny pour le signalement.
  • Corriger le titre du rapport des sessions simultanées de pgbouncer. Remerciements à Jehan Guillaume De Rorthais pour le signalement.
  • Ajouter le support du format de fichier journal syslog de pgbouncer. Remerciements à djester pour la demande de fonctionnalité.
  • Corriger l’erreur lorsque un fichier journal distant est vide. Remerciements à Parasit Hendersson pour le signalement.
  • Corriger le test avec le format binaire. Le fichier binaire doit être généré tel quel, car il dépend de la plateforme. Remerciements à Michal Nowak pour le signalement.
  • Corriger le cas où un plan d’explication vide est généré.
  • Corriger l’analyse du format par défaut détecté automatiquement avec un préfixe en ligne de commande.
  • Supprimer la dépendance à la commande git dans Makefile.PL.
  • Mettre à jour la documentation concernant les modifications d’options et supprimer la partie [%l-1] du préfixe obligatoire.
  • Corriger l’analyse de l’utilisation système vacuum / analyze pour PostgreSQL 10. Remerciements à Achilleas Mantzios pour le correctif.
  • Corriger le tableau de l’activité des fichiers temporaires.
  • Supprimer la dépendance à git lors de l’installation.
  • Ajouter l’option en ligne de commande –log-timezone + /-XX pour définir le nombre d’heures par rapport à GMT de la timezone à utiliser pour ajuster les dates/heure lues dans le fichier journal avant leur analyse. L’utilisation de cette option rend la recherche de dates/heure dans le fichier journal plus difficile, car l’heure ne sera pas la même dans le fichier. Notez que vous pourriez toujours devoir ajuster la timezone du graphique en utilisant -Z lorsque le client n’a pas la même timezone. Remerciements à xdexter pour la demande de fonctionnalité et à Julien Tachoire pour le correctif.
  • Ajouter le support du format de sortie json pour auto_explain. Remerciements à dmius pour le signalement.
  • Corriger le parseur auto_explain et les requêtes comptées deux fois. Remerciements à zam6ak pour le signalement.
  • Corriger l’expression régulière du point de contrôle pour qu’elle corresponde aux messages de journal de PostgreSQL 10. Remerciements à Edmund Horner pour le correctif.
  • Mettre à jour la description de l’option -f | –format en ajoutant des informations sur le format jsonlog.
  • Corriger la normalisation des requêtes pour éviter les doublons avec les requêtes bindées. La normalisation des valeurs est désormais transformée en un seul ? au lieu de 0 pour les nombres et deux apostrophes simples pour les chaînes. Remerciements à vadv pour le signalement.
  • Corriger le comptage des niveaux de journalisation. Remerciements à Jean-Christophe Arnu pour le signalement.
  • Rendre pgBadger plus conforme à B::Lint pour les noms de sous-routines nues.
  • Rendre perlcritic satisfait.
  • Ajouter l’option en ligne de commande –prettify-json pour formater proprement la sortie JSON. La sortie par défaut est sur une seule ligne.
  • Corriger le rapport de répartition des événements.
  • Corriger le bug avec –prefix lorsque log_line_prefix contient plusieurs %%. Remerciements à svb007 pour le signalement.
  • Ajouter l’option en ligne de commande –log-timezone + /-XX pour définir le nombre d’heures par rapport à GMT de la timezone à utiliser pour ajuster les dates/heure lues dans le fichier journal avant leur analyse. L’utilisation de cette option rend la recherche de dates/heure dans le fichier journal plus difficile, car l’heure ne sera pas la même dans le fichier. Notez que vous pourriez toujours devoir ajuster la timezone du graphique en utilisant -Z lorsque le client n’a pas la même timezone. Remerciements à xdexter pour la demande de fonctionnalité.
  • Supprimer INDEXES de la liste des mots-clés et ajouter BUFFERS à cette liste.
  • Corriger la normalisation des requêtes utilisant des curseurs.
  • Supprimer le Dockerfile et la documentation relative à docker run. pgBadger est fourni sous forme d’un seul script Perl sans dépendance et peut être utilisé sur toute plateforme. Il est inutile d’utiliser Docker pour exécuter pgBadger, si vous ne souhaitez rien installer : copiez simplement le fichier pgBadger là où vous le souhaitez et exécutez-le.
  • Corriger la grille cassée lorsque aucune activité de fichiers temporaires n’est présente. Remerciements à Pierre Giraud pour le correctif.
  • Ajouter un avertissement dans la documentation concernant log_in_duration_statement vs log_duration + log_statement. Remerciements à Julien Tachoire pour le correctif.
  • Appliquer le décalage de timezone aux graphiques en barres. Remerciements à Julien Tachoire pour le correctif.
  • Supprimer les informations actuelles sur les fichiers temporaires si une erreur est rencontrée pour le même PID. Remerciements à Julien Tachoire pour le correctif.
  • Utiliser de manière cohérente app= dans les exemples, et prendre en charge appname=. Certains exemples d’utilisation utilisaient appname= dans le préfixe, mais le code ne reconnaissait pas ce jeton. Utilisez app= dans tous les exemples, et ajoutez appname= au parseur de préfixe. Remerciements à Christoph Berg pour le correctif.
  • Corriger le nom long incorrect de l’option -J qui devrait être –Jobs au lieu de –job_per_file.. Remerciements à Chad Trabant pour le signalement et à Etienne Bersac pour le correctif.
  • Ignorer les fichiers blib. Remerciements à Etienne Bersac pour le correctif.
  • Ajouter des tests de cohérence. Remerciements à damien clochard pour le correctif.
  • Mise à jour de la documentation : stderr n’est pas la valeur par défaut pour -f.. Remerciements à Christophe Courtois pour le correctif.
  • Mettre à jour en permanence le POD et le README. Remerciements à Etienne Bersac pour le correctif.
  • Ajouter des tests de régression. Remerciements à Etienne Bersac pour le correctif.
  • Ajouter la configuration editorconfig. Remerciements à Etienne Bersac pour le correctif.
  • Supprimer les fichiers temporaires vi du fichier gitignore. Remerciements à Etienne Bersac pour le correctif.
  • Ajouter l’option –include-time pour permettre de choisir les moments que vous souhaitez voir, plutôt que d’exclure tous les moments que vous ne souhaitez pas voir. Cela est pratique lorsque vous souhaitez afficher uniquement un ou deux jours parmi une semaine de journaux (réduit de plusieurs options –exlucde-time à une seule option –include-time). Remerciements à Wesley Bowman pour le correctif.
  • Vérifier la syntaxe du POD. Remerciements à Etienne Bersac pour le correctif.
  • Ajouter HACKING pour documenter les tests. Remerciements à Etienne Bersac pour le correctif.
  • Supprimer l’option obsolète –bar-graph. Remerciements à Etienne Bersac pour le correctif.
  • Supprimer le fichier .perltidyrc trompeur. Ce fichier date de 2012 et le code de pgBadger est bien loin d’être conforme. La différence unifiée perltidy fait 10 k lignes. Supprimons-le. Remerciements à Etienne Bersac pour le correctif.
  • Corriger l’utilisation d’une valeur non initialisée dans la mise en forme SQL. Remerciements à John Krugger pour le signalement et à Jean-paul Argudo pour le signalement.

8.5 - Notes de version de pgBadger 9.x

Notes de version complètes de la série pgBadger 9.x

Ces entrées conservent l’intégralité de l’historique des modifications upstream pour pgBadger 9.x, du plus récent au plus ancien.

v9.2 · 2017-07-27

Cette version de pgBadger est une mise à jour de maintenance qui ajoute quelques nouvelles fonctionnalités.

  • Ajouter un rapport de distance entre les points de contrôle et une estimation.
  • Ajouter le support des mots-clés AWS Redshift dans le formateur de code SQL.
  • Ajouter la détection automatique du format du fichier journal en mode distant afin de permettre l’analyse distante du fichier journal de pgbouncer conjointement avec le fichier journal PostgreSQL.

Il existe également quelques corrections de bogues et améliorations de fonctionnalités.

  • Correction du rapport avec histogramme qui n’affichait pas les données supérieures à la dernière plage.
  • Correction de l’analyse de journalctl sans le motif de numéro de ligne ([%l-n]). Remerciements à Christian Schmitt pour le signalement.
  • Ajout du rapport sur la distance et l’estimation du point de contrôle. Remerciements à jjsantam pour la demande de fonctionnalité.
  • Ajout d’informations supplémentaires sur les actions effectuées par le script pour mettre à jour les fichiers CSS et JavaScript, tools/updt_embedded_rsc.pl.
  • Ne plus émettre d’avertissement lorsque tous les fichiers journaux sont vides et quitter avec le code 0.
  • Correction de build_log_line_prefix_regex() qui ne comprenait pas %n comme clé de recherche dans %regex_map. Remerciements à ghosthound pour le correctif.
  • Changement du niveau d’erreur de « FATAL : impossible d’utiliser CSV » en AVERTISSEMENT. Remerciements à kong1man pour le signalement.
  • Correction de l’avertissement relatif à une valeur non initialisée. Remerciements à Payal pour le signalement.
  • Ajout de « permission refusée » à la normalisation des erreurs.
  • Mise à jour de pgBadger vers le dernier commit 5bdc018 de pgFormatter.
  • Ajout du support des mots-clés AWS Redshift. Remerciements à cavanaug pour la demande de fonctionnalité.
  • Correction de l’absence de requête dans le rapport de fichier temporaire lorsque la requête était annulée. Remerciements à Fabrizio de Royes Mello pour le signalement.
  • Normalisation des requêtes avec paramètres liés, remplacés par un « ? ».
  • Vérification de cohérence pour éviter une heure de fin antérieure à l’heure de début. Remerciements à Christophe Courtois pour le correctif.
  • Correction de nombreux mots mal orthographiés et ajustements grammaticaux. Utilisation de « pgBadger » lorsqu’il s’agit du programme et non du fichier binaire. Utilisation d’expressions officielles telles que PgBouncer, GitHub et CSS. Le fichier POD a été synchronisé avec README. Remerciements à Euler Taveira pour le correctif.
  • Le menu est corrompu lorsque –disable-type le test top_cancelled_info et la fermeture de la liste doivent être inclus dans le test disable_type. Pendant cette correction, correction du test disable_lock. Remerciements à Euler Taveira pour le correctif.
  • Correction de l’utilisation d’une valeur non initialisée. Remerciements à johnkrugger pour le signalement.
  • Suppression du test de lecture du fichier journal pendant l’auto-détection du format du journal lorsque le fichier est hébergé à distance. Remerciements à clomdd pour le signalement.
  • Ajout de l’auto-détection du format du journal en mode distant pour permettre l’analyse distante du fichier journal de pgbouncer en parallèle avec celui de PostgreSQL.
  • Correction de l’incrémentation erronée du nombre de sessions après la validation de la ligne journal. Remerciements à Achilleas Mantzios pour le signalement.
  • Réorganisation mineure de la description de pgBadger.
  • Correction d’informations redondantes dans la documentation. Remerciements à cscatolini pour le correctif.

v9.1 · 2017-01-24

Cette version de pgBadger est une mise à jour de maintenance qui ajoute quelques nouvelles fonctionnalités.

  • Ajouter un rapport de répartition des classes d’erreur lorsque SQLState est disponible dans log_line_prefix (voir le placeholder %e).
  • Mettre à jour le formateur SQL pour utiliser le code pgFormatter v1.6.
  • Améliorer la normalisation des messages d’erreur.
  • Ajouter l’option –normalized-only pour générer un fichier texte contenant toutes les requêtes normalisées trouvées dans un journal, avec leur fréquence.
  • Permettre à %c (identifiant de session) de remplacer %p (PID) comme identifiant unique de session.
  • Ajouter les messages d’attente de verrou aux rapports d’événements.
  • Ajouter l’option –start-monday pour faire commencer les semaines du calendrier le lundi au lieu du dimanche par défaut.

Il existe également quelques corrections de bogues et améliorations de fonctionnalités.

  • Ajouter un rapport de répartition des classes d’erreurs lorsque SQLState est disponible dans le préfixe de ligne de journal. Remerciements à jacks33 pour la demande de fonctionnalité.
  • Corriger l’index global incrémental lors du redimensionnement. Remerciements à clomdd pour le rapport.
  • Corriger le placeholder %i du préfixe de journal command_tag pour autoriser le caractère espace.
  • Corriger les options –exclude-line et la suppression du répertoire obsolète lorsque la rétention est activée et que –noreport est utilisé.
  • Corriger une faute de frappe dans « table d’activité de vacuum ». Remerciements à Nicolas Gollet pour le correctif.
  • Corriger le rapport d’autovacuum. Remerciements à Nicolas Gollet pour le correctif.
  • Corriger l’auteur du logo de pgBadger – Damien Cazeils – et le français dans les commentaires. Remerciements à Thibaut Madelaine pour le correctif.
  • Ajouter des informations sur le format de journal de pgbouncer dans l’option -f. Remerciements à clomdd pour le rapport.
  • Ajouter des informations sur –normalized-only dans la documentation.
  • Corriger le rapport cassé de la date-heure introduit dans le correctif précédent.
  • Corriger l’association durée/requête lorsque log_duration=on et log_statement=all. Remerciements à Eric Jensen pour le rapport.
  • Corriger la normalisation des messages concernant les verrous d’advisory. Remerciements à Thibaut Madelaine pour le rapport.
  • Corriger le rapport de sortie d’auto_explain. Remerciements à fch77700 pour le rapport.
  • Corriger la détection automatique du format de journal incorrecte avec les entrées de journal provenant de stdin. Remerciements à Jesus Adolfo Parra pour le rapport.
  • Ajouter une parenthèse ouvrante à la liste des caractères « stop » de la regex utilisée pour rechercher le client base de données dans le préfixe, afin de gérer le format de chaîne du client PostgreSQL incluant le port source. Remerciements à Jon Nelson pour le correctif.
  • Corriger certaines erreurs d’orthographe. Remerciements à Jon Nelson pour le correctif.
  • Permettre à %c (identifiant de session) de remplacer %p (PID) comme identifiant unique de session. Remerciements à Jerryliuk pour le rapport.
  • Permettre à pgBadger de parser le préfixe de journal par défaut qui sera probablement utilisé dans la version 10.0 : ‘%m [%p] '
  • Corriger la ligne manquante initiale avec l’appel à l’interpréteur.
  • Corriger l’absence des valeurs Moy. dans le rapport CSV. Remerciements à Yosuke Tomita pour le rapport.
  • Corriger le message d’erreur dans la méthode autodetect_format().
  • Ajouter l’option –start-monday pour commencer les semaines du calendrier le lundi au lieu du dimanche par défaut. Remerciements à Joosep Mae pour la demande de fonctionnalité.
  • Corriger l’option –histo-average. Remerciements à Yves Martin pour le rapport.
  • Supprimer la forme plurielle de –ssh-option dans la documentation. Remerciements à mark-a-s pour le rapport.
  • Corriger le filtre –exclude-time et réécrire le code pour ignorer les lignes non souhaitées ainsi que le code mis à jour pour la barre de progression. Remerciements à Michael Chesterton pour le rapport.
  • Corriger le support du placeholder %r dans le préfixe au lieu de %h.

v9.0 · 2016-09-02

Cette version majeure de pgBadger est une migration vers Bootstrap 3 ainsi qu’une mise à jour de toutes les ressources (CSS et JavaScript). Elle inclut également la correction de certains bogues et des améliorations de fonctionnalités.

La compatibilité ascendante avec les anciens rapports incrémentiels peut être préservée.

  • Les sources et licences des fichiers de ressources sont désormais disponibles dans un sous-répertoire dédié. Un script permettant de mettre à jour la version minifiée intégrée au script pgBadger a été ajouté. Remerciements à Christoph Berg pour son aide et sa demande de fonctionnalité.

  • Essayer de détecter l’utilisateur/base de données/hôte à partir des chaînes de connexion si log_connection est activé et si log_line_prefix ne les inclut pas. Extend the regex to autodetect database name, user name, client ip address and application name. The regex now are the following:

    db => qr/(?:db|database)=([^,]*)/;
    user => qr/(?:user|usr)=([^,]*)/;
    client => qr/(?:client|remote|ip|host)=([^,]*)/;
    appname => qr/(?:app|application)=([^,]*)/;
    
  • Ajouter la compatibilité descendante avec les versions antérieures de pgBadger en mode incrémentiel en créant un sous-répertoire pour les nouveaux fichiers CSS et JavaScript. Ce sous-répertoire est nommé en fonction du numéro de version majeure de pgBadger.

  • Augmentez la taille du logo pgBadger qui apparaît trop petit avec la nouvelle taille de police.

  • Normaliser les informations détaillées dans tous les rapports.

  • Corriger l’icône de copie en double dans le rapport des verrous.

  • Corriger le graphique manquant dans l’histogramme du temps de session. Remerciements à Guillaume Lelarge pour le rapport.

  • Ajouter un fichier LICENSE indiquant les licences utilisées par les fichiers de ressources. Remerciements à Christoph Berg pour le correctif.

  • Ajouter un correctif à la bibliothèque jqplot pour corriger une boucle infinie lors de la tentative de téléchargement de certains graphiques. Merci à Julien Tachoires pour son aide dans la résolution de ce problème.

  • Outil de script tools/updt_embedded_rsc.pl appliquera le correctif au fichier de ressources resources/jquery.jqplot.js et ne produira pas d’alerte s’il a déjà été appliqué.

  • Supprime la virgule finale unique à la fin du jeu de données du graphique camembert. Merci à Julien Tachoires pour le rapport.

  • Modifier l’affichage de l’erreur normalisée

  • Supprimer les fichiers inutilisés ou générés automatiquement

  • Mettez à jour tous les fichiers de ressources (js+css) et créez un répertoire pour inclure les sources des bibliothèques JavaScript utilisées par pgBadger. Un nouveau script, tools/updt_embedded_rsc.pl, peut être utilisé pour générer la version minifiée de ces fichiers et les intégrer directement dans pgBadger. Ce script intègre également le fichier de police open truetype FontAwesome.otf dans le fichier fontawesome.css.

9 - Prise en charge et contribution

Signalez des bogues, demandez des fonctionnalités, contribuez à des correctifs et trouvez un support professionnel PostgreSQL

pgBadger est maintenu dans le cadre d’un projet open source. Les rapports de bogues, les propositions de fonctionnalités, les corrections de documentation et les correctifs sont gérés via le dépôt GitHub principal.

Signalements de bogues et demandes de fonctionnalités

  1. Passez à la dernière version publiée et vérifiez que le comportement persiste.
  2. Recherchez dans les problèmes ouverts et les problèmes fermés une réponse existante.
  3. Réduisez le problème à l’échantillon de journal le plus petit possible, qui reproduit encore le comportement.
  4. Supprimez les identifiants, les requêtes SQL sensibles, les valeurs liées, les noms d’hôtes, les adresses et les données métier.
  5. Ouvrez un nouveau problème avec la version de pgBadger, le système d’exploitation, le format d’entrée, les options exactes, le résultat observé et le résultat attendu.

En cas de plantage ou d’erreur de parsing, inclure uniquement les lignes de journalisation minimales et nettoyées nécessaires à la reproduction de la limite. Un journal de production complet ou un rapport généré est rarement adapté à une issue publique.

Contribuez à un correctif

Le projet inclut un fichier .editorconfig pour un espacement cohérent. Veillez à aligner l’aide en ligne des commandes, la documentation POD et la documentation Markdown générée lorsque un changement affecte un comportement visible pour l’utilisateur.

Le flux de documentation côté amont est :

$ perl Makefile.PL
$ make README

doc/pgBadger.pod est la source principale en format long. pgbadger --help fournit le résumé, tandis que les fichiers README sont des visualisations générées. Exécutez les tests pertinents avant de soumettre une demande de fusion.

Support commercial

Le projet pgBadger ne garantit ni maintenance ni support selon sa licence. Pour obtenir une aide payante concernant la journalisation PostgreSQL, l’analyse de performance ou l’automatisation des rapports, consultez le répertoire des services professionnels PostgreSQL .

10 - Licence et crédits

Conditions de licence PostgreSQL, auteur et composants tiers intégrés

pgBadger est un logiciel libre et open source distribué sous la licence PostgreSQL. Il peut être utilisé, copié, modifié et redistribué sans frais, sous réserve du maintien des mentions de copyright et de licence.

Licence PostgreSQL

Copyright (c) 2012-2026, Gilles Darold

Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.

IN NO EVENT SHALL Darold BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF Darold HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Darold SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN “AS IS” BASIS, AND Darold HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

Auteurs et crédits de conception

  • pgBadger est une œuvre originale de Gilles Darold.
  • Le logo de pgBadger est une création originale de Damien Cazeils.
  • La conception de pgBadger v4.x a été réalisée par l’entreprise « Art is code ».
  • Le site web est une œuvre de Gilles Darold.
  • Les contributeurs sont remerciés tout au long du fichier ChangeLog du projet principal.

Ressources embarquées et de rapport

Une version modifiée du module Perl SQL::Beautify est intégrée à pgBadger. Elle est protégée par le droit d’auteur © 2009 Jonas Kramer et publiée sous la Licence Artistic 2.0.

Les ressources du rapport généré ont leurs propres mentions, notamment :

ComposantLicence
bean.js, Bootstrap, jQuery, UnderscoreMIT
jqPlotMIT ou GPL-2.0, au choix de l’utilisateur
police Font AwesomeSIL Open Font License 1.1
CSS Font AwesomeMIT

La capture source locale conserve l’intégralité du resources/LICENSE d’origine. Les rapports d’exemple intégrés sont des artefacts historiques et conservent leurs notices et versions de ressources d’origine.

Capture de documentation

Cette édition pig.center réorganise la documentation d’origine en pages Hugo, ajoute une navigation et des aides à la lecture en chinois, et conserve intégralement le texte d’aide des commandes et le journal des modifications là où la fidélité est essentielle. La documentation source du projet pgBadger reste soumise à la Licence PostgreSQL ; les noms d’origine du projet, l’auteur et les liens vers les sources d’origine sont conservés.