Historia e seancave aktive në PostgreSQL — një zgjatje e re pgsentinel

Kompania pgsentinel lëshoi një zgjatje me të njëjtin emër pgsentinel (repository github), e cila shton në PostgreSQL pamjen pg_active_session_history — historinë e seancave aktive (siç është në v$active_session_history e Oracle).

Në thelb, këto janë thjesht fotografi çdo sekondë nga pg_stat_activity, por ka disa pika të rëndësishme:

  1. I gjithë informacioni i akumuluar ruhet vetëm në memorien e përkohshme, dhe sasia e memories së konsumuar rregullohet nga numri i rekordeve të fundit të ruajtura.
  2. Shtohet fusha queryid — ai queryid nga zgjatja pg_stat_statements (e cila kërkon instalimin paraprak).
  3. Shtohet fusha top_level_query — teksti i kërkesës nga e cila u thirr kërkesa aktuale (në rastin e përdorimit të pl/pgsql)


Lista e plotë e fushave pg_active_session_history:

      Kolona      |           Lloji           
------------------+--------------------------
 ash_time         | timestamp me kohen zonë 
 datid            | oid                      
 datname          | tekst                     
 pid              | integer                  
 usesysid         | oid                      
 usename          | tekst                     
 application_name | tekst                     
 client_addr      | tekst                     
 client_hostname  | tekst                     
 client_port      | integer                  
 backend_start    | timestamp me kohen zonë 
 xact_start       | timestamp me kohen zonë 
 query_start      | timestamp me kohen zonë 
 state_change     | timestamp me kohen zonë 
 wait_event_type  | tekst                     
 wait_event       | tekst                     
 state            | tekst                     
 backend_xid      | xid                      
 backend_xmin     | xid                      
 top_level_query  | tekst                     
 query            | tekst                     
 queryid          | bigint                   
 backend_type     | tekst                     

Nuk ka një paketë të gatshme për instalim. Propozohet që të shkarkohet burimi dhe të mblidhet biblioteka vetë. Në fillim kërkohet të instaloni paketën "devel" për serverin tuaj dhe të regjistroni rrugën në variablën PATH deri te pg_config. Mblidhni:

cd pgsentinel/src
make
make install

Shto 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 akumuluar lejon të përgjigjeni në pyetje si:

  • Në cilat pritje seancash u kalua më shumë kohë?
  • Cilat seanca ishin më aktive?
  • Cilat kërkesa ishin më aktive?

Për të marrë përgjigje për këto pyetje, sigurisht, mund të përdorni SQL kërkesa, por është më e lehtë ta shihni vizualisht në grafik, duke shënuar me miun intervalet e interesit. Mund ta bëni këtë me programin falas PASH-Viewer (mund të shkarkoni binaret e grumbulluara në seksionin Releases).

Kur të nisë PASH-Viewer (duke filluar nga versioni 0.4.0) kontrollon nëse ekziston prezantimi pg_active_session_history dhe nëse ai ekziston, ngarkon të gjithë historinë e akumuluar dhe vazhdon të lexojë të dhënat e reja, duke përditësuar grafikën çdo 15 sekonda.

Historia e seancave aktive në PostgreSQL — një zgjatje e re pgsentinel

Burimi: habr.com

Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë 🔥 Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë | ProHoster