Dies ist die mehrseitige Druckansicht dieses Abschnitts. .
Dokumentation zu pgBadger 13.2
- 1: Download und Installation
- 2: Kommandozeilenreferenz
- 3: Konfiguration der PostgreSQL-Protokollierung
- 4: Parallelverarbeitung
- 5: Inkrementelle Berichte
- 6: Ausgabeformate
- 7: Beispielberichte
- 8: Versionsgeschichte
- 9: Support und Mitwirkung
- 10: Lizenz und Urhebernachweise

pgBadger ist ein schnelles, eigenständiges und in Perl geschriebenes Analyseprogramm für PostgreSQL-Protokolle. Es liest PostgreSQL- oder PgBouncer-Protokolle und erzeugt detaillierte Ausgaben als HTML, Text, Binärdaten, JSON oder Roh-CSV. Die HTML-Berichte sind in sich geschlossen, interaktiv und zoombar; zur Anzeige genügt ein Webbrowser.
Warum pgBadger
pgBadger ist für große Protokolle und den betrieblichen Einsatz konzipiert:
- ein einziges Perl-Programm ohne obligatorische Module außerhalb der Perl-Standardbibliothek;
- automatische Erkennung von
stderr,syslog,csvlog,jsonlog, RDS, Cloud SQL, logplex, Redshift und PgBouncer-Eingabe; - direktes Lesen lokaler Dateien, der Standardeingabe, entfernter Dateien über SSH sowie von HTTP-, FTP- oder SFTP-URLs;
- mit gzip, bzip2, lz4, xz, zip oder zstd komprimierte Eingaben;
- parallele Analyse einer großen Datei oder vieler kleiner Dateien;
- tägliche und wöchentliche inkrementelle Berichte sowie monatliche Berichte auf Abruf;
- Filter nach Zeit, Datenbank, Benutzer, Client, Anwendung, Prozess, Sitzung und Abfragemuster.
Was die Berichte enthalten
Die PostgreSQL-Berichte umfassen:
- Gesamtaktivität und Abfragestatistiken;
- langsame, häufige, besonders zeitintensive, wartende und abgebrochene Abfragen;
- temporäre Dateien, Prüfpunkte, Sperren, Sitzungen und Verbindungen;
- Autovacuum- und Autoanalyze-Aktivität nach Tabelle;
- Fehler und Ereignisse nach Schweregrad und Kategorie;
- Verteilungen nach Datenbank, Benutzer, Client, Anwendung und Anweisungstyp.
Für PgBouncer-Eingaben kommen Durchsatz, durchschnittliche Abfragedauer, gleichzeitige Sitzungen, die Verteilung von Verbindungen und Sitzungen, die Nutzung des reservierten Pools sowie Berichte zu häufigen Fehlern und Ereignissen hinzu.
Dokumentationsübersicht
Lesen Sie die Dokumentation in dieser Reihenfolge, oder verwenden Sie die Seitenleiste, um direkt zu einer Aufgabe zu springen:
- Laden Sie pgBadger samt seinen optionalen Modulen herunter und installieren Sie es .
- Überprüfen Sie die vollständige Befehlszeilenreferenz .
- Konfigurieren Sie die PostgreSQL-Protokollierung mit einem analysierbaren Präfix.
- Wählen Sie den geeigneten Modus für die Parallelverarbeitung .
- Erstellen Sie inkrementelle Berichte sicher.
- Wählen Sie ein Ausgabeformat und sehen Sie sich die lokalen Beispiele an.
- Informieren Sie sich über die Versionsgeschichte , Support und Mitwirkung sowie die Lizenz .
Links zum Originalprojekt
1 - Download und Installation
Verteilungskanal auswählen
| Kanal | Verwendungszweck | Bezugsquelle |
|---|---|---|
| Offizielles Release | Quellcode-Tarballs und Versionshinweise | GitHub Releases |
| RPM-Paket | RPM-basierte Linux-Distributionen | PostgreSQL Yum Repository |
| Debian/Ubuntu-Paket | APT-basierte Linux-Distributionen | PostgreSQL Apt Repository |
| Entwicklungsquelle | Aktueller, noch nicht veröffentlichter Code | darold/pgbadger |
Der Dokumentations-Snapshot auf dieser Website basiert auf dem Quellcode der Version 13.2. Prüfen Sie vor dem Herunterladen stets die Releaseseite: Der lokale Snapshot ist bewusst fixiert, während das Originalprojekt weiterhin neue Versionen veröffentlicht.
Anforderungen
Für HTML-Berichte benötigen Sie lediglich:
- eine aktuelle Perl-Installation;
- einen Webbrowser zur Darstellung der eingebetteten JavaScript-Diagramme.
Für optionale Funktionen benötigen Sie die folgenden Abhängigkeiten:
| Funktion | Abhängigkeit |
|---|---|
| PostgreSQL-Protokolle im CSV-Format analysieren | Text::CSV_XS |
| JSON-Ausgaben erzeugen | JSON::XS |
Lesen von Eingabedateien mit der Endung .gz, .bz2, .lz4, .xz, .zip oder .zst | das jeweils passende Hilfsprogramm zcat, bzcat, lz4cat, xz, unzip oder zstdcat |
Installieren Sie die JSON-Unterstützung unter Debian oder Ubuntu:
Auf einem RPM-basierten System:
Verwenden Sie --zcat, um den Pfad zum Dekomprimierungsprogramm zu überschreiben. Wenn Sie einen benutzerdefinierten Befehl angeben, können Sie innerhalb desselben Aufrufs keine unterschiedlichen Komprimierungsformate mischen.
Aus einem offiziellen Tarball installieren
Laden Sie ein Release-Archiv herunter, bauen Sie es anschließend mit den Standardwerkzeugen von Perl und installieren Sie es:
Das standardmäßige site-Layout installiert das Programm als /usr/local/bin/pgbadger und die Handbuchseite als /usr/local/share/man/man1/pgbadger.1.
Für eine distributionskonforme Installation unter /usr erzeugen Sie das Makefile mit:
INSTALLDIRS=perl ist ein weiteres vom Originalprojekt unterstütztes Layout. Prüfen Sie die erzeugten Pfade, bevor Sie die Software auf einem verwalteten System installieren.
Entwicklungsstand installieren
Der Entwicklungsstand kann Änderungen enthalten, die noch nicht in den Versionshinweisen dokumentiert sind. Verwenden Sie für reproduzierbare Produktionspakete vorzugsweise ein mit einem Versions-Tag versehenes Archiv.
Installation überprüfen
Fahren Sie mit der Befehlszeilenreferenz und der Konfiguration der PostgreSQL-Protokollierung fort.
2 - Kommandozeilenreferenz
Diese Seite enthält die aus dem festgeschriebenen Upstream-Quellstand erzeugte
Befehlsreferenz. Optionsnamen und Hilfetexte bleiben unverändert, damit sie sich
direkt mit pgbadger --help vergleichen lassen.
Aufruf und Optionen
Aufruf: pgbadger [options] logfile […]
Argumente:
Optionen:
pgBadger kann eine entfernte Protokolldatei über eine passwortlose SSH-Verbindung parsen. Verwenden Sie -r oder –remote-host, um die IP-Adresse oder den Hostnamen des Zielsystems festzulegen. Weitere Optionen erlauben die vollständige Steuerung der SSH-Verbindung.
Die zu parsende Protokolldatei lässt sich auch über eine URI angeben; unterstützt werden http[s] und [s]ftp. pgBadger lädt die Datei mit dem curl-Befehl herunter und parst sie bereits während des Downloads. Auch das ssh-Protokoll wird unterstützt; dabei kommt wie beim Remote-Host der ssh-Befehl zum Einsatz. Beispiele folgen weiter unten.
Rückgabecodes:
Beispiele:
Verwenden Sie die URI-Schreibweise für entfernte Protokolldateien:
Sie können eine lokale PostgreSQL-Protokolldatei gemeinsam mit einer entfernten PgBouncer-Protokolldatei parsen:
Wöchentliche Fehlerberichte per Cron-Job:
Einen wöchentlichen Bericht mit inkrementeller Verarbeitung erzeugen:
Das setzt voraus, dass sowohl Ihre Protokolldatei als auch der HTML-Bericht wöchentlich rotiert werden.
Eine bessere Alternative sind die automatisch erzeugten inkrementellen Berichte:
Dieser Aufruf erzeugt täglich und wöchentlich einen Bericht.
Im inkrementellen Modus können Sie außerdem festlegen, wie viele Berichtswochen aufbewahrt werden:
Wenn pg_dump jeden Tag um 23:00 und 13:00 jeweils eine halbe Stunde läuft, können Sie diese Zeiträume wie folgt aus dem Bericht ausschließen:
Dadurch erscheinen die von pg_dump erzeugten COPY-Anweisungen nicht mehr am Anfang der Liste der langsamsten Abfragen. Alternativ können Sie das Problem einfacher mit –exclude-appname “pg_dump” lösen.
Auch die Ausgabe von journalctl lässt sich wie eine Protokolldatei parsen:
oder, weniger elegant, von einem entfernten Host aus:
Dabei müssen Sie auf der Befehlszeile keine Protokolldatei angeben. Weitere PostgreSQL-Protokolldateien können Sie wie gewohnt hinzufügen.
Um anschließend alle inkrementellen HTML-Berichte neu aufzubauen, gehen Sie wie folgt vor:
Dieser Aufruf aktualisiert zugleich alle Ressourcendateien (JS und CSS). Verwenden Sie -E oder –explode, wenn die Berichte mit dieser Option erstellt wurden.
pgBadger unterstützt außerdem Heroku-PostgreSQL-Protokolle im Logplex-Format:
Damit wird das Heroku-PostgreSQL-Protokoll über stdin an pgbadger weitergeleitet.
pgBadger kann RDS- und CloudWatch-Protokolle von PostgreSQL automatisch anhand des RDS-Formats erkennen:
Ein CloudSQL-PostgreSQL-Protokoll ist im Wesentlichen ein normales PostgreSQL-Protokoll, das in JSON gekapselt ist. pgBadger erkennt es automatisch; falls Sie das Protokollformat dennoch erzwingen müssen, verwenden Sie `jsonlog`.
Dasselbe gilt für die jsonlog-Erweiterung: Das JSON-Format unterscheidet sich, doch pgBadger kann beide Formate parsen.
pgBadger unterstützt außerdem Protokolle, die der CloudNativePG-Operator für PostgreSQL auf Kubernetes erzeugt:
Um einen kumulierten Monatsbericht zu erstellen, verwenden Sie folgenden Befehl:
Dadurch wird in der Kalenderansicht der inkrementellen Berichte beim Monatsnamen ein Link eingefügt, über den Sie den Bericht für Mai 2019 öffnen können. Verwenden Sie -E oder –explode, wenn die Berichte mit dieser Option erstellt wurden.
3 - Konfiguration der PostgreSQL-Protokollierung
pgBadger kann nur Informationen auswerten, die PostgreSQL in das Protokoll schreibt. Beginnen Sie mit einem analysierbaren Präfix und einer gezielt gewählten Richtlinie für die Anweisungsprotokollierung. Fügen Sie anschließend die Betriebsereignisse hinzu, die Sie analysieren möchten.
Mindestkonfiguration für die Abfrageprotokollierung
Um Abfragetext und -dauer zu erfassen, aktivieren Sie die dauerabhängige Protokollierung von Anweisungen:
0 protokolliert jede abgeschlossene Anweisung. Auf einem stark ausgelasteten Server sollten Sie einen höheren Schwellenwert in Millisekunden wählen, um das Protokollvolumen zu begrenzen. Prüfen Sie den zusätzlichen Aufwand und die Zunahme des Speicherbedarfs, bevor Sie in der Produktion einen niedrigen Schwellenwert aktivieren.
Wenn Sie nur Dauer und Anzahl der Abfragen, aber nicht den Abfragetext benötigen, verwenden Sie:
Verwenden Sie vorzugsweise log_min_duration_statement, wenn Sie Berichte über die langsamsten Abfragen und die Gesamtabfragezeit benötigen.
Erforderliche Präfixfelder
Ein benutzerdefinierter log_line_prefix muss die beiden folgenden Felder enthalten:
- ein Zeitfeld:
%t,%moder%n; - ein Prozess- oder Sitzungsfeld:
%poder%c.
Ein minimales stderr-Präfix ist:
Ein nützlicheres Präfix protokolliert Benutzer, Datenbank, Anwendung und Client:
Das entsprechende Präfix für ein syslog-Ziel lässt die bereits durch syslog bereitgestellten Zeitstempel- und Prozessfelder weg:
Eine weitere unterstützte Reihenfolge der Schlüssel ist:
Wenn Ihr Präfix keiner von pgBadger erkannten Form entspricht, übergeben Sie den exakten Wert mit --prefix. Geben Sie ihn genau wie in postgresql.conf an; vereinfachen oder verändern Sie ihn nicht.
Empfohlene Ereigniseinstellungen
Aktivieren Sie die Ereignisklassen, die im Bericht erscheinen sollen:
Diese Einstellungen können erheblichen Protokollverkehr erzeugen. Insbesondere protokollieren log_temp_files = 0 und log_autovacuum_min_duration = 0 jedes passende Ereignis; passen Sie die Werte an die Arbeitslast und das Aufbewahrungsbudget an.
Servernachrichten auf Englisch beibehalten
Der Parser erkennt PostgreSQL-Servernachrichten auf Englisch. Verwenden Sie entweder:
oder:
Locale-Einstellungen wie fr_FR.UTF-8 werden vom Parser des Originalprojekts nicht unterstützt.
Widersprüchliche Einstellungen für Anweisungen vermeiden
Aktivieren Sie log_min_duration_statement, log_duration und log_statement = 'all' nicht gemeinsam. Dieselbe Ausführung kann mehrfach protokolliert werden, was die pgBadger-Zähler verfälscht und die Protokollmenge erheblich erhöht.
| Ziel | Empfohlene Einstellung |
|---|---|
| Abfragetext und Zeitmessung | log_min_duration_statement = 0 oder ein gewählter Schwellenwert |
| Dauer und Anzahl allein | log_min_duration_statement = -1, log_duration = on |
| Umfassende Protokollierung von Anweisungen | Behandeln Sie log_statement als separate Protokollierungsrichtlinie; kombinieren Sie die drei Einstellungen nicht für pgBadger-Statistiken |
Prüfen Sie nach dem Neuladen von PostgreSQL mehrere echte Protokolleinträge, bevor Sie eine umfangreiche Analyse ausführen. Stellen Sie sicher, dass die Felder für Zeitstempel, Prozess-/Sitzungskennung, Benutzer, Datenbank, Anwendung und Client dem ausgewählten Format entsprechen.
4 - Parallelverarbeitung
pgBadger bietet zwei einander ergänzende Modi für die Parallelverarbeitung. Wählen Sie den Modus anhand der Struktur Ihrer Eingabedaten und nicht allein nach der Anzahl der CPUs.
| Option | Parallelitätseinheit | Geeignet für | Wichtigste Einschränkung |
|---|---|---|---|
-j N / --jobs N | Abschnitte einer Protokolldatei | eine große Protokolldatei mit wahlfreiem Zugriff | An Abschnittsgrenzen kann eine geringe Anzahl von Abfragen doppelt gezählt oder ausgelassen werden |
-J N / --Jobs N | vollständige Protokolldateien | viele unabhängige Protokolle | nützlich nur, wenn genügend Dateien vorhanden sind, um die Worker auszulasten |
Eine große Datei mit -j aufteilen
Der Algorithmus des Originalprojekts teilt jede Datei in N Bytebereiche auf, startet für jeden Bereich einen eigenen Parser, schreibt temporäre Binärstatistiken und führt diese anschließend zum endgültigen Bericht zusammen.
Da Protokolleinträge und mehrzeilige Anweisungen nicht genau an Byte-Offsets ausgerichtet sind, können an den Abschnittsgrenzen bis zu etwa N Abfragen pro Datei abgeschnitten, ausgelassen oder — häufiger — doppelt gezählt werden. Verwenden Sie diesen Modus für aggregierte Analysen sehr großer Dateien, nicht für Abläufe, die eine forensisch exakte Zählung jedes Protokolleintrags erfordern.
Mehrere Dateien mit -J verarbeiten
Jeder Worker verarbeitet eine vollständige Datei, sodass dieser Modus Ungenauigkeiten an Abschnittsgrenzen vermeidet. Besonders nützlich ist er bei Hunderten kleiner Dateien und ausreichender CPU- sowie I/O-Kapazität. Die Dokumentation des Originalprojekts sieht -J auch für unabhängige komprimierte Dateien vor; das Aufteilen einer einzelnen Datei mit -j erfordert dagegen unkomprimierte Eingabedaten mit wahlfreiem Zugriff.
Benchmark des Originalprojekts
Das Handbuch des Originalprojekts nennt diese Messwerte für einen Host mit 8 CPUs. Betrachten Sie sie als Vergleich der beiden Algorithmen und nicht als Prognose für aktuelle Hardware.
Eine Datei mit 9.5 GB:
| Option | 1 CPU | 2 CPU | 4 CPU | 8 CPU |
|---|---|---|---|---|
-j | 1h41m18 | 50m25 | 25m39 | 15m58 |
-J | 1h41m18 | 54m28 | 41m16 | 34m45 |
Zweihundert Dateien à 10 MB, insgesamt 2 GB:
| Option | 1 CPU | 2 CPU | 4 CPU | 8 CPU |
|---|---|---|---|---|
-j | 20m15 | 9m56 | 5m20 | 4m20 |
-J | 20m15 | 9m49 | 5m00 | 2m40 |
In der Praxis empfiehlt sich -j für wenige große Dateien und -J für viele kleine Dateien. Sie können beide Modi kombinieren, sofern Eingabe und Plattform dies unterstützen. Messen Sie jedoch die Leistung dieser Kombination: Die Protokollanalyse kann eher durch den Durchsatz des Speichersystems als durch die CPU-Leistung begrenzt werden.
Einschränkungen und temporäre Dateien
-jist für komprimierte oder CSV-Eingabedaten nicht verfügbar und setzt das Forken von Prozessen voraus; daher steht dieser Modus unter Windows nicht zur Verfügung.- Bei entfernten Eingaben unterstützt das Originalprojekt keine Verarbeitung von CSV-Dateien.
- Die parallele Analyse erstellt im ausgewählten temporären Verzeichnis Dateien mit Namen wie
tmp_pgbadgerXXXX.bin(standardmäßig im temporären Systemverzeichnis). - Löschen Sie diese Dateien nicht, während pgBadger läuft. Verwenden Sie
--tempdir, um sie auf einem Speichermedium mit ausreichender Kapazität abzulegen. - Beginnen Sie mit einer moderaten Anzahl von Workern und überwachen Sie CPU-Auslastung, Lesedurchsatz, Verbrauch an temporärem Speicherplatz und Laufzeit.
5 - Inkrementelle Berichte
Im inkrementellen Modus speichert pgBadger die ausgewerteten Statistiken im Binärformat. Daraus erstellt es pro Tag einen HTML-Bericht, pro Woche einen kumulativen Bericht und einen kalenderartigen Index, der diese Berichte miteinander verknüpft. Der Modus ist für die wiederholte Verarbeitung rotierter Protokolle vorgesehen, ohne dieselben Einträge erneut zu zählen.
Tägliche und wöchentliche Berichte erstellen
Führen Sie pgBadger nach der täglichen Protokollrotation aus und geben Sie ein dauerhaftes Ausgabeverzeichnis an:
-I aktiviert den inkrementellen Modus und -O wählt das Verzeichnis für den Binärzustand, den Kalenderindex und die erzeugten Berichte aus. pgBadger verwaltet seinen inkrementellen Zustand selbst in diesem Verzeichnis. Daher benötigen Sie --last-parsed nur, wenn Sie die Zustandsdatei ausdrücklich an einem anderen Ort ablegen möchten.
Verwenden Sie ein separates HTML-Verzeichnis, während Sie den Binärzustand im ursprünglichen Verzeichnis beibehalten:
Behandeln Sie die Binärdateien als Quelldaten für spätere Neuerstellungen. Sichern Sie sie oder bewahren Sie die ursprünglichen Protokolle auf, wenn Sie Berichte später erneut erzeugen möchten.
Aufbewahrung
Bewahren Sie nur eine festgelegte Anzahl von Wochen auf:
Ältere Wochen- und Tagesverzeichnisse werden automatisch entfernt. Testen Sie die Richtlinie an einer Kopie außerhalb der Produktion, bevor Sie sie für Ihre einzige Berichtshistorie aktivieren.
Gemeinsam genutzte Ressourcen separat speichern
Standardmäßig betten HTML-Berichte ihre JavaScript- und CSS-Dateien ein. In einem Verzeichnis mit vielen inkrementellen Berichten speichert -X / --extra-files gemeinsam genutzte Ressourcen separat und vermeidet dadurch doppelte Daten in der Ausgabe:
Alle Berichte und das zugehörige versionierte Ressourcenverzeichnis müssen gemeinsam verschoben werden.
Vorhandene Berichte neu erstellen
Erstellen Sie nach einem pgBadger-Upgrade oder einer Korrektur an der Berichtserzeugung die HTML-Ausgabe aus den aufbewahrten Binärdaten neu:
Verwenden Sie -E / --explode erneut, wenn die ursprünglichen Berichte pro Datenbank generiert wurden.
Verwenden Sie die lange Option
--rebuild. In der aktuellen Befehlsreferenz steht-Rfür--retention; wer-Rfälschlich als Kurzform für die Neuerstellung verwendet, wendet die falsche Option an.
Monatlichen Bericht hinzufügen
Tägliche und wöchentliche Berichte werden automatisch erstellt. Die monatliche Aggregation müssen Sie ausdrücklich anstoßen, da sie bei einer umfangreichen Historie aufwendig sein kann:
Der erzeugte Monatsbericht wird dem Kalenderindex hinzugefügt. Wenn Sie den Befehl erneut ausführen, wird dieser Monat aus den verfügbaren Binärdaten neu erstellt. Für eine nach Datenbank getrennte Historie verwenden Sie auch hier -E:
Die vollständige Befehlsreferenz beschreibt außerdem --day-report YYYY-MM-DD, --no-week, --noreport, --start-monday und --iso-week-number für komplexere Zeitpläne.
Öffnen Sie das mitgelieferte Beispiel für inkrementelle Berichte , um den Kalender, die Wochenverknüpfungen und die Hierarchie der Tagesberichte ohne Netzwerkverbindung zu prüfen.
6 - Ausgabeformate
pgBadger bestimmt das Ausgabeformat anhand der Dateiendung oder über -x / --extension. Verwenden Sie -o / --outfile mehrfach, um in einem einzigen Analyselauf mehrere Formate zu erzeugen.
| Format | Typische Erweiterung | Empfohlener Einsatz |
|---|---|---|
| HTML | .html | interaktiver, gut lesbarer Bericht mit Diagrammen |
| Text | .txt | Prüfung im Terminal und einfache Archivierung |
| Binär | .bin | zusammenführbare Zwischenstatistiken und Neuerstellung von Berichten |
| JSON | .json | Integration mit anderer Software; erfordert JSON::XS |
| Roh-CSV | gewählte Ausgabedatei | zeilenorientierter Export mit --dump-raw-csv |
HTML und Text
Die Standardausgabe ist out.html:
HTML enthält standardmäßig alle Skripte, Stylesheets, Schriftarten und Berichtsdaten, die für eine eigenständige Anzeige erforderlich sind. -X / --extra-files lagert gemeinsam genutzte JavaScript- und CSS-Dateien bei inkrementellen Berichten aus; bewahren Sie diese Ressourcen zusammen mit dem HTML-Verzeichnisbaum auf.
Geben Sie das Textformat ausdrücklich an:
Verwenden Sie - als Ausgabedateinamen, um ein unterstütztes Format auf die Standardausgabe zu schreiben.
Binäre Zwischendaten
Die Binärausgabe trennt die Analyse von der Darstellung. Erzeugen Sie stündliche Zwischenstände aus einer im Laufe des Tages wachsenden Protokolldatei:
Führen Sie ein oder mehrere Binärdateien in einem neuen Bericht zusammen:
Wenn der Server pro Stunde eine Protokolldatei schreibt, erstellen Sie für jede Rotation eine Binärdatei und erzeugen den kumulativen HTML-Bericht bei Bedarf neu:
Führen Sie nur Binärdateien aus kompatiblen pgBadger-Versionen zusammen. Lesen Sie vor dem Upgrade eines dauerhaft genutzten Berichtsverzeichnisses in den Versionshinweisen nach, ob die Binärformate kompatibel sind.
JSON
Die JSON-Ausgabe ist für die maschinelle Weiterverarbeitung vorgesehen, etwa in Überwachungs- oder Berichtspipelines:
Installieren Sie zunächst JSON::XS. Fügen Sie --prettify-json hinzu, um die Lesbarkeit zu verbessern, wenn Dateigröße und Erstellungsdauer weniger wichtig sind.
Roh- und abfrageorientierte Exporte
Die Befehlsreferenz bietet außerdem spezialisierte Exporte:
--dump-raw-csvanalysiert das Protokoll und schreibt zeilenorientierte CSV-Dateien, ohne einen Bericht zu erstellen;--csv-separatorändert das Trennzeichen für die Roh-CSV-Datei;--dump-all-queriesgibt jede Abfrage nach dem Ersetzen der Bind-Parameter aus;--normalized-onlyschreibt normalisierte Abfragen;--query-numberingnummeriert die Abfragen in der Textausgabe.
Diese Modi können Anwendungs-SQL, Bezeichner, Benutzer, Client-Adressen oder Literalwerte enthalten. Prüfen Sie die Ausgabe vor der Freigabe und verwenden Sie --anonymize, wenn die geplante Analyse keine Literalwerte erfordert.
7 - Beispielberichte
Die Beispielberichte wurden im Mai 2022 mit pgBadger 11.8 erzeugt. Die Originalbeispiele sind lokal auf dieser Website eingebunden. Daher bleiben Berichtsnavigation, Diagramme, Stylesheets und Skripte verfügbar, ohne auf den Server des Originalprojekts zugreifen zu müssen.
| Beispiel | Was es zeigt | Lokale Kopie |
|---|---|---|
| Vollständiger Bericht | PostgreSQL-Aktivität zusammen mit PgBouncer-Statistiken | Öffnen Sie den vollständigen Bericht |
| Inkrementeller Bericht | Kalenderindex, wöchentliche Aggregation und tägliche Seiten | Öffnen Sie den inkrementellen Index |
| Fehler und Ereignisse | Ein Bericht, der auf Fehler und betriebliche Ereignisse beschränkt ist | Öffnen Sie den Fehlerbericht |
Vollständiger Bericht
Der vollständige Bericht ist eine in sich geschlossene HTML-Datei. Über die obere Navigationsleiste können Sie globale Statistiken, Abfragen, Sitzungen, Verbindungen, temporäre Dateien, Prüfpunkte, Autovacuum-Aktivität, Sperren und PgBouncer-spezifische Diagramme untersuchen.
Die Daten dienen ausschließlich Demonstrationszwecken und stellen keinen aktuellen Leistungsbenchmark dar. Die Werte, PostgreSQL-Versionen und die eingebettete pgBadger-Benutzeroberfläche (UI) entsprechen dem Stand zum Zeitpunkt der Berichtserstellung.
Hierarchie inkrementeller Berichte
Das inkrementelle Beispiel bewahrt die vollständige Linkstruktur:
Der oberste Index verweist auf zwei wöchentliche und sieben tägliche Berichte. Alle relativen Links wurden beibehalten. Wenn Sie nur index.html verschieben, wird das Beispiel daher unbrauchbar; bewahren Sie den vollständigen Verzeichnisbaum zusammen auf.
Sicherheit und Datenschutz
Reale Berichte können SQL-Text, Bind-Werte, Datenbank- und Benutzernamen, Anwendungsnamen, Client-Adressen, Fehlerdetails und Lastmuster offenlegen. Bevor ein Bericht veröffentlicht wird:
- verwenden Sie
--anonymize, wenn Literalwerte nicht benötigt werden; - wenden Sie Ein- und Ausschlussfilter vor der Berichtserstellung an;
- prüfen Sie das endgültige HTML oder die exportierten Daten, nicht nur die Befehlszeile;
- schützen Sie den Speicherort der Berichte ebenso sorgfältig wie Betriebsprotokolle.
8 - Versionsgeschichte
Die offizielle Website veröffentlicht Versionshinweise direkt auf ihrer Startseite. Diese Seite endet bei 12.4 und wiederholt versehentlich die Versionen 11.1–11.3 mit widersprüchlichen Datumsangaben. Diese Ausgabe verwendet den fixierten ChangeLog des Originalprojekts als maßgebliche Quelle, entfernt ausschließlich diese doppelten Einträge und ergänzt die späteren Versionen der Reihe 13.x. Alle Einträge bleiben vollständig erhalten und sind innerhalb jeder Reihe von der neuesten zur ältesten Version geordnet.
| Reihe | Enthaltene Versionen | Erste bis letzte Veröffentlichung | Seite |
|---|---|---|---|
| 13.x | 13.0–13.2 | 2024-12-08 – 2025-12-29 | 13.x lesen |
| 12.x | 12.0–12.4 | 2022-09-13 – 2023-12-25 | 12.x lesen |
| 11.x | 11.0–11.8 | 2019-06-25 – 2022-04-08 | 11.x lesen |
| 10.x | 10.0–10.3 | 2018-09-09 – 2019-02-14 | 10.x lesen |
| 9.x | 9.0–9.2 | 2016-09-02 – 2017-07-27 | 9.x lesen |
Herunterladbare Archive und weitere Ressourcen finden Sie unter GitHub Releases . Die in diesem Abschnitt genannten Veröffentlichungsdaten beschreiben die Versionsgeschichte des Originalprojekts; sie entsprechen nicht dem Downloadzeitpunkt dieses Dokumentations-Snapshots.
8.1 - pgBadger 13.x – Versionshinweise
Diese Einträge geben den vollständigen Upstream-Änderungsverlauf für pgBadger 13.x wieder, beginnend mit der neuesten Version.
v13.2 · 2025-12-29
Dieses Wartungsrelease von pgBadger behebt Probleme und enthält Patches, die Benutzer seit dem letzten Release gemeldet beziehungsweise eingereicht haben.
- Korrigiert die Normalisierung von Zeichenfolgen mit korrekt gepaarten einfachen Anführungszeichen und darin enthaltenen maskierten Anführungszeichen. Dank an Bertrand Bourgier für die Meldung.
- Korrigiert die Dokumentation zu den Anforderungen an Platzhalter.
- Korrigiert einen Fall, in dem keine Beispiel-Protokolleinträge für Fehler gemeldet wurden. Dank an john doe für die Meldung.
- Behebt ein mögliches Problem mit der Operatorrangfolge zwischen ! und %s. Dank an Luca Santarelli und Philipp Trulson für die Meldung.
- Aktualisiert den pgFormatter-Code auf v5.9.
- Fügt eine GitHub-CI-Aktion hinzu, die bei jedem Commit-Push Tests ausführt.
- Korrigiert das Parsen des Platzhalters %r in log_line_prefix. Dank an nike7o0 für die Meldung.
- Beseitigt eine Warnung wegen eines nicht initialisierten Werts. Dank an Ales Zeleny für die Meldung.
- Erweitert die Dokumentation der ssh-options für das Parsen von PostgreSQL-Protokollen um Beispiele. Dank an Ulrich Konrad für den Patch.
- Fügt die Option –ssh-sudo hinzu, um Befehle über SSH mit sudo auszuführen. Dank an Andrew Jackson für den Patch.
- Behebt ein mögliches Problem mit der Operatorrangfolge zwischen ! und dem Stringvergleich eq. Dank an Adrien Nayrat für die Meldung.
- Korrigiert das Parsen von PgBouncer-Statistiken. Dank an mrgtt für die Meldung.
v13.1 · 2025-03-16
Dieses Wartungsrelease von pgBadger behebt seit dem letzten Release von Benutzern gemeldete Probleme und fügt einige neue Funktionen hinzu:
- Fügt einen neuen Bericht zum VACUUM-Durchsatz mit einem Diagramm der VACUUM-Vorgänge je Tabelle hinzu, das die Tabellen mit dem höchsten CPU-Verbrauch zeigt. Die Tabellenausgabe führt die I/O-Zeiten für Lese- und Schreibvorgänge sowie die pro Tabelle aufgewendete CPU-Zeit auf. Dank an Ales Zeleny für den Funktionswunsch. Der Patch ergänzt den Bericht „Vacuums per Table“ außerdem um eingefrorene Seiten und Tupel.
- Fügt für Debugging-Zwecke die Option –no-fork hinzu, die das Forken von Prozessen vollständig unterbindet. Dank an Ales Zeleny für den Funktionswunsch.
- Fügt der CSV-Rohausgabe Millisekunden hinzu. Dank an Henrietta Dombrovskaya für den Funktionswunsch.
- Fügt Beispielberichten den Protokolldateinamen hinzu, wenn mehrere Dateien verarbeitet werden. Dank an Adrien Nayrat für den Funktionswunsch.
Vollständige Liste der Änderungen und Danksagungen:
- Korrigiert das Parsen von Bind-Parametern. Dank an Thomas Kotzian für den Patch.
- Wendet den Abfragefilter auf mehrzeilige Abfragen an. Dank an Benjamin Jacobs für den Patch.
- Aktualisiert die Testergebnisse infolge der geänderten Speicherung von Protokolldateinamen.
- Behebt die Verwechslung der Meldungsebenen ERROR und LOG in der JSON-Ausgabe. Dank an Philippe Viegas für die Meldung.
- Entfernt den Import der nicht exportierten Methode tmpdir aus File::Temp. Dank an kmoradha für die Meldung.
v13.0 · 2024-12-08
Dieses Major-Release von pgBadger behebt seit dem letzten Release von Benutzern gemeldete Probleme und fügt einige neue Funktionen hinzu:
- Fügt zwei neue Optionen hinzu, mit denen sich die Klassengrenzen der Histogramme für Abfrage- und Sitzungszeiten anpassen lassen. –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 Dank an JosefMachytkaNetApp für den Funktionswunsch.
- Unterstützt auto_explain-Pläne in CSV- und JSON-Protokollformaten. Dank an zxwsbg und Alexander Rumyantsev für die Meldung.
- Fügt drei LOG-Meldungen hinzu, die bislang nicht als Ereignisse gemeldet wurden: „unexpected EOF“, „incomplete startup packet“ und „detected deadlock while waiting for“. Dank an dottle für die Meldung.
Probleme mit der Rückwärtskompatibilität:
- Ändert die Speicherung der Ereignisse auf LOG-Ebene, die in den Ereignisberichten aufgeführt werden. Einige wurden weiterhin fälschlich als Fehler gemeldet und gezählt statt als Einträge der Ebene LOG. Die Korrektur speichert und meldet sie als EVENTLOG, um sie von Abfragen zu unterscheiden. Diese Änderung führt beim Einsatz von pgBadger im inkrementellen Modus zu einem Bruch der Rückwärtskompatibilität. Lediglich in der Woche des Upgrades treten daher beide Verhaltensweisen parallel auf. Dank an Matti Linnanvuori für die Meldung.
Fehlerbehebungen:
- Behebt fehlende Berichte über die Abfragen, die wegen statement_timeout die meisten Abbrüche verursachen.
- Aktualisiert die Regressionstests.
- Korrigiert die Formatierung von EXPLAIN-Plänen, die aus dem CSV-Protokollformat extrahiert wurden.
- Behebt fehlende Autovacuum-Datenberichte im JSON-Protokoll: durchschnittliche Autovacuum-Dauer, pro Tabelle entfernte Tupel und VACUUM-Vorgänge je Stunde im Bericht zur Autovacuum-Aktivität. Dank an Ales Zeleny für den Patch.
- Behebt verwaiste Zeilen, die nicht den zeitaufwendigen Bind-Abfragen zugeordnet waren. Dank an Henrietta Dombrovskaya für die Meldung. Behebt außerdem die Verwendung eines nicht initialisierten Werts beim Musterabgleich. Dank an Junior Dias für den Patch.
- Wendet die Option –csv-separator auf den CSV-Rohexport an. Das Standardtrennzeichen ist das Semikolon (;). Dank an Henrietta Dombrovskaya für den Funktionswunsch.
- CSV-Rohausgabe: Fügt bei leeren Parametern und leerem Anwendungsnamen keine doppelten Anführungszeichen hinzu.
- Fügt doppelte Anführungszeichen hinzu, wenn Abfragen in der CSV-Rohausgabe ein Semikolon enthalten. Dank an Henrietta Dombrovskaya für die Meldung.
8.2 - pgBadger 12.x – Versionshinweise
Diese Einträge geben den vollständigen Upstream-Änderungsverlauf für pgBadger 12.x wieder, beginnend mit der neuesten Version.
v12.4 · 2023-12-25
Dieses Wartungsrelease von pgBadger behebt Probleme, die Benutzer seit dem letzten Release gemeldet haben.
- Korrigiert den PgBouncer-Bericht für Version 1.21. Dank an Ales Zeleny für den Patch.
- Verhindert, dass die Parallelität pro Datei die Anzahl der Dateien übersteigt. Dank an maliangzhu für die Meldung.
- Behebt den seit v12.3 fehlerhaften Regressionstest. Dank an ieshin für die Meldung.
- Korrigiert Fälle, in denen Einträge der Ebene LOG als Einträge der Ebene ERROR gezählt wurden. Dank an Matti Linnanvuori für die Meldung.
v12.3 · 2023-11-27
Dieses Wartungsrelease von pgBadger behebt Probleme, die Benutzer seit dem letzten Release gemeldet haben. Es fügt außerdem einige neue Funktionen hinzu:
- Fügt die Option –include-pid hinzu, um ausschließlich Ereignisse einer Sitzung mit der PID (%p) zu melden. Die Option kann mehrfach verwendet werden. Dank an Henrietta Dombrovskaya für den Funktionswunsch.
- Fügt die Option –include-session hinzu, um ausschließlich Ereignisse mit der Sitzungs-ID (%c) zu melden. Die Option kann mehrfach verwendet werden. Dank an Henrietta Dombrovskaya für den Funktionswunsch.
- Fügt die neue Option –dump-raw-csv hinzu, die lediglich das Protokoll parst und die Informationen im CSV-Format ausgibt. Es erfolgt keine weitere Verarbeitung und es wird kein Bericht erzeugt. Dank an Henrietta Dombrovskaya für den Funktionswunsch.
Vollständige Liste der Änderungen und Danksagungen:
- Aktualisiert pgFormatter auf Version 5.5.
- Korrigiert das Enddatum beim Parsen des jsonlog-Formats. Dank an jw1u1 für die Meldung.
- Korrigiert einen Tippfehler in „Sessions per application“. Dank an fairyfar für den Patch.
- Behebt einen Fehler im Diagramm „INSERT/UPDATE/DELETE Traffic“. Dank an fairyfar für den Patch.
- Korrigiert das Parsen verwaister Zeilen mit Bind-Abfragen. Dank an youxq für die Meldung.
- Korrigiert den Bericht „Analyze per table“ für neue PG-Versionen. Dank an Jean-Christophe Arnu für den Patch.
- Korrigiert den Parser für Syslog-Einträge, wenn der Syslog-Zeitstempel Millisekunden enthält. Dank an Pavel Rabel für die Meldung.
v12.2 · 2023-08-20
Dieses Wartungsrelease von pgBadger behebt Probleme, die Benutzer seit dem letzten Release gemeldet haben. Es fügt außerdem zwei neue Funktionen hinzu:
- Unterstützt die Werte max, avg und min für die Autovacuum-Dauer. Dank an Francisco Reinolds für den Patch.
- Unterstützt die durchschnittliche Wartezeit von PgBouncer. Dank an Francisco Reinolds für den Patch.
Vollständige Liste der Änderungen und Danksagungen:
- Korrigiert eine fehlerhafte HTML-Ausgabe, wenn der Anwendungsname <…> enthält. Dank an Fabio Geiss für die Meldung.
- Korrigiert die falsche Zuordnung verwaister Zeilen bei aktiviertem Datenbankfilter. Dank an jcasanov für die Meldung.
- Korrigiert das Parsen des Logplex-Präfixes.
- Korrigiert die Erkennung verwaister Zeilen in Logplex.
- Korrigiert bei
autovacuumdas Parsen der Zeilesystem usage: CPU: .... Dank an Francisco Reinolds für den Patch. - Stellt kein Ausgabeverzeichnis voran, wenn die Ausgabe nach stdout geschrieben wird.
- Vereinheitlicht die Bezeichnung „Average Query Duration“. Dank an Francisco Reinolds für den Patch.
- Aktualisiert die Dokumentation für neue pgBadger-Optionen. Dank an Francisco Reinolds für den Patch.
- Korrigiert einen Fall, in dem das Parsen nicht abgebrochen wurde, obwohl kein Dateihandle geöffnet werden konnte. Dank an vp für die Meldung.
- Ergänzt die Hilfe um Informationen zu den obligatorischen Platzhaltern %p/%t im Protokoll. Dank an Christophe Courtois für den Patch.
- Korrigiert den Parameter –retention. Dank an Bertrand Bourgier für den Patch.
- Korrigiert die durch Commit 0e5c7d5 entfernte Bereinigung des Ausgabeverzeichnisses, wenn das HTML-Ausgabeverzeichnis festgelegt ist. Dank an Bertrand Bourgier für die Meldung.
- Korrigiert die Ausgabedateierweiterung, wenn das Zielverzeichnis ein Zeichen enthält, das in einem regulären Ausdruck maskiert werden muss. Dank an Bertrand Bourgier für den Patch.
- Ersetzt für die Windows-Portierung Aufrufe von POSIX::strftime("%s", ….) durch einen Aufruf von localtime. Dank an Bertrand Bourgier für den Patch.
- Korrigiert die Bereinigung des HTML-Ausgabeverzeichnisses. Dank an Bertrand Bourgier für den Patch.
- Verwendet standardmäßig https für die explain-URL. Dank an Philipp Trulson für den Patch.
v12.1 · 2023-03-20
Dieses Wartungsrelease von pgBadger behebt Probleme, die Benutzer in den vergangenen sechs Monaten gemeldet haben.
Vollständige Liste der Änderungen und Danksagungen:
- Korrigiert das Parsen mehrzeiliger Parameter. Dank an Bekir Niyaz für die Meldung.
- Korrigiert die fehlgeschlagene Normalisierung von Abfragen mit ::tsrange. Dank an Philippe Griboval für die Meldung.
- Ergänzt den Ereignisbericht für Slot-Protokolleinträge um den „consistent point“ und den Startpunkt der logischen Dekodierung.
- Unterstützt im Zeitstempel ein weiteres Format für „ns + timezone“. Dank an Ronan Dunklau für die Meldung.
- Korrigiert die Erkennung von %m bei Verwendung der Notation mit T. Dank an Ronan Dunklau für die Meldung.
- Unterstützt das Parsen der von CloudNativePG erzeugten Protokolle. Dank an codrut panea für den Patch.
- Korrigiert die wirkungslose Option –outdir bei der Berichtserzeugung. Dank an Frederic Guiet für die Meldung.
- Aktualisiert die README um die neuesten Dokumentationsänderungen. Dank an Manisankar für die Meldung.
- Korrigiert einen Tippfehler in den pgBadger-Beispielen. Dank an Shinichi Hashiba für den Patch.
v12.0 · 2022-09-13
Dieses Major-Release von pgBadger behebt einige Probleme, die Benutzer in den vergangenen fünf Monaten gemeldet haben. Wie gewohnt enthält es außerdem neue Funktionen und Verbesserungen:
- Entfernt die Unterstützung der Tsung-Ausgabe.
- Verbessert die Leistung von pgBadger, wenn Hunderte von Bind-Parametern ersetzt werden müssen.
- Entfernt die Option -n | –nohighlight, die seit dem Upgrade auf pgFormatter 4 nicht mehr verwendet wird.
- Sendet auto_explain-Pläne per POST an explain.depesz.com, um die Längenbeschränkung für GET-Parameter zu umgehen.
- Wendet –exclude-query und –include-query auf Bind-/Parse-Traces an.
- Ergänzt die Dokumentation um einen Link zu den pgBadger-Beispielberichten.
Vollständige Liste der Änderungen und Danksagungen:
- Korrigiert Monatsberichte, die mit „log file … must exists“ fehlschlugen. Dank an Jaume Sabater für die Meldung.
- Korrigiert die Debugmeldung zum Start des Parsens durch PgBouncer, wenn die Eingabe stdin ist. Dank an aleszeleny für die Meldung.
- Entfernt die Unterstützung der Tsung-Ausgabe.
- Verbessert die Leistung von pgBadger bei der Ersetzung von Bind-Parametern erheblich; bei Hunderten von Parametern konnte pgBadger zuvor endlos laufen. Dank an Monty Mobile für die Meldung.
- Korrigiert die Dokumentation zu den pgBadger-Rückgabecodes sowie mehrere fehlerhafte Rückgabecodes. Dank an Jaume Sabater für die Meldung.
- Korrigiert mehrere Tippfehler. Dank an David Gilman für den Patch.
- Entfernt die Option -n | –nohighlight, die seit dem Upgrade auf pgFormatter 4 nicht mehr verwendet wird. Dank an Elena Indrupskaya für die Meldung.
- Enthält zahlreiche Korrekturen an der pgBadger-Dokumentation. Dank an Elena Indrupskay von Postgres Pro für den Patch.
- Ermöglicht halbstündige Angaben für –log-timezone und –timezone. Der Wert kann eine Ganzzahl wie 2 oder eine Gleitkommazahl wie 2.5 sein. Dank an Mujjamil-K für den Funktionswunsch.
- Erlaubt reguläre Ausdrücke für –exclude-app und –exclude-client. Dank an rdnkrkmz für den Funktionswunsch.
- Ermöglicht die Verwendung von –explain-url mit dem vorherigen Commit und stellt die Beschränkung auf das Textformat von EXPLAIN wieder her.
- Sendet auto_explain-Pläne per POST an explain.depesz.com, um die Längenbeschränkung für GET-Parameter zu umgehen. Dank an hvisage für die Meldung.
- Wendet –exclude-query und –include-query auf Bind-/Parse-Traces an. Dank an Alec Lazarescu für die Meldung.
- Korrigiert das Parsen von Autovacuum-Statistiken aus RDS-Protokollen. Dank an David Gilman für die Meldung.
- Korrigiert die Übergabe des Protokollformats beim Parsen eines entfernten Protokolls. Dank an spookypeanut für die Meldung.
- Ergänzt die Dokumentation um einen Link zu den pgBadger-Beispielberichten.
- Korrigiert die Berichte „Session per user“. Dank an vitalca für die Meldung.
- Korrigiert das Parsen der jsonlog-Ausgabe von PG15.
- Korrigiert die textbasierte Fehler- und Ereignisberichterstattung. Dank an Michael Banck für den Patch.
- Korrigiert einen Tippfehler im regulären Ausdruck in normalize_error(). Dank an Michael Banck für den Patch.
8.3 - pgBadger 11.x Versionshinweise
Diese Einträge bewahren den vollständigen Änderungsverlauf des Originalprojekts für pgBadger 11.x; die neuesten Änderungen stehen zuerst.
v11.8 · 2022-04-08
Diese pgBadger-Version behebt einige Probleme, die Benutzer in den vergangenen drei Monaten gemeldet haben. Dazu gehören insbesondere zwei Korrekturen an der Erkennung neuer Protokolleinträge im inkrementellen Modus.
- Erkennung neuer Protokolleinträge mit Zeitstempel korrigiert, wenn in log_line_prefix Millisekunden (%m) oder die Unix-Epoche (%n) verwendet werden.
- Erkennung neuer Protokolleinträge in lokalen Dateien korrigiert, wenn keine Mehrprozessverarbeitung eingesetzt wird.
Vollständige Liste der Änderungen und Danksagungen:
- Erkennung von Änderungen an Protokolldateien vollständig überarbeitet und vereinfacht.
- Die Meldungen “could not (receive|send) data (from|to) client” werden nun im Bericht „Events“ erfasst. Dank an Adrien Nayrat für den Hinweis.
- Parsing-Fehler korrigiert, der auftrat, wenn der Name einer vorbereiteten Abfrage das Zeichen ‘:’ enthielt. Dank an aleszeleny für den Hinweis.
- Erkennung neuer Protokolleinträge mit Zeitstempel korrigiert, wenn Millisekunden (%m) oder die Unix-Epoche (%n) verwendet werden. Dank an aleszeleny für den Hinweis.
- Erkennung neuer Protokolleinträge in lokalen Dateien korrigiert, wenn keine Mehrprozessverarbeitung eingesetzt wird. Dank an aleszeleny für den Hinweis.
- Erkennung neuer Protokolleinträge in entfernten Dateien über ssh korrigiert. Dank an Luca Ferrari für den Hinweis.
- Fehlerhafte Zeichen im Benutzernamen des Berichts „Connections per user“ korrigiert. Dank an caseyandgina für den Hinweis.
- ssh-Befehl bei Verwendung einer URI korrigiert; die ssh-Optionen hatten gefehlt. Dank an Luca Ferrari für den Hinweis.
- Platzhalter %Q für queryid unterstützt. Dank an Adrien Nayrat für den Patch.
- Tippfehler in einer Fehlermeldung korrigiert. Dank an Luca Ferrari für den Patch.
- Die Meldung “server process was terminated by signal” wird nun im Bericht „Events“ erfasst. Dank an Avi Vallarapu für den Hinweis.
- doc: Dateinamen im Befehl für wöchentlich ausgeführte inkrementelle Berichte korrigiert. Dank an Theophile Helleboid für den Patch.
- t/04_advanced.t: Syslog-Test korrigiert. Dank an Christoph Berg für den Patch.
v11.7 · 2022-01-23
Diese pgBadger-Version behebt einige Probleme, die Benutzer in den vergangenen fünf Monaten gemeldet haben, und bringt mehrere Verbesserungen:
- Neue Option –no-progressbar hinzugefügt, mit der sich der Fortschrittsbalken ausblenden lässt, ohne die übrigen Ausgaben zu unterdrücken.
- Neue Option –day-report hinzugefügt, mit der sich ein HTML-Bericht für den angegebenen Tag neu erstellen lässt. Sie entspricht –month-report, gilt jedoch nur für einen einzelnen Tag. Dafür werden die inkrementellen Ausgabeverzeichnisse und alle erforderlichen Binärdatendateien benötigt. Als Wert wird ein Datum im Format YYYY-MM-DD erwartet.
- Parsing von Heroku-Logplex- und CloudSQL-JSON-Protokollen verbessert.
Vollständige Liste der Änderungen und Danksagungen:
- Beitragsrichtlinien und Makefile.PL aktualisiert, um Konsistenz, Verständlichkeit und Abhängigkeiten zu verbessern. Dank an diffuse für den Patch.
- Verwendung der Datei mit dem letzten Parsing-Stand (–last-parsed) im Binärmodus korrigiert. Dank an wibrt für den Hinweis.
- Regressionstest für –last-parsed hinzugefügt und den Regressionstest für Berichte korrigiert, die ausschließlich temporäre Dateien betreffen.
- Titel des Diagramms zu Sitzungen pro Host korrigiert. Dank an Norbert Bede für den Hinweis.
- Wochennummer bei der Erstellung von Wochenberichten korrigiert, wenn –iso-week-number und –incremental aktiviert waren. Dank an hansgv für den Hinweis.
- Option –no-progressbar hinzugefügt, mit der sich der Fortschrittsbalken ausblenden lässt, ohne die übrigen Ausgaben zu unterdrücken. Dank an seidlmic für den Funktionswunsch.
- Übermäßig viele Debug-Ausgaben für Zeilen unbekannten Formats in mehrzeiligen jsonlog-Protokollen verhindert.
- Parsing einzeiliger CloudSQL-JSON-Protokolle korrigiert. Dank an Thomas Leclaire für den Hinweis.
- Zusammenfassung temporärer Dateien korrigiert, wenn ausschließlich log_temp_files protokolliert wird.
- Debug-Meldung mit -v auch dann ausgegeben, wenn -q oder –quiet verwendet wird.
- Automatische Erkennung von jsonlog-Dateien korrigiert.
- Parsing von CloudSQL-Protokolldateien korrigiert. Dank an Luc Lamarle für den Hinweis.
- PID-Extraktion in parse_json_input korrigiert. Dank an Francois Scala für den Patch.
- Neue Option –day-report mit einem Datum im Format YYYY-MM-DD als Wert hinzugefügt, mit der sich ein HTML-Bericht für den angegebenen Tag neu erstellen lässt. Dank an Thomas Leclaire für den Funktionswunsch.
- Abfragezähler im Fortschrittsbalken korrigiert. Dank an Guillaume Lelarge für den Hinweis.
- Unvollständige Abfragen korrigiert, die für die Berichte zu Top-Bind und Prepare gespeichert wurden.
- Normalisierung von Objektbezeichnern korrigiert; in einigen Fällen waren Zahlen durch ein “?” ersetzt worden.
- Unformatierte normalisierte Abfragen korrigiert, wenn am Anfang ein Kommentar steht.
- Mehrzeilige Ausgabe im stderr-Format bei Verwendung von –dbname korrigiert. Dank an Guillaume Lelarge für den Hinweis.
- Fehlende Berichte im inkrementellen Modus bei Verwendung von –dbname korrigiert. Dank an Dudley Perkins für den Hinweis.
- Bei inkompatiblen Binärdateien wird die Verarbeitung nicht mehr abgebrochen, sondern mit der nächsten Datei fortgesetzt. Dank an Thomas Leclaire für den Vorschlag.
- Änderung am Heroku-Logplex-Format im pgbadger-Parser berücksichtigt. Dank an François Pietka für den Hinweis.
v11.6 · 2021-09-04
Diese pgBadger-Version behebt einige Probleme, die Benutzer in den vergangenen sieben Monaten gemeldet haben, und bringt mehrere Verbesserungen:
- Erkennung der in PG14 neu hinzugekommenen Query-ID in log_line_prefix ergänzt. Dank an Florent Jardin für den Hinweis.
- Erweiterte Regressionstests mit Datenbankausschluss und der explode-Funktion hinzugefügt. Dank an MigOps Inc für den Patch.
- Mehrprozessverarbeitung bei der Berichtserstellung mit –explode eingesetzt. Dank an MigOps Inc für den Patch und Thomas Leclaire für den Funktionswunsch.
- –iso-week-number für den inkrementellen Modus hinzugefügt. Damit beginnen Kalenderwochen am Montag und entsprechen der ISO 8601-Wochennummer von 01 bis 53; Woche 1 ist die erste Woche mit mindestens 4 Tagen im neuen Jahr. Dank an Alex Muntada für den Funktionswunsch.
- Befehlszeilenoption –keep-comments hinzugefügt, mit der Kommentare in normalisierten Abfragen beibehalten werden. Das ist hilfreich, wenn ansonsten identische normalisierte Abfragen unterschieden werden sollen. Dank an Stefan Corneliu Petrea für den Funktionswunsch.
- Von Drittanbieter-Software in PostgreSQL-Protokolldateien eingefügte INFO-Zeilen werden übersprungen. Dank an David Piscitelli für den Hinweis.
- Kompatibilität mit PostgresPro-Protokolldateien hinzugefügt, in denen auf die Anweisungsdauer die Zeilenanzahl und die Größe in Bytes folgen. Dank an panatamann für den Hinweis.
- Zeitangaben mit T-Trennzeichen werden geparst, sodass sich Zeitstempel von journalctl verwenden lassen. Dank an Graham Christensen für den Patch.
- Windows-Portierung verbessert. Dank an Bertrand Bourgier für die Patches.
Wichtiger Hinweis:
- In der nächsten Hauptversion soll –iso-week-number zum Standard werden und –start-monday entfallen, da die Woche dann immer am Montag beginnt. Um den Code zu vereinfachen, wird die Möglichkeit entfernt, Wochenberichte am Sonntag beginnen zu lassen.
Vollständige Liste der Änderungen und Danksagungen:
- Doppelte Ausgabe der Warnmeldung korrigiert: “database … must be vacuumed within … transactions”. Dank an Christophe Courtois für den Hinweis.
- Verwendung einer nicht initialisierten Variablen korrigiert. Dank an phiresky für den Hinweis.
- Erkennung der Query-ID verbessert: Sie kann negativ sein und wird nun auch aus csvlog gelesen.
- Fehler korrigiert, durch den die letzte Datei im inkrementellen Modus immer erneut geparst wurde, obwohl sie bereits verarbeitet war. Dank an Thomas Leclaire für den Hinweis.
- Regulären Ausdruck für das syslog-Format aktualisiert, damit der Sitzungszeilenindikator entweder eine einzelne Ganzzahl oder zwei durch einen Bindestrich getrennte Ganzzahlen enthalten kann. Dank an Timothy Alexander für den Patch.
- Option –exclude-db korrigiert, sodass der zugehörige Bericht bei json-Protokollen dennoch erstellt wird. Dank an MigOps Inc für den Patch und Thomas Leclaire für den Hinweis.
- Regressionstest für eine fehlerhafte Storable-Version hinzugefügt.
- Verwendung eines nicht initialisierten Werts im Substitutionsiterator während der Erstellung von Wochenberichten im inkrementellen Modus korrigiert. Dank an Thomas Leclaire, Michael Vitale, Sumeet Shukla und Stefan Corneliu Petrea für die Hinweise.
- Option ‘g’ hinzugefügt, um alle Bind-Parameter zu ersetzen. Dank an Nicolas Lutic und Sebastien Lardiere für den Patch.
- Dokumentation verbessert. Dank an Stefan Petrea für den Patch.
- Zeitzonenberechnung im Änderungsprotokoll korrigiert. Dank an Stefan Petrea für den Patch.
- Protokollfilterung nach Start- und Endzeit korrigiert.
- Falsche Zuordnung verwaister Zeilen zu mehrzeiligen Abfragen bei aktivem Datenbankfilter korrigiert. Dank an Abhishek Mehta für den Hinweis.
- Berichte im inkrementellen Modus korrigiert, wenn der Parameter –dbname mit der Option “explode” (-E) teilweise ignoriert wurde. Dank an lrevest für den Hinweis.
- JavaScript-Ressourcen aktualisiert.
- Vorzeitige Anzeige des Menüs vor dem Wechsel in den Hamburger-Modus bei schmalerem Bildschirm korrigiert. Dank an Guillaume Lelarge für den Hinweis.
- Verarbeitung mehrzeiliger Werte von Bind-Parametern im Protokoll korrigiert.
- Für den vorherigen Patch dieselbe Korrektur wie in pgFormatter angewandt.
- Weitere Verwendung eines nicht initialisierten Werts im Substitutionsiterator aus dem pgFormatter-Code korrigiert. Dank an Christophe Courtois für den Hinweis.
- Abfragenormalisierung korrigiert. Dank an Jeffrey Beale für den Patch.
- Sichergestellt, dass bei Verwendung von –dump-all-queries alle Anweisungen mit einem Semikolon enden. Dank an Christian für den Hinweis.
- Tippfehler und Initialisierung des EOL-Typs bei mehreren Protokolldateien korrigiert.
- Automatische Erkennung des EOL-Typs hinzugefügt, um den LAST_PARSED-Offset zu korrigieren, wenn OEL 2 Bytes umfasst (Windows). Dank an Bertrand Bourgier für den Patch.
- Windows-Portierung von get_day_of_week() korrigiert, da strftime %u dort nicht unterstützt wird. Dank an Bertrand Bourgier für den Patch.
- Windows-Portierung korrigiert, bei der das Perl-Hilfsprogramm pl2bat.bat wegen der Verarbeitung von DATA in pgbadger eine beschädigte pgbadger.bat erzeugte. Dank an Bertrand Bourgier für den Patch.
- Filterung nach Start- und Endzeit korrigiert und Regressionstest für Zeitstempelfilter hinzugefügt. Dank an Alexis Lahouze und plmayekar für die Hinweise.
- Verwendung eines nicht initialisierten Werts beim Musterabgleich korrigiert, die durch das pgFormatter-Update eingeführt worden war. Dank an arlt für den Hinweis.
v11.5 · 2021-02-18
Diese pgBadger-Version behebt einige Probleme, die Benutzer in den vergangenen drei Monaten gemeldet haben, und bringt mehrere Verbesserungen:
- Bericht über die Leerlaufzeit von Sitzungen hinzugefügt. Sie wird wie folgt berechnet: “total sessions time - total queries time / number of sessions Hierfür müssen log_connection und log disconnection aktiviert sein; außerdem muss log_min_duration_statement = 0 gelten, damit alle Abfragen protokolliert werden und ein zuverlässiger Wert entsteht. Der Bericht zeigt, wie viel Leerlaufzeit anfällt und ob der Transaktionsmodus eines Poolers sinnvoll wäre. Er ist auf der Registerkarte „Sessions“ des Berichts „Global Stats“ und auf der Registerkarte „Sessions“ der stündlichen Berichte „General Activity“ verfügbar.
- Anonymisierung numerischer Werte hinzugefügt; sie werden durch 4 zufällige Ziffern ersetzt.
- SQL-Formatierer anhand von pgFormatter 5.0 aktualisiert.
Vollständige Liste der Änderungen und Danksagungen:
- Parsing mehrzeiliger CloudSQL-Anweisungen korrigiert. Dank an Jon Young für den Hinweis.
- Regressionstest für die Anonymisierung hinzugefügt.
- Durch die Kürzung auf maxlength beschädigte Anonymisierung korrigiert. Dank an artl für den Hinweis.
- Anonymisierung von Parametern in Berichten zu zeitaufwendigen prepare- und bind-Vorgängen hinzugefügt. Dank an arlt für den Hinweis.
- Unterstützung für Mikrosekunden im Protokollzeilenpräfix von Logplex hinzugefügt. Dank an Ross Gardiner für den Hinweis.
- Bericht über die Leerlaufzeit von Sitzungen hinzugefügt. Dank an Guillaume Lelarge für den Funktionswunsch.
- Unterstützung mehrzeiliger Einträge im jsonlog-Format vervollständigt.
v11.4 · 2020-11-24
Diese pgBadger-Version behebt einige Probleme, die Benutzer in den vergangenen vier Monaten gemeldet haben. Außerdem verbessert sie die Unterstützung für Protokollinformationen von PostgreSQL 13 und bringt einige neue Funktionen:
- Vollständige Autovacuum-Informationen im Bericht „Vacuums per table“ hinzugefügt: Puffernutzung (Treffer, verfehlte und verschmutzte Puffer), wegen Pins übersprungene Seiten, als eingefroren übersprungene Seiten sowie WAL-Nutzung (Datensätze, Ganzseitenabbilder und Bytes). Im Bericht „Tuples removed per table“ werden zusätzlich verbleibende Tupel, noch nicht entfernbare Tupel und verbleibende Seiten angezeigt. Diese Informationen sind nur auf der Registerkarte „Table“ verfügbar.
- Neue Aufschlüsselung der Ursachen für gestartete Checkpoints hinzugefügt.
- Erkennung des Anwendungsnamens in Meldungen zu autorisierten Verbindungen hinzugefügt.
Vollständige Liste der Änderungen und Danksagungen:
- Tippfehler in einer Fehlermeldung korrigiert. Dank an Vidar Tyldum für den Patch.
- Windows-Portierung im Zusammenhang mit der Fehlermeldung “can not load incompatible binary data” korrigiert. Dank an Eric Brawner für den Hinweis.
- Tippfehler bei der Option –html-outdir im pgbadger-Nutzungshinweis und in der Dokumentation korrigiert. Dank an Vidar Tyldum für den Patch.
- Automatische Erkennung des jsonlog/cloudsql-Formats korrigiert. Dank an Jon Young für den Hinweis.
- Parsing von CSV-Protokollen mit PG v13 korrigiert. Dank an Kanwei Li für den Hinweis und Kaarel Moppel für den Patch.
- Sortierung der Abfragen im Bericht zu den meisten erzeugten temporären Dateien korrigiert. Dank an Sebastien Lardiere für den Hinweis.
- Ausgabe der pgbadger-Version im Debug-Modus hinzugefügt.
v11.3 · 2020-07-26
Diese Version von pgBadger behebt mehrere Probleme, die in den vergangenen vier Monaten gemeldet wurden. Außerdem führt sie einige neue Funktionen und Befehlszeilenoptionen ein.
- Automatische Erkennung von UTC-Zeitstempeln hinzugefügt, damit für Diagramme keine Zeitzone angewendet wird.
- Unterstützung für das JSON-Protokollformat von GCP CloudSQL hinzugefügt.
- Neue Option –dump-all-queries hinzugefügt. Mit ihr schreibt pgBadger sämtliche Abfragen in eine Textdatei. Es wird kein Bericht erzeugt, sondern nur die vollständige Liste der in der PostgreSQL-Protokolldatei gefundenen Anweisungen ausgegeben. Bind-Parameter werden an ihren jeweiligen Positionen in die Abfragen eingefügt.
- Neue Option -Q | –query-numbering hinzugefügt. Sie nummeriert Abfragen in der Ausgabe, wenn –dump-all-queries oder –normalized-only verwendet wird.
- Neue Befehlszeilenoption –tempdir hinzugefügt, mit der sich das Verzeichnis für temporäre Dateien festlegen lässt. Dies ist auf Systemen nützlich, die das Schreiben in /tmp nicht erlauben.
- Befehlszeilenoption –ssh-port hinzugefügt, mit der sich ein vom Standardwert 22 abweichender SSH-Port festlegen lässt. Die URI-Schreibweise unterstützt die Angabe des SSH-Ports in folgender Form: ssh://192.168.1.100:2222//var/log/postgresql-11.log
Hier ist die vollständige Liste der Änderungen und Danksagungen:
- Inkrementelle Berichte für das jsonlog-/CloudSQL-Protokollformat korrigiert. Dank an Ryan DeShone für den Bericht.
- Automatische Erkennung von UTC-Zeitstempeln hinzugefügt, damit für Diagramme keine automatisch erkannte Zeitzone angewendet wird. Bei UTC-Zeit wendet der JavaScript-Code die lokale Zeitzone an. Dank an Brett Stauner für den Bericht.
- Inkrementelle Verarbeitung von journalctl-Protokollen korrigiert, die ab der zweiten Ausführung nicht mehr funktionierte. Dank an Paweł Koziol für den Patch.
- Pfad zur Ressourcendatei bei gemeinsamer Verwendung von -X und -E korrigiert. Dank an Ryan DeShone für den Bericht.
- Bericht „General Activity“ für Lese- und Schreibabfragen korrigiert. Dank an alexandre-sk5 für den Bericht.
- Debug-Meldung hinzugefügt, wenn der Parallelmodus nicht verwendet wird.
- elsif-Logik bei der Erkennung der Dateigröße sowie ein zusätzliches Leerzeichen im journalctl-Befehl bei Verwendung von –since korrigiert. Dank an Pawel Koziol für den Patch.
- Fehler “not a valid file descriptor” behoben. Dank an Pawel Koziol für den Bericht.
- Inkrementellen Modus mit RDS-Dateien korrigiert. Dank an Ildefonso Camargo, nodje und John Walsh für den Bericht.
- Neue Option -Q | –query-numbering hinzugefügt. Sie nummeriert Abfragen in der Ausgabe bei Verwendung von –dump-all-queries oder –normalized-only. Dadurch lassen sich mehrzeilige Abfragen mit einem externen Skript aus der Ausgabedatei extrahieren. Dank an Shantanu Oak für den Funktionswunsch.
- Verarbeitung von CloudSQL-JSON-Protokollen bei aktiviertem log_min_duration_statement korrigiert. Dank an alexandre-sk5 für den Bericht.
- Falschen Hash-Schlüssel für Benutzer in RDS-Protokollen korrigiert. Dank an vosmax für den Bericht.
- Fehler im Zusammenhang mit “modification of non-creatable array value” behoben. Dank an John Walsh und Mark Fletcher für den Bericht.
- Unterstützung für das JSON-Protokollformat von GCP CloudSQL hinzugefügt; das Protokollformat (-f) lautet jsonlog. Dank an Thomas Poindessous für den Funktionswunsch.
- Neue Option –dump-all-queries hinzugefügt. Mit ihr schreibt pgBadger sämtliche Abfragen in eine Textdatei, ohne einen Bericht zu erzeugen. Ausgegeben wird lediglich die vollständige Liste der in der PostgreSQL-Protokolldatei gefundenen Anweisungen. Bind-Parameter werden an ihren jeweiligen Positionen eingefügt. Es erfolgt keine Gruppierung nach eindeutigen Abfragen; alle Abfragen werden protokolliert. Dank an Shantanu Oak für den Funktionswunsch.
- Dokumentation für –dump-all-queries hinzugefügt.
- Vacuum-Bericht für neue PG-Versionen korrigiert. Dank an Alexey Timanovsky für den Bericht.
- Neue Befehlszeilenoption –no-process-info hinzugefügt. Sie deaktiviert die Änderung des Prozesstitels, mit der sich der pgBadger-Prozess leichter identifizieren lässt, da einige Systeme diese Änderung nicht erlauben. Dank an Akshay2378 für den Bericht.
- Neue Befehlszeilenoption –tempdir hinzugefügt, mit der sich das Verzeichnis für temporäre Dateien festlegen lässt. Standardwert: File::Spec->tmpdir() || ‘/tmp’ Dies ist auf Systemen nützlich, die das Schreiben in /tmp nicht erlauben. Dank an Akshay2378 für den Bericht.
- Unterstützung komprimierter Dateinamen mit Leerzeichen und/oder Klammern korrigiert. Dank an Alexey Timanovsky für den Bericht.
- Befehlszeilenoption –ssh-port hinzugefügt, mit der sich ein vom Standardwert 22 abweichender SSH-Port festlegen lässt. Die URI-Schreibweise unterstützt die Angabe des SSH-Ports in folgender Form: ssh://192.168.1.100:2222//var/log/postgresql-11.log Dank an Augusto Murri für den Funktionswunsch.
v11.2 · 2020-03-11
Diese Version von pgBadger behebt mehrere Probleme, die in den vergangenen sechs Monaten gemeldet wurden. Außerdem führt sie einige neue Funktionen ein:
Unterstützung und automatische Erkennung des AWS-Redshift-Protokollformats hinzugefügt.
Unterstützung für das neue Protokollformat von PgBouncer 1.11 hinzugefügt.
Unterstützung für die Komprimierungsformate zstd und lz4 hinzugefügt.
Vollständige Trennung von Statistikerzeugung und HTML-Berichtserstellung im inkrementellen Modus ermöglicht, ohne eine Protokolldatei lesen zu müssen. pgBadger kann beispielsweise stündlich wie folgt ausgeführt werden: pgbadger -I -O “/out-dir/data” –noreport /var/log/postgresql*.log
Dabei werden lediglich die binären Datendateien in “/out-dir/data” erstellt. Anschließend können Sie beispielsweise jede Nacht die Berichte für den Folgetag im separaten Verzeichnis
/out-dir/reportserzeugen: pgbadger -I -l “/out-dir/data/LAST_PARSED” -H “/out-dir/reports” /out-dir/data/2020/02/19/*.binDazu müssen Sie den Pfad zu den zuletzt ausgewerteten Informationen, den Zielpfad für die HTML-Berichte und die binäre Datendatei des jeweiligen Tages angeben.
Es gibt auch neue Befehlszeilenoptionen:
Neue Befehlszeilenoption –explain-url hinzugefügt, mit der sich die URL des grafischen Explain-Werkzeugs überschreiben lässt. Die Standard-URL lautet: http://explain.depesz.com/?is_public=0&is_anon=0&plan=
Damit können Sie eine lokale Installation von PgExplain oder ein anderes Werkzeug verwenden. pgBadger hängt den Plan im Textformat URL-kodiert an das Ende der URL an.
Neue Option –no-week hinzugefügt. Sie weist pgBadger an, im inkrementellen Modus keine wöchentlichen Berichte zu erstellen, wenn deren Erzeugung zu viel Zeit und Ressourcen beansprucht.
Neue Befehlszeilenoption –command hinzugefügt. Mit ihr lässt sich ein Befehl festlegen, den pgBadger ausführt, um Protokolleinträge über stdin abzurufen. pgBadger öffnet eine Pipe zu diesem Befehl und verarbeitet die von ihm erzeugten Protokolleinträge. Zum Beispiel: pgbadger -f stderr –command ‘cat /var/log/postgresql.log’
Dies entspricht dem direkten Aufruf von pgBadger mit der Protokolldatei als Argument. Die Option ist besonders nützlich, wenn die Protokolldatei während der Verarbeitung verändert werden muss oder die Protokolleinträge aus einem Programm beziehungsweise einer Datenbank stammen. Zum Beispiel:
pgbadger -f csv –command ‘psql dbname -c “COPY jrn_log TO STDOUT (FORMAT CSV)”’
Neue Befehlszeilenoption –noexplain hinzugefügt. Sie verhindert, dass pgBadger von der Erweiterung auto_explain in das Protokoll geschriebene EXPLAIN-Pläne verarbeitet und ausgibt. Dies ist bei PostgreSQL-Versionen < 9.0 nützlich, bei denen EXPLAIN-Pläne im Protokoll zu fehlerhaften Berichten führen.
Rückwärtskompatibilität:
- Standardmäßig kürzt pgBadger Abfragen auf höchstens 100000 Zeichen. Dieser frei gewählte Wert lässt sich mit –maxlength anpassen. Zuvor wurden Abfragen nicht gekürzt, was jedoch zu übermäßiger Ressourcennutzung führen konnte. Der Standardgrenzwert ist sicherer und in den meisten Fällen hoch genug, sodass keine Kürzung erfolgt. Abfragen mit mehr als 25000 Zeichen werden allerdings nicht formatiert.
Hier ist die vollständige Liste der Änderungen und Danksagungen:
- Nicht funktionierende Option –exclude-client korrigiert. Dank an John Walsh für den Bericht.
- Regressionstest für die RDS-Protokollanalyse und –exclude-client hinzugefügt.
- Fortschrittsanzeige für PgBouncer-Protokolldateien korrigiert. Das Label “queries” wurde für PgBouncer-Protokolldateien in “stats” geändert.
- Befehlszeilenoption –explain-url zum Überschreiben der URL des grafischen Explain-Werkzeugs hinzugefügt. Dank an Christophe Courtois für den Funktionswunsch.
- Unterstützung für das neue Protokollformat von PgBouncer 1.11 hinzugefügt. Dank an Dan Aksenov für den Bericht.
- Unterstützung für die Komprimierungsformate zstd und lz4 hinzugefügt. Dank an Adrien Nayrat für den Patch.
- Unterstützung und automatische Erkennung des AWS-Redshift-Protokollformats hinzugefügt. Dank an Bhuvanesh für den Funktionswunsch.
- Dokumentation zum Redshift-Protokollformat aktualisiert.
- Neue Option –no-week hinzugefügt, mit der sich wöchentliche Berichte im inkrementellen Modus deaktivieren lassen. Dank an cleverKermit17 für den Funktionswunsch.
- Musterabgleich im Dateipfad korrigiert, der pgBadger unter Windows zum Absturz brachte.
- Problem #554 mit kyrillischen und anderen kodierten Anweisungsparametern behoben, die im HTML-Bericht selbst bei benutzerdefinierter Zeichenkodierung nicht korrekt ausgegeben wurden. Die Regression war durch eine Korrektur der bekannten Perl-Fehlermeldung “Wide character in print” entstanden. Der Patch wurde zurückgenommen; mit der neuen Befehlszeilenoption –wide-char lässt sich das frühere Verhalten wiederherstellen. Fügen Sie diese Option Ihrer pgBadger-Befehlszeile hinzu, wenn die Meldung “Wide character in print” auftritt. Außerdem wurde ein Regressionstest mit kyrillischer und französischer Kodierung ergänzt. Dank an 4815162342lost und yethee für den Bericht.
- Dokumentation um den Hinweis ergänzt, dass auch lc_messages = ’en_US.UTF-8’ gültig ist. Dank an nodje für den Bericht.
- Dokumentation zu –maxlength aktualisiert: Die standardmäßige Kürzungsgrenze beträgt nun 100000; Abfragen bleiben nicht länger standardmäßig ungekürzt. Dank an nodje für den Bericht.
- Berechnung der Aufbewahrungsdauer beim Jahreswechsel korrigiert. Dank an Fabio Pereira für den Patch.
- Verarbeitung des RDS-Protokollformats korrigiert. Dank an Kadaffy Talavera für den Bericht.
- Erzeugung einer leeren Indexdatei im inkrementellen Modus verhindert, wenn keine neuen Protokolleinträge vorliegen. Dank an Kadaffy Talavera für den Bericht.
- Veraltete Dokumentation aktualisiert. Dank an Eric Hanson für den Patch.
- Befehlszeilenparameter von -no-explain in -noexplain korrigiert. Dank an Indrek Toom für den Patch.
- Rückgriff auf die Standarddateigröße, wenn totalsize nicht ermittelt werden kann. Dank an Adrien Nayrat für den Patch.
- Datumsangaben in Beispielen korrigiert. Dank an Greg Clough für den Patch.
- Regulären Ausdruck für komprimierte Dateiendungen in den verbleibenden Tests verwendet und die Endung .bin in eine separate Bedingung ausgelagert.
- Unterstützung für die Komprimierungsformate zstd und lz4 hinzugefügt. Dank an Adrien Nayrat für den Patch.
- Verbleibenden Aufruf von SIGUSR2 unter Windows korrigiert. Dank an inrap für den Bericht.
- Fortschrittsanzeige bei Protokolldateien unbekannter Größe korrigiert.
- Neue Befehlszeilenoption –command hinzugefügt, mit der pgBadger einen Befehl zum Abrufen von Protokolleinträgen über stdin ausführt. Dank an Justin Pryzby für den Funktionswunsch.
- Neue Befehlszeilenoption –noexplain hinzugefügt. Sie verhindert, dass pgBadger von der Erweiterung auto_explain in das Protokoll geschriebene EXPLAIN-Pläne verarbeitet und ausgibt. Dies ist bei PostgreSQL-Versionen < 9.0 nützlich, bei denen EXPLAIN-Pläne im Protokoll zu fehlerhaften Berichten führen. Dank an Massimo Sala für den Funktionswunsch.
- RDS-Protokollverarbeitung bei über die Befehlszeile festgelegtem Präfix korrigiert. Dank an Bing Zhao für den Bericht.
- Inkrementellen Modus mit dem RDS-Protokollformat korrigiert. Dank an Bing Zhao für den Bericht.
- Einen möglichen Fehler bei der RDS-Protokollverarbeitung korrigiert. Dank an James van Lommel und Simon Dobner für den Bericht.
- Klassifizierung von Anweisungen korrigiert und Regressionstest hinzugefügt. Dank an alexanderlaw für den Bericht.
- Anonymisierung einzelner Zeichen in der IN-Klausel korrigiert. Dank an Massimo Sala für den Bericht.
- RDS-Protokollverarbeitung für Zeilen ohne Client-, Benutzer- oder Datenbankinformationen korrigiert. Dank an Konrad für den Bericht.
v11.1 · 2019-09-16
Diese Version von pgBadger behebt mehrere Probleme, die in den vergangenen drei Monaten gemeldet wurden. Außerdem führt sie einige neue Funktionen und Berichte ein.
- Bericht über die Top-N-Abfragen hinzugefügt, die im Prepare- oder Parse-Schritt die meiste Zeit beanspruchen.
- Bericht über die Top-N-Abfragen hinzugefügt, die im Bind-Schritt die meiste Zeit beanspruchen.
- Bericht über die Laufzeiten der Teilschritte Prepare/Bind/Execute hinzugefügt. Er erscheint in der neuen Registerkarte „Duration“ des Berichts „Global Stats“. Beispiel: Total query duration: 6m16s Prepare/parse total duration: 45s564ms Bind total duration: 4m46s Execute total duration: 44s71m Dadurch wurde auch der frühere Wert „Total query duration“ korrigiert, der lediglich die Gesamtdauer von Execute auswies.
- Unterstützung für RDS- und CloudWatch-Protokollformate hinzugefügt; beide werden automatisch erkannt. Falls pgBadger das Protokollformat nicht automatisch erkennt, können Sie -f rds verwenden.
- Neue Konfigurationsoption –month-report zum Erstellen monatlicher inkrementeller Berichte hinzugefügt.
- Wiederherstellung der Unterstützung für das Windows-Betriebssystem.
Zusätzlich wurden einige Fehler behoben und Funktionen verbessert.
- Automatisch erzeugte Markdown-Dokumentation in README.md mithilfe von pod2markdown hinzugefügt. Ist der Befehl nicht verfügbar, wird die Datei nicht erzeugt. Dank an Derek Yang für den Patch.
- WITH-Anweisungen wieder als CTE eingeordnet; damit wurde eine in der letzten Version eingeführte Regression behoben.
- Unterstützung für das Windows-Betriebssystem korrigiert.
- Unterstützung für RDS- und CloudWatch-Protokollformate hinzugefügt. Falls pgBadger das Protokollformat nicht automatisch erkennt, kann -f rds verwendet werden. Dank an peruuparkar für den Funktionswunsch.
- Option -f | –format korrigiert: Sie wurde nicht auf alle Dateien aus der Parameterliste angewendet, bei denen die automatische Formaterkennung fehlschlug; stattdessen wurde das Format der zuerst verarbeiteten Datei übernommen. Dank an Levente Birta für den Bericht.
- Verweis auf pgBadger v7.x in der Quelldokumentation durch v11 ersetzt. Dank an Will Buckner für den Patch.
- Anzeigehöhe der Top-Abfragen begrenzt, damit sehr große Abfragen nicht die gesamte Seite einnehmen. Dank an ilias ilisepe1 für den Patch.
- Überlauf von Abfragen und Details im Abschnitt „Slowest individual queries“ korrigiert.
- SSH-URIs für Dateien, Verzeichnisse und Platzhalter korrigiert. Dank an tbussmann für den Patch.
- URI-Beispiele in der Dokumentation korrigiert. Dank an tbussmann für den Patch.
- Hinweis auf die Verwendung der Standardausgabedatei bei –rebuild ausgeblendet.
- Zusätzlichen Zeilenumbruch in die Ausgabe von usage() eingefügt, damit die POD-Dokumentation beim Erstellen nicht beschädigt wird.
- Beschreibung der Option –exclude-client in der Dokumentation wiederhergestellt. Dank an Christoph Berg für den Bericht.
v11.0 · 2019-06-25
Diese Version von pgBadger fügt einige wichtige neue Funktionen hinzu und behebt einige seit den letzten vier Monaten gemeldete Probleme. Neue Funktionen:
Cursorbezogene Abfragen (DECLARE,CLOSE,FETCH,MOVE) im neuen Abfragetyp CURSOR zusammengefasst.
Top-Bind-Abfragen hinzugefügt, die die meisten temporären Dateien erzeugen. Dafür müssen log_connection und log_disconnection aktiviert sein.
Befehlszeilenoption –exclude-client hinzugefügt, um Protokolleinträge für die angegebene Client-IP auszuschließen. Die Option kann mehrfach verwendet werden.
Ausschließliche Verwendung von Uhrzeiten in den Filtern –begin und –end ermöglicht.
Optionen -H und –html-dir hinzugefügt, um einen separaten Zielpfad für HTML-Berichte im inkrementellen Modus festzulegen. Binärdateien verbleiben in dem mit -O und –outdir angegebenen Verzeichnis.
Option -E | –explode hinzugefügt, um den Hauptbericht in jeweils einen Bericht pro Datenbank aufzuteilen. Globale Informationen ohne Datenbankzuordnung werden dem Bericht der Datenbank postgres hinzugefügt.
Datenbankspezifische Berichte im inkrementellen Modus hinzugefügt. In diesem Modus wird für jede Datenbank ein Unterverzeichnis mit eigenen inkrementellen Berichten erstellt.
Unterstützung für das PostgreSQL-Logplex-Format von Heroku hinzugefügt. Die Protokolle lassen sich wie folgt verarbeiten:
heroku logs -p postgres | pgbadger -f logplex -o heroku.html -
Bei Abfragen über 10Kb wird zunächst die Länge aller konstanten Zeichenkettenparameter auf 30 Zeichen begrenzt und die Abfrage anschließend auf 10Kb gekürzt. Dadurch wird verhindert, dass pgBadger bei sehr langen Abfragen unnötig Zeit verbraucht oder hängen bleibt, etwa beim Einfügen von bytea-Daten. Der Grenzwert von 10Kb lässt sich mit –maxlength steuern. Erst nach diesem ersten Begrenzungsversuch wird die Abfrage normalisiert oder auf den festgelegten Maximalwert gekürzt.
Diese neue Version ist nicht mit älteren Binär- oder JSON-Dateien kompatibel. Dies bedeutet auch, dass der inkrementelle Modus keine alten Binärdateien mehr lesen kann. Wenn Sie pgBadger aktualisieren und Ihre alten Berichte behalten möchten, achten Sie darauf, die Aktualisierung am Anfang einer neuen Woche durchzuführen, da andernfalls die wöchentlichen Berichte fehlerhaft werden können. pgBadger wird eine Warnmeldung ausgeben und die alte Binärdatei einfach überspringen.
Es wurden auch einige Fehler behoben und Funktionen verbessert.
- Versionswarnung hinzugefügt und das Laden inkompatibler Binärdateien übersprungen.
- Codeformatierer auf pgFormatter 4.0 aktualisiert.
- Hängenbleiben von pgBadger unter Windows behoben. Dank an JMLessard für den Bericht.
- Skript tools/pgbadger_tools an das neue Binärdateiformat von pgBadger v11 angepasst.
- Top-Bind-Abfragen hinzugefügt, die die meisten temporären Dateien erzeugen. Diese Auswertung ist nur möglich, wenn log_connection und log_disconnection in postgresql.conf aktiviert sind. Dank an Ildefonso Camargo für den Funktionswunsch.
- Automatische Erkennung der Zeitzone korrigiert. Dank an massimosala für die Korrektur.
- Verbleibende Diagramme bei Verwendung von –nograph entfernt.
- Verwendung der Endung .txt bei –normalized-only erzwungen.
- Berichterstattung über Autovacuum/Analyze im Logplex-Format korrigiert. Dank an Konrad zichul für den Bericht.
- Fortschrittsanzeige unter Windows korrigiert. Dank an JMLessard für den Bericht.
- `$prefix_vars{’t_time’} zum Speichern der Protokollzeit verwendet. Dank an Luca Ferrari für den Patch.
- Aufrufe und Dokumentation aktualisiert, um den Perl-Befehl aus pgBadger-Aufrufen zu entfernen. Dank an Luca Ferrari für den Patch.
- Verwendung von begin und end mit Uhrzeiten ohne Datum ermöglicht. Dank an Luca Ferrari für den Patch.
- Kleinere Rechtschreib- und Grammatikkorrekturen in der README-Datei vorgenommen. Dank an ofni yratilim für den Patch.
- Remote-Pfade bei Verwendung von SSH korrigiert. Dank an Luca Ferrari für den Patch.
- Regressionstest an die mit datenbankspezifischen Berichten eingeführte Struktur angepasst.
- Sekundenbruchteile in allen Parametern begin und end korrigiert. Dank an Luca Ferrari für den Patch.
- Dokumentations-URL korrigiert. Dank an Kara Mansel für den Bericht.
- Verarbeitung von auto_explain korrigiert. Dokumentation der mehrfach verwendbaren Option -U erweitert. Dank an Douglas J Hunley für den Bericht.
- Umfangreiche Verbesserungen an HTML- und CSS-Berichten vorgenommen. Dank an Pierre Giraud für die Patches.
- Ressourcendatei aktualisiert.
- Regressionstest für das Logplex-Format hinzugefügt.
- Unterstützung für das PostgreSQL-Logplex-Format von Heroku hinzugefügt. Diese Protokolle lassen sich wie folgt verarbeiten: heroku logs -p postgres | pgbadger -f logplex -o heroku.html - oder falls die Ausgabe bereits in einer Datei gespeichert wurde: pgbadger heroku.log Das Logplex-Format wird wie jedes andere unterstützte Format automatisch erkannt. pgBadger erkennt folgenden Standardwert für log_line_prefix: database = %d connection_source = %r sql_error_code = %e oder einfacher: sql_error_code = %e Falls weitere Standardwerte für log_line_prefix existieren, können sie dem Projekt gemeldet werden. Das Präfix lässt sich jederzeit mit der pgBadger-Option -p | –prefix festlegen, zum Beispiel: pgbadger –p ‘base = %d source = %r sql_state = %e’ heroku.log Dank an Anthony Sosso für den Funktionswunsch.
- pgBadger-Hilfe zur Verwendung von URIs korrigiert.
- Fehlerhafte Verwendung von Wildcards in SSH-URIs korrigiert, die mit einem früheren Patch eingeführt worden war. Dank an Tobias Bussmann für die Meldung.
- Unterstützung für URIs mit Leerzeichen im Pfad zur Protokolldatei hinzugefügt. Dank an Tobias Bussmann für den Bericht.
- URI-Beispiele in der Dokumentation korrigiert. Dank an Tobias Bussmann für den Patch.
- t/02_basics.t korrigiert, damit der Test nicht fehlschlägt, wenn der Syslog-Test länger als 10s dauert. Dank an Christoph Berg für den Patch.
8.4 - pgBadger 10.x – Versionshinweise
Diese Einträge geben den vollständigen Upstream-Änderungsverlauf für pgBadger 10.x wieder, beginnend mit der neuesten Version.
v10.3 · 2019-02-14
Dieses Wartungsrelease von pgBadger behebt einige Probleme bei der automatischen Erkennung des Logformats sowie ein weiteres, von Benutzern gemeldetes Problem beim Parsen von PgBouncer-Logs. Es enthält außerdem eine neue Funktion:
Die Option -o | --outfile kann nun mehrfach verwendet werden, um
Ausgaben mit einem einzigen Befehl in mehreren Formaten zu erzeugen. Beispiel:
pgbadger -o out.html -o out.json /log/pgsql-11.log
Dadurch entstehen zwei Berichte im HTML- und JSON-Format, die in den
beiden entsprechenden Dateien gespeichert werden.
Darüber hinaus enthält das Release Fehlerkorrekturen und Funktionsverbesserungen.
- Korrigiert Statistikberichte bei Verwendung eines Filters nach Datenbank, Benutzer, Client oder Anwendung; einige Abfragen fehlten in den Berichten.
- Korrigiert die automatische Erkennung des standardmäßigen Logzeilenpräfixes für pg>=10.
- Korrigiert die automatische Erkennung von Logdateien mit einem „nicht standardmäßigen“ Logzeilenpräfix. Wenn –prefix %t, %m, %n und %p oder %c angibt, wird stderr als Format verwendet. Dank an Alex Danvy für die Meldung.
- Entfernt ein überflüssiges Leerzeichen am Zeilenende.
- Fügt einen Minimaltest für den Syslog-Parser hinzu.
- Korrigiert einen Aufruf von autodetect_format().
- Kürzt Anweisungen bei Verwendung von maxlength. Dank an Thibaud Madelaine für den Patch.
- Fügt einen Test für mehrere Ausgabeformate hinzu.
- Die Option -o | –outfile kann nun mehrfach verwendet werden, um mit einem einzigen Befehl Ausgaben in mehreren Formaten zu erzeugen. Beispiel: pgbadger -o out.txt -o out.html -o - -x json /log/pgsql-11.log pgbadger erstellt dabei zwei Berichte im Text- und HTML-Format und speichert sie in den beiden entsprechenden Dateien. Zusätzlich gibt es einen JSON-Bericht auf der Standardausgabe aus. Dank an Nikolay für den Funktionswunsch.
- Verschiebt die Erkennung des Ausgabeformats und die Festlegung des Ausgabedateinamens in die eigene Funktion set_output_extension().
- Behebt ein weiteres Problem beim Parsen von PgBouncer-Logs. Dank an Douglas J. Hunley für die Meldung.
v10.2 · 2018-12-27
Dieses Wartungsrelease von pgBadger behebt Probleme, die Benutzer in den vergangenen drei Monaten gemeldet haben. Es enthält außerdem einige neue Funktionen:
- Unterstützt das Stats-Logformat von PgBouncer 1.8.
- Passt die Zeitzone von JavaScript-Diagrammen automatisch an.
Hinzu kommen neue Befehlszeilenoptionen:
Fügt die Option –exclude-db hinzu, um einen Bericht über alles außer der angegebenen Datenbank zu erstellen.
Unterstützt das Herunterladen entfernter PostgreSQL-Logdateien über HTTP oder FTP. Die Logdatei wird während des Downloads mit dem Befehl curl geparst und nie auf der Festplatte gespeichert. Bei der entfernten Logauswertung über SSH lässt sich die PostgreSQL-Logdatei über eine URI als Befehlszeilenargument angeben. ssh://localhost/postgresql-10-main.log http://localhost/postgresql-10-main.log.gz ftp://localhost/postgresql-10-main.log
Bei den Protokollen HTTP und FTP muss das Logdateiformat am Ende der URI angegeben werden:
http://localhost/postgresql-10-main.log:stderrFür die zu parsenden Logdateien können mehrere URIs angegeben werden. Das ist praktisch, wenn sich eine PgBouncer-Logdatei auf einem entfernten Rechner und die PostgreSQL-Logs auf dem lokalen Rechner befinden.
Beim Protokoll SSH lassen sich wie im Remote-Modus ebenfalls Platzhalter verwenden, beispielsweise: ssh://localhost/postgresql-10-main.log*
Die alte Syntax zum Parsen entfernter Logdateien mit der Option -r funktioniert weiterhin, ist jedoch veraltet und könnte in künftigen Versionen entfallen.
Darüber hinaus enthält das Release Fehlerkorrekturen und Funktionsverbesserungen.
- Passt das Ende der Fortschrittsanzeige bei Dateien mit geschätzter Größe an (bz2-komprimierte und komprimierte Dateien auf entfernten Rechnern).
- Aktualisiert die Jahresangabe im Copyright.
- Ergänzt Informationen zur URI-Notation für das Parsen entfernter Logdateien.
- Stellt sicher, dass die Fortschrittsanzeige nach dem Parsen einer komprimierten Datei auf einem entfernten Rechner 100% erreicht.
- Extrahiert Informationen zu PL/pgSQL-Funktionsaufrufen aus Abfragen in Berichten zu temporären Dateien und ergänzt sie im Detailanzeigeblock.
- Korrigiert die Fortschrittsanzeige für CSV-Dateien.
- Korrigiert die Verarbeitung einer Binärdatei als Eingabedatei statt als Logdatei.
- Kodiert die HTML-Ausgabe von Abfragen als UTF8, um die Meldung „Wide character in print“ zu vermeiden. Dank an Colin ’t Hart für die Meldung.
- Fügt das Schlüssel-Wert-Paar Checkpoints distance für die Abstandsspitze hinzu.
- Korrigiert das PgBouncer-Parsing und die Berichte zum Anfragedurchsatz. Dank an Levente Birta für die Meldung.
- Korrigiert die Verwendung von csvlog statt csv als Eingabeformat.
- Unterstützt das Stats-Logformat von PgBouncer 1.8. Dank an Levente Birta für die Meldung.
- Fügt eine Warnung hinzu, dass die parallele Verarbeitung mit csvlog deaktiviert ist. Dank an cstdenis für die Meldung.
- Ergänzt die Ausgabe der Nutzungshinweise um Informationen zum erzwungenen Einzelprozessbetrieb mit dem Format csvlog und den Optionen -j und -J. Dank an cstdenis für die Meldung.
- Behebt den Fehler „unknown line format“ bei mehrzeiligen Logs während der inkrementellen Analyse über SSH. Dank an Wooyoung Cho für die Meldung.
- Fügt dem Befehl curl die Option -k (–insecure) hinzu, damit Logs von Servern mit selbstsigniertem Zertifikat heruntergeladen werden können.
- Passt die Zeitzone von JavaScript-Diagrammen automatisch an. Dank an Massimino Sala für den Funktionswunsch.
- Unterstützt das Herunterladen von Logdateien über HTTP durch pgBadger, beispielsweise: /usr/bin/pgbadger http://www.mydom.com/postgresql-10.log
- Parst die Datei während des Downloads mit dem Befehl curl.
- Korrigiert die Dokumentation. Dank an 0xflotus für den Patch.
- Wendet die Korrektur für die fehlende Ersetzung von Bind-Parametern nach weiterer Codebereinigung erneut an. Dank an Bernhard J. M. Grun für die Meldung.
- Fügt die Option –exclude-db hinzu, um einen Bericht über alles außer der angegebenen Datenbank zu erstellen. Die Option kann mehrfach verwendet werden.
v10.1 · 2018-09-12
Dieses Wartungsrelease von pgBadger behebt Fehler in Berichten im inkrementellen Modus sowie bei der Mehrprozessverarbeitung mit der Option -j. Auch das Parsen von Logs aus der Standardeingabe war fehlerhaft. Wenn Sie v10.0 verwenden, sollten Sie jetzt aktualisieren.
- Fügt einen Test für den PgBouncer-Logparser hinzu.
- Verbessert die Leistung geringfügig.
- Behebt den Fehler „not a valid file descriptor at pgbadger line 12314“.
- Behebt einen unerwünschten Zeilenumbruch in der Fortschrittsanzeige beim Start.
- Entfernt die CircleCI-Dateien aus dem Projekt.
- Entfernt die Abhängigkeiten von bats und jq aus der Testsuite; sie wurden durch Test::Simple und JSON::XS ersetzt.
- Fügt weitere Tests hinzu, insbesondere für den inkrementellen Modus und die in Version 10.0 fehlerhafte Eingabe über stdin.
- Synchronisiert pgbadger, pod und README und behebt einige Syntaxfehler. Dank an Christoph Berg für den Patch.
- Ergänzt eine Anleitung zur Installation des Perl-Moduls JSON::XS aus den Repositories von apt und yum.
- Korrigiert die URI für CSS im inkrementellen Modus. Dank an Floris van Nee für die Meldung.
- Behebt einen fatalen Fehler bei der Suche nach einem Log über STDIN. Dank an Jacek Szpot für die Meldung.
- Korrigiert die Verwendung von SED für OSX-Builds. Dank an Steve Newson für den Patch.
- Behebt den Fehler „illegal division by zero“ im inkrementellen Modus. Dank an aleszeleny für die Meldung.
- Ersetzt SQL::Beautify durch v3.1 von pgFormatter::Beautify.
v10.0 · 2018-09-09
Dieses Major-Release von pgBadger führt neue Funktionen ein und behebt alle seit dem vorherigen Release von Benutzern gemeldeten Probleme.
- Unterstützt das Syslog-Logdateiformat von PgBouncer.
- Unterstützt alle auto_explain-Formate (text, xml, json und yaml).
- Unterstützt den Platzhalter %q in log_line_prefix.
- Unterstützt das jsonlog-Format der Erweiterung von Michael Paquier; mit -f jsonlog kann pgbadger das Log parsen.
- Ersetzt den SQL-Formatter/Beautifier durch v3.0 von pgFormatter.
Hinzu kommen neue Befehlszeilenoptionen:
- Fügt die Befehlszeilenoption –prettify-json hinzu, um die JSON-Ausgabe leserfreundlich zu formatieren.
- Fügt die Befehlszeilenoption –log-timezone +/-XX hinzu. Sie gibt an, um wie viele Stunden die verwendete Zeitzone von GMT abweicht, damit Datum/Uhrzeit aus der Logdatei vor dem Parsen entsprechend angepasst werden. Wenn der Client eine andere Zeitzone verwendet, muss die Zeitzone der Diagramme möglicherweise weiterhin mit -Z angepasst werden.
- Fügt die Option –include-time hinzu. Damit lassen sich die gewünschten Zeiträume auswählen, anstatt alle unerwünschten Zeiträume auszuschließen (–exclude-time).
Das pgBadger-Projekt und die Urheberrechte wurden von Dalibo auf den Autor und offiziellen Maintainer des Projekts übertragen. Bitte aktualisieren Sie Ihre Links:
- Website: http://pgbadger.darold.net/
- Quellcode: https://github.com/darold/pgbadger
Ich danke dem großartigen Team bei Dalibo für sein langjähriges Engagement für pgBadger, insbesondere Damien Clochard und Jean-paul argudo für ihre Unterstützung bei der Bekanntmachung von pgBadger.
- Korrigiert die fehlende Anzeige von Checkpoint-Abstand und -Schätzung im inkrementellen Modus. Dank an aleszeleny für die Meldung.
- Korrigiert den Titel des Berichts zu gleichzeitigen PgBouncer-Sitzungen. Dank an Jehan Guillaume De Rorthais für die Meldung.
- Unterstützt das Syslog-Logdateiformat von PgBouncer. Dank an djester für den Funktionswunsch.
- Behebt einen Fehler bei einem leeren Remote-Log. Dank an Parasit Hendersson für die Meldung.
- Korrigiert den Test für das Binärformat. Die Binärdatei muss erzeugt werden, da sie plattformabhängig ist. Dank an Michal Nowak für die Meldung.
- Korrigiert einen Fall, in dem ein leerer explain-Plan erzeugt wird.
- Korrigiert das Parsing des automatisch erkannten Standardformats bei Angabe eines Präfixes auf der Befehlszeile.
- Entfernt die Abhängigkeit vom Befehl git in Makefile.PL.
- Passt die Dokumentation an die geänderten Optionen an und entfernt den Teil [%l-1] aus dem vorgeschriebenen Präfix.
- Korrigiert das Parsing der Systemauslastung für vacuum / analyze unter PostgreSQL 10. Dank an Achilleas Mantzios für den Patch.
- Korrigiert die Tabelle Temporary File Activity.
- Entfernt die Abhängigkeit von git während der Installation.
- Fügt die Befehlszeilenoption –log-timezone +/-XX hinzu. Sie gibt an, um wie viele Stunden die verwendete Zeitzone von GMT abweicht, damit Datum/Uhrzeit aus der Logdatei vor dem Parsen entsprechend angepasst werden. Die Option erschwert die Logsuche nach Datum/Uhrzeit, weil die gesuchte Uhrzeit dann nicht mehr mit der Uhrzeit im Log übereinstimmt. Wenn der Client eine andere Zeitzone verwendet, muss die Zeitzone der Diagramme möglicherweise weiterhin mit -Z angepasst werden. Dank an xdexter für den Funktionswunsch und an Julien Tachoire für den Patch.
- Unterstützt das auto_explain-Ausgabeformat json. Dank an dmius für die Meldung.
- Korrigiert den auto_explain-Parser und verhindert die doppelte Zählung von Abfragen. Dank an zam6ak für die Meldung.
- Passt die checkpoint-RegEx an die Logmeldungen von PostgreSQL 10 an. Dank an Edmund Horner für den Patch.
- Ergänzt die Beschreibung der Option -f | –format um Informationen zum Format jsonlog.
- Korrigiert die Abfragenormalisierung, damit sich Bind-Abfragen nicht duplizieren. Werte werden nun zu einem einzelnen ? normalisiert, statt Zahlen durch 0 und Zeichenketten durch zwei einfache Anführungszeichen zu ersetzen. Dank an vadv für die Meldung.
- Korrigiert die Zählung der Logebenen. Dank an Jean-Christophe Arnu für die Meldung.
- Passt pgbadger besser an die Anforderungen von B::Lint für bare sub name an.
- Stellt perlcritic zufrieden.
- Fügt die Befehlszeilenoption –prettify-json hinzu, um die JSON-Ausgabe leserfreundlich zu formatieren. Standardmäßig besteht die Ausgabe aus einer einzigen Zeile.
- Korrigiert den Bericht Events distribution.
- Behebt einen Fehler bei –prefix, wenn log_line_prefix mehrere %% enthält. Dank an svb007 für die Meldung.
- Fügt die Befehlszeilenoption –log-timezone +/-XX hinzu. Sie gibt an, um wie viele Stunden die verwendete Zeitzone von GMT abweicht, damit Datum/Uhrzeit aus der Logdatei vor dem Parsen entsprechend angepasst werden. Die Option erschwert die Logsuche nach Datum/Uhrzeit, weil die gesuchte Uhrzeit dann nicht mehr mit der Uhrzeit im Log übereinstimmt. Wenn der Client eine andere Zeitzone verwendet, muss die Zeitzone der Diagramme möglicherweise weiterhin mit -Z angepasst werden. Dank an xdexter für den Funktionswunsch.
- Entfernt INDEXES aus der Schlüsselwortliste und fügt BUFFERS hinzu.
- Korrigiert die Normalisierung von Abfragen mit Cursors.
- Entfernt Dockerfile und die Dokumentation zu docker run. pgBadger wird als einzelnes Perl-Skript ohne Abhängigkeiten ausgeliefert und kann auf jeder Plattform eingesetzt werden. Der Einsatz von Docker für pgbadger ist daher unnötig: Wer nichts installieren möchte, kann die Datei pgbadger einfach an die gewünschte Stelle kopieren und ausführen.
- Korrigiert ein fehlerhaftes Raster bei fehlender Aktivität temporärer Dateien. Dank an Pierre Giraud für den Patch.
- Ergänzt die Dokumentation um eine Warnung zu log_in_duration_statement gegenüber log_duration + log_statement. Dank an Julien Tachoire für den Patch.
- Wendet den Zeitzonenversatz auf Balkendiagramme an. Dank an Julien Tachoire für den Patch.
- Löscht aktuelle Informationen zu temporären Dateien, wenn für dieselbe PID ein Fehler auftritt. Dank an Julien Tachoire für den Patch.
- Vereinheitlicht app= in Beispielen und unterstützt appname=. Einige Anwendungsbeispiele verwendeten appname= im Präfix, der Code erkannte dieses Token jedoch nicht. Nun verwenden alle Beispiele app=, und der Präfixparser unterstützt zusätzlich appname=. Dank an Christoph Berg für den Patch.
- Korrigiert den falschen Langnamen der Option -J: Er lautet –Jobs statt –job_per_file. Dank an Chad Trabant für die Meldung und an Etienne Bersac für den Patch.
- Ignoriert blib-Dateien. Dank an Etienne Bersac für den Patch.
- Fügt Konsistenztests hinzu. Dank an damien clochard für den Patch.
- Aktualisiert die Dokumentation: stderr ist für -f kein Standardwert. Dank an Christophe Courtois für den Patch.
- Aktualisiert pod und README nun immer. Dank an Etienne Bersac für den Patch.
- Fügt einige Regressionstests hinzu. Dank an Etienne Bersac für den Patch.
- Fügt eine editorconfig-Konfiguration hinzu. Dank an Etienne Bersac für den Patch.
- Entfernt temporäre vi-Dateien aus gitignore. Dank an Etienne Bersac für den Patch.
- Fügt die Option –include-time hinzu, um die anzuzeigenden Zeiträume auszuwählen, anstatt alle übrigen auszuschließen. Das ist praktisch, wenn nur ein oder zwei Tage aus den Logs einer Woche angezeigt werden sollen (mehrere Verwendungen von –exlucde-time werden durch eine einzige Verwendung von –include-time ersetzt). Dank an Wesley Bowman für den Patch.
- Prüft die pod-Syntax. Dank an Etienne Bersac für den Patch.
- Fügt HACKING zur Dokumentation der Tests hinzu. Dank an Etienne Bersac für den Patch.
- Entfernt die veraltete Option –bar-graph. Dank an Etienne Bersac für den Patch.
- Entfernt die irreführende .perltidyrc. Die Datei stammt aus 2012, und der pgbadger-Code entspricht ihren Regeln bei Weitem nicht. Der vereinheitlichte Diff von perltidy umfasst 10k Zeilen; daher wurde die Datei entfernt. Dank an Etienne Bersac für den Patch.
- Korrigiert die Verwendung eines nicht initialisierten Werts bei der SQL-Formatierung. Dank an John Krugger für die Meldung und an Jean-paul Argudo für die Meldung.
8.5 - pgBadger 9.x – Versionshinweise
Diese Einträge geben das vollständige Änderungsprotokoll der pgBadger-9.x-Reihe wieder, beginnend mit der neuesten Version.
v9.2 · 2017-07-27
Bei dieser pgBadger-Version handelt es sich um eine Wartungsversion, die einige neue Funktionen ergänzt.
- Bericht über Checkpoint-Abstand und -Schätzung hinzugefügt.
- Unterstützung für Schlüsselwörter von AWS Redshift im SQL-Codeformatierer hinzugefügt.
- Automatische Erkennung des Logformats im Remote-Modus hinzugefügt, damit pgbouncer-Logdateien gemeinsam mit PostgreSQL-Logdateien remote analysiert werden können.
Darüber hinaus wurden einige Fehler behoben und Funktionen verbessert.
- Fehler bei Histogrammberichten behoben, durch den Daten oberhalb des letzten Wertebereichs nicht angezeigt wurden.
- Parsing der journalctl-Ausgabe ohne Muster für die Logzeilennummer ([%l-n]) korrigiert. Danke an Christian Schmitt für die Meldung.
- Bericht über Checkpoint-Abstand und -Schätzung hinzugefügt. Danke an jjsantam für den Funktionswunsch.
- Weitere Angaben dazu ergänzt, welche Schritte das Skript tools/updt_embedded_rsc.pl beim Aktualisieren der CSS- und JavaScript-Dateien ausführt.
- Keine Warnung mehr ausgegeben, wenn alle Logdateien leer sind; in diesem Fall wird das Programm mit Code 0 beendet.
- build_log_line_prefix_regex() korrigiert: %n war in %regex_map nicht als Suchwert enthalten. Danke an ghosthound für den Patch.
- Fehlerstufe für „FATAL: cannot use CSV“ auf WARNING geändert. Danke an kong1man für die Meldung.
- Warnung wegen eines nicht initialisierten Werts behoben. Danke an Payal für die Meldung.
- „permission denied“ in die Fehlernormalisierung aufgenommen.
- pgbadger auf den neuesten Commit 5bdc018 von pgFormatter aktualisiert.
- Unterstützung für Schlüsselwörter von AWS Redshift hinzugefügt. Danke an cavanaug für den Funktionswunsch.
- Fehlende Abfrage im Bericht über temporäre Dateien ergänzt, wenn die Abfrage abgebrochen wurde. Danke an Fabrizio de Royes Mello für die Meldung.
- Abfragen mit gebundenen Parametern normalisiert; die Parameter werden durch ? ersetzt.
- Plausibilitätsprüfung hinzugefügt, die verhindert, dass die Endzeit vor der Startzeit liegt. Danke an Christophe Courtois für den Patch.
- Zahlreiche Tippfehler und Grammatikfehler korrigiert. Die Bezeichnung „pgBadger“ wird nun für das Programm, nicht für die Binärdatei verwendet. Außerdem werden die „offiziellen“ Schreibweisen PgBouncer, GitHub und CSS verwendet. Die POD-Datei wurde mit README abgeglichen. Danke an Euler Taveira für den Patch.
- Defektes Menü bei Verwendung von –disable-type top_cancelled_info behoben: Das schließende Listenelement muss innerhalb der disable_type-Prüfung liegen. Dabei wurde auch die disable_lock-Prüfung eingerückt. Danke an Euler Taveira für den Patch.
- Verwendung eines nicht initialisierten Werts behoben. Danke an johnkrugger für die Meldung.
- Test zum Lesen der Logdatei bei der automatischen Erkennung des Logformats entfernt, wenn die Datei remote gehostet wird. Danke an clomdd für die Meldung.
- Automatische Erkennung des Logformats im Remote-Modus hinzugefügt, sodass sich pgbouncer-Logdateien zusammen mit PostgreSQL-Logdateien remote analysieren lassen.
- Fälschlich erhöhte Anzahl von Sitzungen nach der Validierung einer Logzeile korrigiert. Danke an Achilleas Mantzios für die Meldung.
- Beschreibung von pgBadger geringfügig neu formatiert.
- Doppelte Informationen in der Dokumentation entfernt. Danke an cscatolini für den Patch.
v9.1 · 2017-01-24
Bei dieser pgBadger-Version handelt es sich um eine Wartungsversion, die einige neue Funktionen ergänzt.
- Bericht über die Verteilung der Fehlerklassen hinzugefügt, sofern SQLState in log_line_prefix verfügbar ist (siehe Platzhalter %e).
- SQL Beautifier auf den Stand von pgFormatter v1.6 aktualisiert.
- Normalisierung von Fehlermeldungen verbessert.
- Option –normalized-only hinzugefügt. Damit kann eine Textdatei erzeugt werden, die alle in einem Log gefundenen normalisierten Abfragen samt Anzahl enthält.
- Mit %c (session id) kann nun anstelle von %p (pid) eine Sitzung eindeutig identifiziert werden.
- Meldungen zum Warten auf Sperren in Ereignisberichte aufgenommen.
- Option –start-monday hinzugefügt, sodass Kalenderwochen montags statt standardmäßig sonntags beginnen.
Darüber hinaus wurden einige Fehler behoben und Funktionen verbessert.
- Bericht über die Fehlerklassenverteilung hinzugefügt, sofern SQLState im Logzeilenpräfix verfügbar ist. Danke an jacks33 für den Funktionswunsch.
- Globalen inkrementellen Index nach einer Größenänderung korrigiert. Danke an clomdd für die Meldung.
- Platzhalter %i für command tag in log_line_prefix korrigiert, sodass er Leerzeichen akzeptiert.
- Fehler bei –exclude-line und beim Entfernen veralteter Verzeichnisse behoben, wenn retention aktiviert ist und –noreport verwendet wird.
- Tippfehler in „vacuum activity table“ korrigiert. Danke an Nicolas Gollet für den Patch.
- Autovacuum-Bericht korrigiert. Danke an Nicolas Gollet für den Patch.
- Urheber des pgbadger-Logos zu Damien Cazeils korrigiert und die englischen Texte in Kommentaren bereinigt. Danke an Thibaut Madelaine für den Patch.
- Angaben zum pgbouncer-Logformat bei der Option -f ergänzt. Danke an clomdd für die Meldung.
- Dokumentation um Angaben zu –normalized-only ergänzt.
- Fehlerhaften Bericht über Datum und Uhrzeit korrigiert, der durch den vorherigen Patch verursacht worden war.
- Zuordnung von Dauer und Abfrage bei log_duration=on und log_statement=all korrigiert. Danke an Eric Jensen für die Meldung.
- Normalisierung von Meldungen zu advisory lock korrigiert. Danke an Thibaut Madelaine für die Meldung.
- Bericht über die auto_explain-Ausgabe korrigiert. Danke an fch77700 für die Meldung.
- Unerwünschte automatische Erkennung des Logformats bei einem Logeintrag aus stdin unterbunden. Danke an Jesus Adolfo Parra für die Meldung.
- Den „stop“-Zeichen des regulären Ausdrucks, der im Präfix nach dem Datenbank-Client sucht, eine öffnende Klammer hinzugefügt. Damit wird das Format der PostgreSQL-Client-Zeichenfolge einschließlich Quellport unterstützt. Danke an Jon Nelson für den Patch.
- Einige Rechtschreibfehler korrigiert. Danke an Jon Nelson für den Patch.
- %c (session id) kann nun %p (pid) als eindeutige Sitzungskennung ersetzen. Danke an Jerryliuk für die Meldung.
- pgbadger kann nun den Standardwert von log_line_prefix parsen, der voraussichtlich in 10.0 verwendet wird: ‘%m [%p] '
- Fehlende erste Zeile mit Interpreter-Aufruf wiederhergestellt.
- Fehlende Avg-Werte im CSV-Bericht ergänzt. Danke an Yosuke Tomita für die Meldung.
- Fehlermeldung in der Methode autodetect_format() korrigiert.
- Option –start-monday hinzugefügt, sodass Kalenderwochen montags statt standardmäßig sonntags beginnen. Danke an Joosep Mae für den Funktionswunsch.
- Option –histo-average korrigiert. Danke an Yves Martin für die Meldung.
- Pluralform von –ssh-option aus der Dokumentation entfernt. Danke an mark-a-s für die Meldung.
- Filter –exclude-time korrigiert; außerdem wurde der Code zum Überspringen unerwünschter Zeilen und zum Aktualisieren des Fortschrittsbalkens überarbeitet. Danke an Michael Chesterton für die Meldung.
- Unterstützung für den Platzhalter %r im Präfix anstelle von %h korrigiert.
v9.0 · 2016-09-02
Mit dieser Hauptversion wurde pgBadger auf Bootstrap 3 portiert; zudem wurden sämtliche Ressourcendateien (CSS und JavaScript) aktualisiert. Darüber hinaus wurden einige Fehler behoben und Funktionen verbessert.
Die Abwärtskompatibilität mit älteren inkrementellen Berichten dürfte gewahrt bleiben.
Die Quellen und Lizenzen der Ressourcendateien befinden sich nun in einem eigenen Unterverzeichnis. Zusätzlich wurde ein Skript hinzugefügt, das die in das pgbager-Skript eingebetteten minimierten Versionen aktualisiert. Danke an Christoph Berg für die Unterstützung und den Funktionswunsch.
Es wird nun versucht, Benutzer, Datenbank und Host anhand der Verbindungszeichenfolgen zu ermitteln, wenn log_connection aktiviert ist und log_line_prefix diese Angaben nicht enthält. Der reguläre Ausdruck zur automatischen Erkennung von Datenbankname, Benutzername, Client-IP-Adresse und Anwendungsname wurde erweitert. Die regulären Ausdrücke lauten nun:
db => qr/(?:db|database)=([^,]*)/; user => qr/(?:user|usr)=([^,]*)/; client => qr/(?:client|remote|ip|host)=([^,]*)/; appname => qr/(?:app|application)=([^,]*)/;Abwärtskompatibilität mit älteren Versionen von pgbadger im inkrementellen Modus hinzugefügt: Für neue CSS- und JavaScript-Dateien wird ein Unterverzeichnis angelegt. Es trägt die Hauptversionsnummer von pgbadger.
pgbadger-Logo vergrößert, da es mit der neuen Schriftgröße zu klein erschien.
Detailinformationen in allen Berichten normalisiert.
Doppeltes Kopiersymbol im Sperrenbericht entfernt.
Fehlendes Diagramm im Histogramm zur Sitzungsdauer ergänzt. Danke an Guillaume Lelarge für die Meldung.
Datei LICENSE mit den Lizenzen der Ressourcendateien hinzugefügt. Danke an Christoph Berg für den Patch.
Patch für die Bibliothek jqplot hinzugefügt, der eine Endlosschleife beim Herunterladen bestimmter Diagramme verhindert. Danke an Julien Tachoires für die Unterstützung bei der Lösung dieses Problems.
Das Skript tools/updt_embedded_rsc.pl wendet den Patch auf die Ressourcendatei resources/jquery.jqplot.js an und gibt keinen Fehler aus, wenn der Patch bereits angewendet wurde.
Einzelnes abschließendes Komma aus dem Datensatz eines Kreisdiagramms entfernt. Danke an Julien Tachoires für die Meldung.
Darstellung normalisierter Fehlermeldungen geändert.
Nicht verwendete oder automatisch generierte Dateien entfernt.
Alle Ressourcendateien (js+css) aktualisiert und ein Verzeichnis für den Quellcode der von pgbadger verwendeten JavaScript-Bibliotheken angelegt. Das neue Skript tools/updt_embedded_rsc.pl kann minimierte Versionen dieser Dateien erzeugen und in pgbadger einbetten. Außerdem bettet es die OpenType-Schriftart FontAwesome.otf in fontawesome.css ein.
9 - Support und Mitwirkung
pgBadger wird als offenes Projekt gepflegt. Fehlerberichte, Funktionsvorschläge, Dokumentationskorrekturen und Patches werden über das Repository des Originalprojekts auf GitHub verwaltet.
Fehler und Funktionswünsche
- Aktualisieren Sie pgBadger auf die neueste veröffentlichte Version und prüfen Sie, ob das Verhalten weiterhin auftritt.
- Suchen Sie in den offenen Issues und geschlossenen Issues nach einer vorhandenen Lösung.
- Reduzieren Sie das Problem auf einen möglichst kleinen, bereinigten Protokollauszug und die kürzeste Befehlszeile, mit denen es sich noch reproduzieren lässt.
- Entfernen Sie Anmeldeinformationen, sensible SQL, Bind-Werte, Hostnamen, Adressen und Geschäftsdaten.
- Erstellen Sie ein neues Issue und geben Sie die pgBadger-Version, das Betriebssystem, das Eingabeformat, die genauen Optionen sowie das beobachtete und das erwartete Ergebnis an.
Geben Sie bei Abstürzen oder Parserfehlern nur die unbedingt erforderlichen, bereinigten Protokollzeilen an, mit denen sich der Fehler reproduzieren lässt. Ein vollständiges Produktionsprotokoll oder ein erzeugter Bericht eignet sich nur selten für ein öffentliches Issue.
Einen Patch beisteuern
Das Projekt enthält eine .editorconfig-Datei für eine einheitliche Formatierung. Halten Sie Befehlszeilenhilfe, POD und erzeugte Markdown-Dokumentation synchron, wenn sich eine Änderung auf das für Benutzer sichtbare Verhalten auswirkt.
Der Arbeitsablauf für die Dokumentation im Originalprojekt lautet:
doc/pgBadger.pod ist die maßgebliche ausführliche Quelle. pgbadger --help liefert die Kurzreferenz, während die README-Dateien daraus erzeugte Ansichten sind. Führen Sie die relevanten Tests aus, bevor Sie einen Pull Request einreichen.
Kommerzieller Support
Die Lizenz des pgBadger-Projekts garantiert weder Wartung noch Support. Für kostenpflichtige Hilfe bei PostgreSQL-Protokollierung, Leistungsanalyse oder Berichtsautomatisierung nutzen Sie das Verzeichnis professioneller PostgreSQL-Dienstleister .
10 - Lizenz und Urhebernachweise
pgBadger ist freie Open-Source-Software, die unter der PostgreSQL-Lizenz verbreitet wird. Sie darf kostenlos genutzt, kopiert, verändert und verteilt werden, sofern die Urheberrechts- und Lizenzhinweise erhalten bleiben.
PostgreSQL-Lizenz
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.
Autoren und Gestaltungsnachweise
- pgBadger ist ein Originalwerk von Gilles Darold.
- Das pgBadger-Logo ist ein Originalentwurf von Damien Cazeils.
- Das Design von pgBadger v4.x stammt vom Unternehmen „Art is code“.
- Die Website ist ein Werk von Gilles Darold.
- Mitwirkende werden im gesamten ChangeLog des Originalprojekts genannt.
Eingebettete und Berichtsressourcen
Eine angepasste Version des Perl-Moduls SQL::Beautify ist in pgBadger eingebettet. Sie ist urheberrechtlich geschützt © 2009 Jonas Kramer und unter der Artistic License 2.0 veröffentlicht.
Für Ressourcen in erzeugten Berichten gelten eigene Lizenzhinweise, darunter:
| Komponente | Lizenz |
|---|---|
| bean.js, Bootstrap, jQuery, Underscore | MIT |
| jqPlot | wahlweise MIT oder GPL-2.0 |
| Schriftart von Font Awesome | SIL Open Font License 1.1 |
| Font Awesome CSS | MIT |
Der lokale Quellcode-Snapshot enthält weiterhin die vollständige Datei resources/LICENSE des Originalprojekts. Die mitgelieferten Beispielberichte sind historisch erzeugte Artefakte und enthalten unverändert ihre ursprünglichen Hinweise und Ressourcenversionen.
Dokumentations-Snapshot
Diese Ausgabe auf pig.center gliedert die Originaldokumentation in Hugo-Seiten, ergänzt Navigation und Lesehilfen für die chinesische Fassung und übernimmt die Befehlszeilenhilfe sowie den ChangeLog dort wortgetreu, wo höchste Genauigkeit erforderlich ist. Die Quelldokumentation von pgBadger bleibt unter der PostgreSQL-Lizenz; die ursprünglichen Projektnamen, Urheberangaben und Links zum Originalprojekt bleiben erhalten.