PostgreSQL aktiv sesjonshistorikk - ny pgsentinel-utvidelse

selskap pgsentinel ga ut pgsentinel-utvidelsen med samme navn (github-depot), som legger til pg_active_session_history-visningen til PostgreSQL – historien til aktive økter (ligner på Oracles v$active_session_history).

I hovedsak er dette ganske enkelt øyeblikksbilder fra pg_stat_activity sekund for sekund, men det er viktige poeng:

  1. All akkumulert informasjon lagres kun i RAM, og den forbrukte mengden minne reguleres av antall sist lagrede poster.
  2. Queryid-feltet legges til - den samme queryid fra utvidelsen pg_stat_statements (pre-installasjon kreves).
  3. Top_level_query-feltet legges til - teksten til spørringen som gjeldende spørring ble kalt fra (hvis du bruker pl/pgsql)


Full liste over pg_active_session_history-felt:

      Kolonne | Skriv ------------------+------------------------- ash_time | tidsstempel med tidssone datid | oid datonavn | tekst pid | heltall usesysid | oid brukernavn | tekst applikasjonsnavn | tekst client_addr | tekst klient_vertsnavn | tekst klientport | heltall backend_start | tidsstempel med tidssone xact_start | tidsstempel med tidssone query_start | tidsstempel med tidssone state_change | tidsstempel med tidssone wait_event_type | tekst wait_event | teksttilstand | tekst backend_xid | xid backend_xmin | xid top_level_query | tekstspørring | tekst queryid | bigint backend_type | tekst                     

Det er ingen ferdig pakke for installasjon ennå. Det anbefales å laste ned kildene og sette sammen biblioteket selv. Du må først installere "devel"-pakken for serveren din og sette banen til pg_config i PATH-variabelen. Vi samler inn:

cd pgsentinel/src
gjøre
make install

Legg til parametere til postgres.conf:

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

# antall nylige poster i minnet
pgsentinel_ash.max_entries = 10000

Start PostgreSQL på nytt og lag en utvidelse:

opprette utvidelse pgsentinel;

Den akkumulerte informasjonen lar oss svare på spørsmål som:

  • Hvilke venteøkter brukte du mest tid på?
  • Hvilke økter var mest aktive?
  • Hvilke forespørsler var de mest aktive?

Du kan selvfølgelig få svar på disse spørsmålene ved å bruke SQL-spørringer, men det er mer praktisk å se dette visuelt på en graf ved å fremheve tidsintervallene av interesse med musen. Du kan gjøre dette med et gratis program PASH-Viewer (du kan laste ned de innsamlede binærfilene i seksjonen Utgivelser).

Ved oppstart sjekker PASH-Viewer (fra og med versjon 0.4.0) for tilstedeværelsen av pg_active_session_history-visningen, og hvis den eksisterer, laster den hele akkumulerte historikk fra den og fortsetter å lese nye innkommende data, og oppdaterer grafen hvert 15. sekund.

PostgreSQL aktiv sesjonshistorikk - ny pgsentinel-utvidelse

Kilde: www.habr.com

Legg til en kommentar