poduzeće
U biti, ovo su jednostavno snimke sekunde po sekundu iz pg_stat_activity, ali postoje važne točke:
- Sve prikupljene informacije pohranjuju se samo u RAM, a potrošena količina memorije regulirana je brojem zadnjih pohranjenih zapisa.
- Dodano je polje queryid - isti queryid iz proširenja pg_stat_statements (potrebna predinstalacija).
- Dodano je polje top_level_query - tekst upita iz kojeg je pozvan trenutni upit (ako se koristi pl/pgsql)
Cijeli popis pg_active_session_history polja:
Stupac | Upišite ------------------+----------------------- ash_time | vremenska oznaka s datumom vremenske zone | oid ime datuma | tekst pid | cijeli broj usesid | oid korisničko ime | tekst naziv_aplikacije | tekst client_addr | tekst client_hostname | tekst client_port | cijeli broj backend_start | vremenska oznaka s vremenskom zonom xact_start | vremenska oznaka s vremenskom zonom query_start | vremenska oznaka s vremenskom zonom state_change | vremenska oznaka s vremenskom zonom wait_event_type | tekst čekaj_događaj | stanje teksta | tekst backend_xid | xid backend_xmin | xid upit_vršne_razine | tekstualni upit | tekst queryid | bigint backend_type | tekst
Još nema gotovog paketa za instalaciju. Predlaže se preuzimanje izvora i samostalno sastavljanje biblioteke. Najprije trebate instalirati paket “devel” za vaš poslužitelj i postaviti put do pg_config u varijabli PATH. Sakupljamo:
cd pgsentinel/src
napraviti
make install
Dodajte parametre u postgres.conf:
shared_preload_libraries = 'pg_stat_statements,pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = sve# broj nedavnih zapisa u memoriji
pgsentinel_ash.max_entries = 10000
Ponovno pokrenite PostgreSQL i izradite proširenje:
stvoriti proširenje pgsentinel;
Prikupljene informacije omogućuju nam da odgovorimo na pitanja poput:
- Na koje čekaonice ste potrošili najviše vremena?
- Koje su sesije bile najaktivnije?
- Koji su zahtjevi bili najaktivniji?
Možete, naravno, dobiti odgovore na ova pitanja pomoću SQL upita, ali praktičnije je to vidjeti vizualno na grafikonu označavanjem vremenskih intervala koji vas zanimaju mišem. To možete učiniti s besplatnim programom
Prilikom pokretanja, PASH-Viewer (počevši od verzije 0.4.0) provjerava prisutnost prikaza pg_active_session_history i ako on postoji, učitava cijelu akumuliranu povijest iz njega i nastavlja čitati nove dolazne podatke, ažurirajući grafikon svakih 15 sekundi.
Izvor: www.habr.com