Vor ein paar Jahren, als ich mich mit einem anderen Problem bei der Leistung von Postgres befasste, musste ich mich mit Postgres-Statistiken befassen. Als ich mich mit den Ansichten und Funktionen befasste, dachte ich, dass es nicht ganz bequem ist, mit den Standardeinstellungen zu arbeiten.
Tatsächlich werden in Postgres viele aller Arten von Metriken in Form von Darstellungen und Funktionen dargestellt. Einerseits ist es sehr praktisch, SELECT zu schreiben und die Daten zu empfangen. Andererseits sind solche periodischen Schriften etwas anstrengend.
Gleichzeitig musste ich nicht nur eine Statue ein einziges Mal betrachten, sondern auch ihre Veränderung verfolgen. Ich kann mich nicht erinnern, was es sicher war. Vielleicht mussten Sie sich die Änderung der Replikationsverzögerung ansehen oder mit welcher Häufigkeit eine bestimmte Anforderung aufgerufen wurde ...
Nachdem ich mich dabei erwischt hatte zu denken, dass ich genug Werkzeuge für mich habe, begann ich nach Dienstprogrammen für meine Aufgabe zu suchen, aber leider fand ich nichts, was zu mir passen würde. So entstand
pgCenter .
Ursprünglich war es ein Konsolendienstprogramm und wurde als benutzerfreundliches Element konzipiert, das in einer topähnlichen Oberfläche Änderungen in der Statistik nach der Statistik anzeigt. Angesichts der Tatsache, dass Sie während der Postgres-Fehlerbehebung immer noch Systemmetriken vor Augen haben müssen, wurden auch Systemstatistiken hinzugefügt ... CPU-, Speicher-, Swap-, Festplatten- und Netzwerkschnittstellenauslastung. Erst dann wurden andere Verwaltungsfunktionen hinzugefügt, z. B. das Anzeigen der Konfigurations- und Bearbeitungskonfigurationen, das Arbeiten mit Protokollen, das Aufnehmen von Anforderungen und Clients. Im Allgemeinen wuchs die Anzahl der Funktionen allmählich ... und die Benutzer boten verschiedene Ideen an, wie das Tool noch besser werden kann. Heute, nach einiger Entwicklung, bin ich endlich bereit, eine neue Version vorzustellen, in der sich pgCenter stark verändert hat.
Die wichtigste und vielleicht wichtigste Änderung ist, dass pgCenter jetzt in Go geschrieben ist. Es war ursprünglich in C, aber um ehrlich zu sein, ist es für mich auf Go einfacher, Ideen umzusetzen und neue Funktionen hinzuzufügen. Ein weiteres positives Merkmal ist die Verteilung - die ausführbare Datei ist eine Binärdatei, die Sie nur herunterladen, entpacken und verwenden müssen.
Eine weitere große Neuerung ist, dass pgenter jetzt nicht nur ein Top-ähnlicher Viewer für Statistiken ist. Jetzt können Statistiken in lokalen Dateien gespeichert und bei Bedarf angezeigt werden. Es wird verwendet, wenn keine unterstellte Überwachung erfolgt oder die Statistiken während des Benchmarking auf einer temporären virtuellen Maschine oder einem temporären Container erfasst werden müssen. Als Ergebnis stellte sich heraus, dass es einem
Orakel-Statspack oder zum Beispiel
Sar aus dem
sysstat-Paket ähnelt . In diesem Fall müssen Sie auf der Basisebene nichts umzäunen, keine zusätzlichen Funktionen usw.
Als Ergebnis haben wir 3 Dienstprogramme in einer Binärdatei und sie werden alle als separate Unterbefehle aufgerufen, wie es in
git oder
perf aussieht.
Hier enden große Innovationen und kleine Verbesserungen bleiben bestehen. Sie beziehen sich hauptsächlich auf den Top-Viewer:
- Standardmäßig werden jetzt anstelle von Statistiken zu den Datenbanken Aktivitätsstatistiken angezeigt - wer ist verbunden, welche Anforderungen werden ausgeführt, wie lange usw. Die Erfahrung zeigt, dass es meistens notwendig ist, die aktuelle Aktivität zu bewerten, daher ist es wahrscheinlich sinnvoll, diese bestimmte Statue sofort zu zeigen.
- In der Aktivitätsstatistik können Sie jetzt sowohl Hintergrundprozesse (in Postgres 10 hinzugefügt) als auch inaktive Clients sehen, die nichts tun (aktiviert durch Hotkey). Bisher wurden Leerlauf aufgrund ihrer Nutzlosigkeit überhaupt nicht angezeigt, aber nur wenige Menschen brauchen ihn plötzlich.
- Die mit den Tabellen verknüpften Statistiken wurden früher in zwei separaten Ansichten angezeigt. Jetzt werden alle Statistiken kombiniert und in einer Ansicht angezeigt.
- Die Filterfunktion unterstützt jetzt reguläre Ausdrücke, und Sie können die Parameter für genau das, was Sie sehen möchten, flexibler einstellen ... Tabellennamen, Indizes, Funktionen, Abfragen usw.
Es ist wahrscheinlich, dass ich vergessen habe, einige andere Funktionen zu erwähnen, aber ich habe die meiner Meinung nach interessantesten aufgelistet.
Das scheint alles zu sein, alle, die das Dienstprogramm, das ich aktualisieren möchte, bereits verwenden, und alle, die es zum ersten Mal hören, ich fordere Sie auf, eine kleine Demo zu versuchen oder anzusehen.

Es gibt auch eine
Präsentation aus dem Bericht, obwohl die alte Version dort beschrieben ist, aber es ist sinnvoll, auch einen Blick darauf zu werfen.
Und natürlich warte ich auf Feedback und Fehlerberichte. Habt alle einen schönen Tag!