PostgreSQL aktive sesjeskiednis - nije pgsentinel-útwreiding

It bedriuw pgsentinel frijjûn pgsentinel tafoeging fan deselde namme (github repository), dy't de werjefte fan pg_active_session_history tafoegje oan PostgreSQL - de skiednis fan aktive sesjes (lykas Oracle's v$active_session_history).

Yn feite binne dit gewoan elke twadde snapshots fan pg_stat_activity, mar d'r binne wichtige punten:

  1. Alle opboude ynformaasje wurdt opslein allinnich yn RAM, en it bedrach fan ûnthâld ferbrûkt wurdt regele troch it oantal lêste opslein records.
  2. It queryid-fjild wurdt tafoege - deselde queryid fan 'e pg_stat_statements-útwreiding (foarynstallaasje fereaske).
  3. It fjild top_level_query wurdt tafoege - de tekst fan 'e query wêrfan de aktuele query oanroppen is (yn it gefal fan it brûken fan pl/pgsql)


Folsleine list mei pg_active_session_history-fjilden:

      kolom | Type ------------------+--------------------------- ash_time | tiidstempel mei tiidsône datearre | oid dataname | tekst pid | integer usesysid | oid gebrûksnamme | tekst applikaasje_namme | tekst client_addr | tekst client_hostnamme | tekst client_port | integer backend_start | tiidstempel mei tiidsône xact_start | tiidstempel mei tiidsône query_start | tiidstempel mei tiidsône state_change | tiidstempel mei tiidsône wait_event_type | tekst wait_event | tekst steat | tekst backend_xid | xid backend_xmin | xid top_level_query | tekstfraach | tekst queryid | bigint backend_type | tekst                     

D'r is noch gjin klear pakket foar ynstallaasje. It wurdt foarsteld om de boarnekoade te downloaden en de bibleteek sels te bouwen. Earst moatte jo it pakket "ûntwikkelje" foar jo tsjinner ynstallearje en it paad ynstelle nei pg_config yn 'e PATH-fariabele. Wy sammelje:

cd pgsentinel/src
meitsje
meitsje ynstallearje

Parameters tafoegje oan postgres.conf:

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

# oantal resinte records hâlden yn it ûnthâld
pgsentinel_ash.max_entries = 10000

Reload PostgreSQL en meitsje in tafoeging:

meitsje útwreiding pgsentinel;

De opboude ynformaasje lit ús fragen beantwurdzje lykas:

  • Oan hokker ferwachtings besteegje de sesjes de measte tiid?
  • Hokker sesjes wiene it meast aktyf?
  • Hokker oanfragen wiene de meast aktyf?

Jo kinne fansels antwurden krije op dizze fragen mei SQL-fragen, mar it is handiger om dit dúdlik te sjen op 'e kaart, en markearje de tiidintervallen fan belang mei de mûs. Jo kinne it dwaan mei in fergees programma PASH Viewer (jo kinne de sammele binaries downloade yn 'e seksje releases).

By it opstarten kontrolearret PASH-Viewer (begjinnend mei ferzje 0.4.0) foar de oanwêzigens fan 'e werjefte pg_active_session_history, en as it bestiet, laadt it de heule opboude skiednis derfan en bliuwt nije ynkommende gegevens lêze, en de grafyk elke 15 sekonden bywurkje.

PostgreSQL aktive sesjeskiednis - nije pgsentinel-útwreiding

Boarne: www.habr.com

Add a comment