Aktiver Sitzungsverlauf von PostgreSQL – neue pgsentinel-Erweiterung

Unternehmen pgsentinel veröffentlichte die gleichnamige pgsentinel-Erweiterung (Github-Repository), die die pg_active_session_history-Ansicht zu PostgreSQL hinzufügt – den Verlauf aktiver Sitzungen (ähnlich wie v$active_session_history von Oracle).

Tatsächlich sind dies nur Sekunden-Snapshots von pg_stat_activity, aber es gibt wichtige Punkte:

  1. Alle gesammelten Informationen werden nur im RAM gespeichert und die Menge des verbrauchten Speichers wird durch die Anzahl der zuletzt gespeicherten Datensätze reguliert.
  2. Das Feld „QueryID“ wird hinzugefügt – dieselbe Abfrage-ID aus der Erweiterung „pg_stat_statements“ (Vorinstallation erforderlich).
  3. Das Feld top_level_query wird hinzugefügt – der Text der Abfrage, von der aus die aktuelle Abfrage aufgerufen wurde (im Fall der Verwendung von pl/pgsql)


Vollständige Liste der pg_active_session_history-Felder:

      Spalte | Geben Sie ----+---------------------------------------- ash_time | ein Zeitstempel mit Zeitzone datiert | oid-Datenname | Text-PID | Ganzzahl usesysid | oid-Benutzername | 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 zur Installation. Es wird empfohlen, den Quellcode herunterzuladen und die Bibliothek selbst zu erstellen. Zuerst müssen Sie das „devel“-Paket für Ihren Server installieren und den Pfad auf pg_config in der PATH-Variablen festlegen. Wir sammeln:

cd pgsentinel/src
um
make install

Parameter zu postgres.conf hinzufügen:

shared_preload_libraries = 'pg_stat_statements,pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = alle

# Anzahl der zuletzt im Speicher gehaltenen Datensätze
pgsentinel_ash.max_entries = 10000

Laden Sie PostgreSQL neu und erstellen Sie eine Erweiterung:

Erweiterung pgsentinel erstellen;

Die gesammelten Informationen ermöglichen es uns, Fragen zu beantworten wie:

  • Mit welchen Erwartungen haben die Sitzungen die meiste Zeit verbracht?
  • Welche Sitzungen waren am aktivsten?
  • Welche Anfragen waren am aktivsten?

Natürlich können Sie mithilfe von SQL-Abfragen Antworten auf diese Fragen erhalten. Bequemer ist es jedoch, dies deutlich im Diagramm zu sehen, indem Sie die interessierenden Zeitintervalle mit der Maus markieren. Sie können es mit einem kostenlosen Programm tun PASH-Viewer (Sie können die gesammelten Binärdateien im Abschnitt herunterladen Mitteilungen).

Beim Start prüft PASH-Viewer (ab Version 0.4.0), ob die Ansicht „pg_active_session_history“ vorhanden ist. Falls vorhanden, lädt er den gesamten akkumulierten Verlauf daraus, liest weiterhin neue eingehende Daten und aktualisiert das Diagramm alle 15 Sekunden.

Aktiver Sitzungsverlauf von PostgreSQL – neue pgsentinel-Erweiterung

Source: habr.com

Kommentar hinzufügen