Hallo zusammen. In diesem Beitrag erzähle ich Ihnen von pgSCV - einem neuen Metrikexporter für PostgreSQL (und nicht nur), warum es so gut ist und welche Probleme es löst.
Sicherlich ist jeder, der Prometheus und PostgreSQL verwendet, auf postgres_exporter gestoßen. Dieser Exporteur ist ziemlich einfach in Betrieb zu nehmen. Es gibt auch Möglichkeiten zur Erweiterung. Basierend auf Ihrer Anfrage können Sie Metriken beschreiben und entfernen. Wenn Sie gut wissen, wie Post-Gres-Statistiken funktionieren, können Sie eine relativ große Anzahl von Metriken erfassen. Wie Sie wissen, ist es jedoch wünschenswert, zusätzlich zu den Metriken von Postgres selbst Systemmetriken zu erfassen. Wenn in der Infrastruktur Hilfsdienste vorhanden sind, z. B. Verbindungsabzieher (pgbouncer, Odyssey usw.), sollten Metriken verwendet werden auch von ihnen genommen werden. Es stellt sich heraus, dass wir mehr Exporteure beliefern müssen.
In pgSCV habe ich versucht, diese beiden Probleme zu lösen.
Lösung eins. pgSCV kann sofort eine sehr große Anzahl von Metriken aus PostgreSQL übernehmen, ohne dass eine zusätzliche Konfiguration erforderlich ist. Meiner Meinung nach erleichtert dies die Aufgabe des ersten Starts erheblich . Anstatt Zeit damit zu verschwenden, eine benutzerdefinierte Konfiguration zu schreiben, um zusätzliche Metriken zu erfassen, können Sie diese sofort einsatzbereit machen. Die Möglichkeit, benutzerdefinierte Metriken zu konfigurieren, ist ebenfalls vorhanden . Es stellt sich eine vernünftige Frage: Was ist, wenn zu viele Metriken vorhanden sind und nicht alle benötigt werden? In diesem Fall können Sie die Erfassung von Metriken deaktivieren oder die Liste der Datenbanken einschränken, aus denen Sie Metriken erfassen möchten.
Zweite Lösung. Derzeit kann pgSCV Metriken aus dem System, PostgreSQL und Pgbouncer übernehmen. Zu diesem Zweck sucht er automatisch nach diesen Diensten und beginnt, Metriken von ihnen zu sammeln. Um Metriken von Netzwerkdiensten zu erfassen, benötigen Sie natürlich Verbindungsdetails. Das Erfassen von Metriken ist nicht auf lokale Dienste beschränkt. Bei Bedarf können Sie die Erfassung von Metriken von Diensten angeben, die auf anderen Knoten gehostet werden.
Ein typischer Anwendungsfall ist das einfache Ausführen von pgSCV. Im folgenden Beispiel wird davon ausgegangen, dass der Benutzer bereits erstellt wurde.
curl -O -L https://github.com/weaponry/pgscv/releases/download/v0.5.0/pgscv_0.5.0_linux_amd64.tar.gz
tar xvzf pgscv_0.5.0_linux_amd64.tar.gz
cat << EOF > pgscv.yaml
defaults:
postgres_username: "monitoring"
postgres_password: "supersecretpassword"
EOF
./pgscv --config-file pgscv.yaml
Nach dem Start können Sie eine zweite Konsole öffnen und curl -s 127.0.0.1:9890/metrics
eine Liste der Metriken abrufen.
Ich stelle fest, dass pgSCV für die Bedürfnisse von Weaponry (ein Projekt zur Überwachung von PostgreSQL und allem, was damit zu tun hat) erstellt wurde. Jetzt hat sich pgSCV meiner Meinung nach stabilisiert und ich schäme mich nicht, es zu zeigen.
Das ist alles, danke für Ihre Aufmerksamkeit! Wenn Sie Ideen, Wünsche oder Fehler haben, schreiben Sie an die Diskussionen oder Probleme . Zum Schluss noch ein paar Links: