PostgreSQL-aktiva sesiohistorio - nova pgsentinel etendo

Firmao pgsentinel liberigis la samnoman etendon pgsentinel (github-deponejo), kiu aldonas la pg_active_session_history vidon al PostgreSQL - la historio de aktivaj sesioj (simila al la v$active_session_history de Oracle).

Esence, ĉi tiuj estas simple sekundaj momentfotoj de pg_stat_activity, sed estas gravaj punktoj:

  1. Ĉiuj amasigitaj informoj estas stokitaj nur en RAM, kaj la konsumita kvanto de memoro estas reguligita per la nombro da lastaj stokitaj rekordoj.
  2. La queryid-kampo estas aldonita - la sama queryid de la etendaĵo pg_stat_statements (antaŭinstalaĵo necesas).
  3. La top_level_query-kampo estas aldonita - la teksto de la demando de kiu la nuna demando estis vokita (se oni uzas pl/pgsql)


Plena listo de pg_active_session_history-kampoj:

      Kolumno | Tajpu ------------------+------------------------ ash_time | tempomarko kun horzono datad | oid datnomo | teksto pid | entjero usesysid | oid uznomo | teksto apliko_nomo | teksto kliento_aldono | teksto kliento_gastigantonomo | teksto kliento_porto | entjero backend_start | horostampo kun horzono xact_start | horostampo kun horzono query_start | horostampo kun horzono stato_ŝanĝo | horostampo kun horzono wait_event_type | teksto wait_okazaĵo | teksto stato | teksto backend_xid | xid backend_xmin | xid supro_nivela_demando | tekstodemando | tekstdemandoid | bigint backend_type | teksto                     

Ankoraŭ ne ekzistas preta pako por instalo. Oni sugestas elŝuti la fontojn kaj kunmeti la bibliotekon mem. Vi unue devas instali la pakaĵon "devel" por via servilo kaj agordi la vojon al pg_config en la variablo PATH. Ni kolektas:

cd pgsentinel/src
fari
fari instali

Aldonu parametrojn al postgres.conf:

shared_preload_libraries = 'pg_stat_statements, pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = ĉiuj

# nombro da lastatempaj rekordoj tenitaj en memoro
pgsentinel_ash.max_entries = 10000

Rekomencu PostgreSQL kaj kreu etendon:

krei etendon pgsentinel;

La amasigita informo permesas al ni respondi demandojn kiel:

  • Pri kiuj atendaj sesioj vi pasigis la plej grandan tempon?
  • Kiuj sesioj estis la plej aktivaj?
  • Kiuj petoj estis la plej aktivaj?

Vi povas, kompreneble, ricevi respondojn al ĉi tiuj demandoj per SQL-demandoj, sed estas pli oportune vidi ĉi tion vide sur grafiko elstarigante la tempintervalojn de intereso per la muso. Vi povas fari tion per senpaga programo PASH-Vidilo (vi povas elŝuti la kolektitajn binarojn en la sekcio ĵetoj).

Komenciĝante, PASH-Viewer (komencante de versio 0.4.0) kontrolas la ĉeeston de la pg_active_session_history vido kaj se ĝi ekzistas, ĝi ŝargas la tutan amasigitan historion de ĝi kaj daŭre legas novajn envenantajn datumojn, ĝisdatigante la grafeon ĉiujn 15 sekundojn.

PostgreSQL-aktiva sesiohistorio - nova pgsentinel etendo

fonto: www.habr.com

Aldoni komenton