Tvrtka izdala istoimeno proširenje pgsentinel (), koje dodaje u PostgreSQL prikaz pg_active_session_history — povijest aktivnih sesija (slično oracleovom v$active_session_history).
U suštini, to su jednostavno snimke iz pg_stat_activity svake sekunde, ali postoje važni detalji:
- Sve prikupljene informacije čuvaju se samo u radnoj memoriji, a potrošnja memorije regulira se brojem poslednjih pohranjenih zapisa.
- Dodaje se polje queryid — upravo ono queryid iz proširenja pg_stat_statements (zahtijeva prethodnu instalaciju).
- Dodaje se polje top_level_query — tekst upita iz kojeg je pozvan trenutni upit (u slučaju korištenja pl/pgsql)
Potpuni popis polja pg_active_session_history:
Column | Type
------------------+--------------------------
ash_time | timestamp with time zone
datid | oid
datname | text
pid | integer
usesysid | oid
usename | text
application_name | text
client_addr | text
client_hostname | text
client_port | integer
backend_start | timestamp with time zone
xact_start | timestamp with time zone
query_start | timestamp with time zone
state_change | timestamp with time zone
wait_event_type | text
wait_event | text
state | text
backend_xid | xid
backend_xmin | xid
top_level_query | text
query | text
queryid | bigint
backend_type | text
Spremni paket za instalaciju još nije dostupan. Preporučuje se preuzimanje izvornih kodova i samostalna izrada biblioteke. Prvo je potrebno instalirati „devel“ paket za svoj server i unijeti put do pg_config u varijablu PATH. Gradimo:
cd pgsentinel/src
make
make install
Dodajemo parametre u postgres.conf:
shared_preload_libraries = ‘pg_stat_statements,pgsentinel’
track_activity_query_size = 2048
pg_stat_statements.track = all# количество удерживаемых в памяти последних записей
pgsentinel_ash.max_entries = 10000
Ponovno pokrećemo PostgreSQL i kreiramo proširenje:
create extension pgsentinel;
Prikupljene informacije omogućuju odgovaranje na pitanja kao što su:
- Na kojim su čekanjima sesije potrošile najviše vremena?
- Koje su sesije bile najaktivnije?
- Koji su upiti bili najaktivniji?
Odgovore na ova pitanja možete dobiti, naravno, SQL upitima, ali je lakše to vizualno prikazati na grafikonu, označavajući mišem zanimljive vremenske intervale. To možete učiniti pomoću besplatnog programa (preuzmite sakupljene binarne datoteke u odjeljku ).
Prilikom pokretanja PASH-Viewera (od verzije 0.4.0) provjerava se postojanje prikaza pg_active_session_history, i ako on postoji, učitava se cijela prikupljena povijest te nastavlja s očitavanjem novih dolaznih podataka, ažurirajući graf svakih 15 sekundi.

Izvor: habr.com
