Cég kiadta az azonos nevű pgsentinel bővítményt (), amely hozzáadja a PostgreSQL-hez a pg_active_session_history nézetet — az aktív ülések története (hasonlóan az Oracle v$active_session_history-jához).
Lényegében ezek másodpercenkénti pillanatfelvételek a pg_stat_activity-ről, de fontos részletek vannak:
- Minden felhalmozott információ kizárólag a memóriában tárolódik, a felhasználásra kerülő memória mennyisége pedig az utolsó tárolt bejegyzések számával szabályozható.
- Hozzáadódik a queryid mező — az a queryid, amely a pg_stat_statements bővítményből származik (előzetes telepítés szükséges).
- Hozzáadódik a top_level_query mező — a lekérdezés szövege, amelyből a jelenlegi lekérdezés származik (pl/pgsql használata esetén)
A pg_active_session_history mezők teljes listája:
Oszlop | Típus
------------------+--------------------------
ash_time | időbélyeg zónával együtt
datid | oid
datname | szöveg
pid | egész szám
usesysid | oid
usename | szöveg
application_name | szöveg
client_addr | szöveg
client_hostname | szöveg
client_port | egész szám
backend_start | időbélyeg zónával együtt
xact_start | időbélyeg zónával együtt
query_start | időbélyeg zónával együtt
state_change | időbélyeg zónával együtt
wait_event_type | szöveg
wait_event | szöveg
state | szöveg
backend_xid | xid
backend_xmin | xid
top_level_query | szöveg
query | szöveg
queryid | bigint
backend_type | szöveg
Jelenleg nincs kész telepítőcsomag. Javasolt letölteni a forrásokat és a könyvtárat maga összeállítani. Előzetesen telepíteni kell a saját szerver számára a "devel" csomagot, és a PATH változóba beírni a pg_config elérhetőségét. Összeállítjuk:
cd pgsentinel/src
make
make install
Hozzáadjuk a paramétereket a postgres.conf fájlhoz:
shared_preload_libraries = ‘pg_stat_statements,pgsentinel’
track_activity_query_size = 2048
pg_stat_statements.track = all# количество удерживаемых в памяти последних записей
pgsentinel_ash.max_entries = 10000
Újraindítjuk a PostgreSQL-t és létrehozzuk a bővítményt:
create extension pgsentinel;
A felhalmozott információ lehetővé teszi, hogy válaszoljunk olyan kérdésekre, mint:
- Melyik várakozó ülések töltöttek a legtöbb időt?
- Melyik ülések voltak a legaktívabbak?
- Melyik lekérdezések voltak a legaktívabbak?
Ezekre a kérdésekre természetesen SQL lekérdésekkel is választ lehet kapni, de kényelmesebb grafikonon megjeleníteni, kiemelve az érdeklődési időintervallumokat egérrel. Ezt megteheti egy ingyenes program segítségével, (a közzétett bináris fájlok letölthetők a ).
A PASH-Viewer indításakor (a 0.4.0-ás verziótól kezdve) ellenőrzi a pg_active_session_history nézet meglétét, és ha az megtalálható, betölti belőle az összes felhalmozott történetet, majd folytatja az új érkező adatok olvasását, frissítve a grafikont 15 másodpercenként.

Forrás: habr.com
