Spoločnosť uvedla rovnomenné rozšírenie pgsentinel (), ktoré do PostgreSQL pridáva pohľad pg_active_session_history – históriu aktívnych relácií (analogicky ku v$active_session_history v Oracle).
V podstate ide o snímky z pg_stat_activity každú sekundu, ale sú tu dôležité aspekty:
- Všetky zhromaždené informácie sa uchovávajú iba v operačnej pamäti a objem spotrebovanej pamäte sa reguluje počtom posledných uložených záznamov.
- Pridáva sa pole queryid – ten istý queryid z rozšírenia pg_stat_statements (je potrebné predchádzajúce nainštalovanie).
- Pridáva sa pole top_level_query – text dotazu, z ktorého bol vyvolaný aktuálny dotaz (v prípade použitia pl/pgsql)
Celý zoznam polí 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
Hotový balíček pre inštaláciu zatiaľ nie je. Odporúča sa stiahnuť zdrojové kódy a skompilovať knižnicu samostatne. Predtým je potrebné nainštalovať „devel“ balík pre svoj server a do premennej PATH zapísať cestu k pg_config. Skompilujeme:
cd pgsentinel/src
make
make install
Pridávame parametre do postgres.conf:
shared_preload_libraries = ‘pg_stat_statements,pgsentinel’
track_activity_query_size = 2048
pg_stat_statements.track = all# количество удерживаемых в памяти последних записей
pgsentinel_ash.max_entries = 10000
Reštartujeme PostgreSQL a vytvoríme rozšírenie:
create extension pgsentinel;
Zhromaždené informácie umožňujú odpovedať na takéto otázky, ako sú:
- Na akých očakávaniach relácie strávili najviac času?
- Ktoré relácie boli najaktívnejšie?
- Ktoré dotazy boli najaktívnejšie?
Na tieto otázky je možné získať odpovede samozrejme SQL dotazmi, ale pohodlnejšie je vidieť to prehľadne na grafe, zvýrazňovaním zaujímavých časových intervalov myšou. Môžete to urobiť pomocou bezplatného programu (stiahnite si zostavené binárne súbory v sekcii ).
Pri spustení PASH-Viewera (od verzie 0.4.0) overuje prítomnosť zobrazenia pg_active_session_history a ak existuje, načíta z neho celú nahromadenú históriu a naďalej číta nové prichádzajúce údaje, aktualizujúc graf každých 15 sekúnd.

Zdroj: habr.com
