PostgreSQL aktiv sessionshistorik - ny pgsentinel-tillägg

företaget pgsentinel släppte tillägget pgsentinel med samma namn (github arkiv), som lägger till vyn pg_active_session_history till PostgreSQL — historiken för aktiva sessioner (liknande Oracles v$active_session_history).

I huvudsak är dessa helt enkelt ögonblicksbilder sekund för sekund från pg_stat_activity, men det finns viktiga punkter:

  1. All ackumulerad information lagras endast i RAM, och den förbrukade mängden minne regleras av antalet senast lagrade poster.
  2. Fältet queryid läggs till - samma queryid från tillägget pg_stat_statements (förinstallation krävs).
  3. Fältet top_level_query läggs till - texten i frågan från vilken den aktuella frågan anropades (om du använder pl/pgsql)


Fullständig lista över pg_active_session_history-fält:

      Kolumn | Skriv ------------------+------------------------- ash_time | tidsstämpel med tidszon datid | oid datumnamn | text pid | heltal usesysid | oid användarnamn | text application_name | text client_addr | text klient_värdnamn | text client_port | heltal backend_start | tidsstämpel med tidszon xact_start | tidsstämpel med tidszon query_start | tidsstämpel med tidszon state_change | tidsstämpel med tidszon wait_event_type | text vänta_händelse | texttillstånd | text backend_xid | xid backend_xmin | xid top_level_query | textfråga | text queryid | bigint backend_type | text                     

Det finns inget färdigt paket för installation ännu. Det föreslås att du laddar ner källorna och sätter ihop biblioteket själv. Du måste först installera "devel"-paketet för din server och ställa in sökvägen till pg_config i PATH-variabeln. Vi samlar in:

cd pgsentinel/src
göra
make install

Lägg till parametrar till postgres.conf:

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

# antal senaste rekord i minnet
pgsentinel_ash.max_entries = 10000 XNUMX

Starta om PostgreSQL och skapa ett tillägg:

skapa tillägg pgsentinel;

Den ackumulerade informationen gör att vi kan svara på frågor som:

  • Vilka väntepass ägnade du mest tid åt?
  • Vilka sessioner var mest aktiva?
  • Vilka förfrågningar var mest aktiva?

Du kan naturligtvis få svar på dessa frågor med hjälp av SQL-frågor, men det är bekvämare att se detta visuellt på en graf genom att markera tidsintervallen av intresse med musen. Du kan göra detta med ett gratisprogram PASH-Viewer (du kan ladda ner de insamlade binärfilerna i avsnittet meddelanden).

Vid start kontrollerar PASH-Viewer (med början från version 0.4.0) förekomsten av vyn pg_active_session_history och om den finns laddar den hela den ackumulerade historiken från den och fortsätter att läsa ny inkommande data och uppdaterar grafen var 15:e sekund.

PostgreSQL aktiv sessionshistorik - ny pgsentinel-tillägg

Källa: will.com

Lägg en kommentar