Aktív munkamenetek története PostgreSQL-ben — új pgsentinel bővítmény

Cég pgsentinel kiadta az azonos nevű pgsentinel bővítményt (github készlet), 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:

  1. 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ó.
  2. 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).
  3. 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, PASH-Viewer (a közzétett bináris fájlok letölthetők a Releases).

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.

Aktív munkamenetek története PostgreSQL-ben — új pgsentinel bővítmény

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster