Historiku i sesioneve aktive në PostgreSQL — zgjerimi i ri pgsentinel

Kompania pgsentinel ka publikuar zgjerimin me të njëjtin emër pgsentinel (depoja në github), i cili shton në PostgreSQL pamjen pg_active_session_history — historikun e sesioneve aktive (ngjashëm me v$active_session_history të Oracle).

Në thelb, bëhet fjalë thjesht për fotografi të pg_stat_activity të marra çdo sekondë, por ka disa pika të rëndësishme:

  1. I gjithë informacioni i grumbulluar ruhet vetëm në memorien operative, ndërsa sasia e memories së përdorur rregullohet nga numri i regjistrimeve të fundit që mbahen.
  2. Shtohet fusha queryid — pikërisht ai queryid nga zgjerimi pg_stat_statements (kërkohet instalim paraprak).
  3. Shtohet fusha top_level_query — teksti i pyetjes nga e cila është thirrur pyetja aktuale (në rast të përdorimit të pl/pgsql)


Lista e plotë e fushave të 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                     

Ende nuk ka një paketë të gatshme për instalim. Sugjerohet të shkarkoni kodin burimor dhe ta kompiloni vetë bibliotekën. Paraprakisht duhet të instaloni paketën «devel» për serverin tuaj dhe të shtoni në variablën PATH rrugën drejt pg_config. Kompilimi:

cd pgsentinel/src
make
make install

Shtojmë parametrat në postgres.conf:

shared_preload_libraries = ‘pg_stat_statements,pgsentinel’
track_activity_query_size = 2048
pg_stat_statements.track = all

# количество удерживаемых в памяти последних записей
pgsentinel_ash.max_entries = 10000

Rinisni PostgreSQL dhe krijoni zgjerimin:

create extension pgsentinel;

Informacioni i grumbulluar ju lejon t’u përgjigjeni pyetjeve si këto:

  • Në cilat pritje kanë kaluar sesionet më shumë kohë?
  • Cilat sesione kanë qenë më aktive?
  • Cilat pyetje kanë qenë më aktive?

Përgjigjet për këto pyetje mund të merren, sigurisht, me kërkesa SQL, por është më e përshtatshme t’i shihni ato vizualisht në grafik, duke përzgjedhur me miun intervalet kohore që ju interesojnë. Këtë mund ta bëni me programin falas PASH-Viewer (binarët e ndërtuar mund të shkarkohen në seksionin Releases).

Në nisjen e PASH-Viewer (duke filluar nga versioni 0.4.0), kontrollohet nëse ekziston pamja pg_active_session_history dhe, nëse ekziston, ngarkohet e gjithë historia e grumbulluar prej saj; më pas vazhdon leximi i të dhënave të reja hyrëse, duke përditësuar grafikun çdo 15 sekonda.

Historiku i sesioneve aktive në PostgreSQL — zgjerimi i ri pgsentinel

Burimi: habr.com

Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS 🔥 Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS | ProHoster