Istoricul sesiunilor active PostgreSQL - nouă extensie pgsentinel

companie pgsentinel a lansat extensia pgsentinel cu același nume (depozitul github), care adaugă vizualizarea pg_active_session_history la PostgreSQL — istoricul sesiunilor active (similar cu v$active_session_history de la Oracle).

În esență, acestea sunt pur și simplu instantanee secunde cu secunde de la pg_stat_activity, dar există puncte importante:

  1. Toate informațiile acumulate sunt stocate doar în RAM, iar cantitatea de memorie consumată este reglementată de numărul ultimelor înregistrări stocate.
  2. Se adaugă câmpul queryid - același queryid din extensia pg_stat_statements (este necesară preinstalarea).
  3. Se adaugă câmpul top_level_query - textul interogării din care a fost apelată interogarea curentă (dacă se folosește pl/pgsql)


Lista completă a câmpurilor pg_active_session_history:

      Coloana | Tip ------------------+------------------------ ash_time | marca temporală cu fusul orar dat | oid datename | text pid | întreg usesysid | nume de utilizare oid | text application_name | text client_addr | text client_hostname | text client_port | întreg backend_start | marca temporală cu fusul orar xact_start | timestamp cu fus orar query_start | timestamp cu fus orar state_change | marca temporală cu fusul orar wait_event_type | text wait_event | stare text | text backend_xid | xid backend_xmin | xid interogare_nivel_superior | interogare text | text queryid | tip_backend bigint | text                     

Nu există încă un pachet gata de instalare. Se recomandă să descărcați sursele și să asamblați singur biblioteca. Mai întâi trebuie să instalați pachetul „devel” pentru serverul dvs. și să setați calea la pg_config în variabila PATH. Colectăm:

cd pgsentinel/src
face
make install

Adăugați parametri la postgres.conf:

shared_preload_libraries = 'pg_stat_statements,pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = all

# număr de înregistrări recente păstrate în memorie
pgsentinel_ash.max_entries = 10000

Reporniți PostgreSQL și creați o extensie:

creați extensia pgsentinel;

Informațiile acumulate ne permit să răspundem la întrebări precum:

  • În ce sesiuni de așteptare ați petrecut cel mai mult timp?
  • Care sesiuni au fost cele mai active?
  • Ce cereri au fost cele mai active?

Puteți, desigur, să obțineți răspunsuri la aceste întrebări folosind interogări SQL, dar este mai convenabil să vedeți acest lucru vizual pe un grafic evidențiind intervalele de timp de interes cu mouse-ul. Puteți face acest lucru cu un program gratuit PASH-Viewer (puteți descărca binarele colectate în secțiunea Lansări).

La pornire, PASH-Viewer (începând cu versiunea 0.4.0) verifică prezența vizualizării pg_active_session_history și, dacă există, încarcă întregul istoric acumulat din acesta și continuă să citească noi date primite, actualizând graficul la fiecare 15 secunde.

Istoricul sesiunilor active PostgreSQL - nouă extensie pgsentinel

Sursa: www.habr.com

Adauga un comentariu