Pgsentinel hat die gleichnamige
pgsentinel- Erweiterung (
Github-Repository ) veröffentlicht, mit der PostgreSQL die Ansicht pg_active_session_history hinzugefügt wird - der Verlauf aktiver Sitzungen (ähnlich der Oracle v $ active_session_history).
Tatsächlich sind dies einfach jede Sekunde Schnappschüsse von pg_stat_activity, aber es gibt wichtige Punkte:
- Alle gesammelten Informationen werden nur im RAM gespeichert, und die verbrauchte Speichermenge wird durch die Anzahl der zuletzt gespeicherten Datensätze bestimmt.
- Das Feld queryid wird hinzugefügt - dieselbe queryid aus der Erweiterung pg_stat_statements (eine vorläufige Installation ist erforderlich).
- Das Feld top_level_query wird hinzugefügt - der Abfragetext, von dem aus die aktuelle Abfrage aufgerufen wurde (bei Verwendung von pl / pgsql).
Vollständige Liste der Felder pg_active_session_history: Spalte | Geben Sie ------------------ + -------------------------- ash_time | ein Zeitstempel mit Zeitzonendaten | oid datname | Text pid | Ganzzahl usingysid | oid usename | Text Anwendungsname | Text client_addr | Text client_hostname | Text client_port | Ganzzahl backend_start | Zeitstempel mit Zeitzone xact_start | Zeitstempel mit Zeitzone query_start | Zeitstempel mit Zeitzone state_change | Zeitstempel mit Zeitzone wait_event_type | text wait_event | Textstatus | Text backend_xid | xid backend_xmin | xid top_level_query | Textabfrage | Textabfrage-ID | bigint backend_type | Text
Es gibt noch kein fertiges Paket für die Installation. Es wird vorgeschlagen, die Quellen herunterzuladen und die Bibliothek selbst zu erstellen. Zuerst müssen Sie das Paket "devel" für Ihren Server installieren und den Pfad zu pg_config in die Variable PATH schreiben. Wir sammeln:
cd pgsentinel / src
machen
make install
Fügen Sie der postgres.conf Parameter hinzu:
shared_preload_libraries = 'pg_stat_statements, pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = all
# Anzahl der zuletzt gespeicherten Einträge
pgsentinel_ash.max_entries = 10000
Starten Sie PostgreSQL neu und erstellen Sie die Erweiterung:
Erstellen Sie die Erweiterung pgsentinel.
Mit den gesammelten Informationen können Sie Fragen beantworten wie:
- Mit welchen Erwartungen haben die Sitzungen am meisten Zeit verbracht?
- Welche Sitzungen waren am aktivsten?
- Welche Abfragen waren am aktivsten?
Sie können Antworten auf diese Fragen natürlich mit SQL-Abfragen erhalten. Es ist jedoch bequemer, dies in der Grafik deutlich zu sehen und die Zeitintervalle mit der Maus hervorzuheben. Sie können dies mit dem kostenlosen
PASH-Viewer- Programm tun (Sie können gesammelte Binärdateien im Abschnitt "
Releases" herunterladen).
Zu Beginn prüft PASH-Viewer (ab Version 0.4.0), ob die Ansicht pg_active_session_history vorhanden ist, und lädt, falls vorhanden, den gesamten akkumulierten Verlauf daraus und liest weiterhin alle eingehenden Daten, wobei der Zeitplan alle 15 Sekunden aktualisiert wird.
