Historie aktivních relací PostgreSQL - nové rozšíření pgsentinel

společnost pgsentinel vydala stejnojmenné rozšíření pgsentinel (úložiště github), který do PostgreSQL přidává pohled pg_active_session_history – historii aktivních relací (podobně jako v$active_session_history od Oracle).

Ve skutečnosti jsou to jen snímky každé sekundy z pg_stat_activity, ale jsou zde důležité body:

  1. Všechny nashromážděné informace jsou uloženy pouze v paměti RAM a množství spotřebované paměti je regulováno počtem posledních uložených záznamů.
  2. Je přidáno pole queryid - stejné queryid z rozšíření pg_stat_statements (vyžaduje předinstalaci).
  3. Přidá se pole top_level_query - text dotazu, ze kterého byl volán aktuální dotaz (v případě použití pl/pgsql)


Úplný seznam polí pg_active_session_history:

      sloupec | Typ ------------------+-------------------------- ash_time | časové razítko s datem časového pásma | oid dataname | text pid | celé číslo usesysid | oid uživatelské jméno | text název_aplikace | text client_addr | text client_hostname | text client_port | celé číslo backend_start | časové razítko s časovou zónou xact_start | časové razítko s časovou zónou query_start | časové razítko s časovým pásmem state_change | časové razítko s časovou zónou wait_event_type | text wait_event | textový stav | text backend_xid | xid backend_xmin | xid top_level_query | textový dotaz | textový dotaz | bigint backend_type | text                     

Zatím není připraven žádný balíček pro instalaci. Navrhuje se stáhnout si zdrojový kód a vytvořit knihovnu sami. Nejprve musíte nainstalovat balíček „devel“ pro váš server a nastavit cestu na pg_config v proměnné PATH. Sbíráme:

cd pgsentinel/src
činit
make install

Přidejte parametry do postgres.conf:

shared_preload_libraries = 'pg_stat_statements,pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = vše

# počet posledních záznamů uložených v paměti
pgsentinel_ash.max_entries = 10000 XNUMX

Znovu načtěte PostgreSQL a vytvořte rozšíření:

vytvořit rozšíření pgsentinel;

Nashromážděné informace nám umožňují odpovědět na otázky, jako jsou:

  • Na jaká očekávání sezení strávilo nejvíce času?
  • Která setkání byla nejaktivnější?
  • Jaké požadavky byly nejaktivnější?

Odpovědi na tyto otázky můžete samozřejmě získat pomocí SQL dotazů, ale je pohodlnější to jasně vidět na grafu a myší zvýraznit časové intervaly, které vás zajímají. Můžete to udělat pomocí bezplatného programu Prohlížeč PASH (shromážděné binární soubory si můžete stáhnout v sekci Zprávy).

Při spuštění PASH-Viewer (od verze 0.4.0) zkontroluje přítomnost pohledu pg_active_session_history, a pokud existuje, načte z něj celou nashromážděnou historii a pokračuje ve čtení nových příchozích dat, přičemž graf aktualizuje každých 15 sekund.

Historie aktivních relací PostgreSQL - nové rozšíření pgsentinel

Zdroj: www.habr.com

Přidat komentář