PostgreSQL aktivna povijest sesije - novo pgsentinel proširenje

poduzeće pgsentinel izdao istoimenu ekstenziju pgsentinel (github spremište), koji dodaje pogled pg_active_session_history u PostgreSQL — povijest aktivnih sesija (slično Oracleovoj v$active_session_history).

U biti, ovo su jednostavno snimke sekunde po sekundu iz pg_stat_activity, ali postoje važne točke:

  1. Sve prikupljene informacije pohranjuju se samo u RAM, a potrošena količina memorije regulirana je brojem zadnjih pohranjenih zapisa.
  2. Dodano je polje queryid - isti queryid iz proširenja pg_stat_statements (potrebna predinstalacija).
  3. 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 PASH-Preglednik (sakupljene binarne datoteke možete preuzeti u odjeljku Javnost).

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.

PostgreSQL aktivna povijest sesije - novo pgsentinel proširenje

Izvor: www.habr.com

Dodajte komentar