Istwa sesyon aktif PostgreSQL - nouvo ekstansyon pgsentinel

konpayi pgsentinel lage ekstansyon pgsentinel menm non an (repozitwa github), ki ajoute gade pg_active_session_history pou PostgreSQL - istwa sesyon aktif yo (menm jan ak v$active_session_history Oracle).

Esansyèlman, sa yo se tou senpleman snapshots dezyèm pa dezyèm soti nan pg_stat_activity, men gen pwen enpòtan:

  1. Tout enfòmasyon akimile yo estoke sèlman nan RAM, epi kantite memwa ki konsome yo reglemante pa kantite dènye dosye ki estoke yo.
  2. Yo ajoute jaden an queryid - menm queryid ki soti nan ekstansyon pg_stat_statements (pre-enstalasyon obligatwa).
  3. Yo ajoute jaden an top_level_query - tèks la nan rechèch la ki soti nan rechèch aktyèl la te rele (nan ka a nan itilize pl/pgsql)


Lis konplè jaden pg_active_session_history:

      Kolòn | Kalite ------------------+------------------------ ash_time | timestamp ak zòn lè dat | oid datename | tèks pid | nonb antye relatif usesysid | oid non itilizatè | tèks non_aplikasyon | tèks kliyan_addr | tèks client_hostname | tèks kliyan_pò | nonb antye relatif backend_start | timestamp ak time zone xact_start | timestamp ak time zone query_start | timestamp ak time zone state_change | timestamp ak time zone wait_event_type | tèks wait_event | eta tèks | tèks backend_xid | xid backend_xmin | xid top_level_query | rekèt tèks | tèks queryid | bigint backend_type | tèks                     

Pa gen okenn pake ki pare pou enstalasyon ankò. Li sijere pou telechaje sous yo epi rasanble bibliyotèk la tèt ou. Ou premye bezwen enstale pake "devel" pou sèvè ou a epi mete chemen an nan pg_config nan varyab PATH la. Nou kolekte:

cd pgsentinel/src

fè enstale

Ajoute paramèt nan postgres.conf:

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

# kantite dosye ki sot pase yo kenbe nan memwa
pgsentinel_ash.max_entries = 10000

Rekòmanse PostgreSQL epi kreye yon ekstansyon:

kreye ekstansyon pgsentinel;

Enfòmasyon akimile yo pèmèt nou reponn kesyon tankou:

  • Nan ki sesyon datant ou te pase plis tan?
  • Ki sesyon ki te pi aktif?
  • Ki demann ki te pi aktif?

Ou ka, nan kou, jwenn repons a kesyon sa yo lè l sèvi avèk demann SQL, men li pi pratik yo wè sa a vizyèlman sou yon graf lè w mete aksan sou entèval tan yo nan enterè ak sourit la. Ou ka fè sa ak yon pwogram gratis PASH-Viewer (ou ka telechaje binè yo kolekte nan seksyon an Releases).

Lè w kòmanse, PASH-Viewer (kòmanse soti nan vèsyon 0.4.0) tcheke pou prezans nan pg_active_session_history view la epi si li egziste, li chaje tout istwa akimile nan li epi li kontinye li nouvo done k ap rantre, mete ajou graf la chak 15 segonn.

Istwa sesyon aktif PostgreSQL - nouvo ekstansyon pgsentinel

Sous: www.habr.com

Add nouvo kòmantè