Notes de version 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:stderrYou 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 :
- Site web : http://pgbadger.darold.net/
- Code source : https://github.com/darold/pgbadger
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.