Historial de sessions actives de PostgreSQL: nova extensió pgsentinel

empresa pgsentinel va publicar l'extensió pgsentinel del mateix nom (repositori github), que afegeix la vista pg_active_session_history a PostgreSQL: l'historial de sessions actives (similar a la v$active_session_history d'Oracle).

De fet, aquestes són només instantànies de cada segon de pg_stat_activity, però hi ha punts importants:

  1. Tota la informació acumulada només s'emmagatzema a la memòria RAM i la quantitat de memòria consumida es regula pel nombre dels últims registres emmagatzemats.
  2. S'afegeix el camp queryid: el mateix queryid de l'extensió pg_stat_statements (necessita instal·lació prèvia).
  3. S'afegeix el camp top_level_query: el text de la consulta des de la qual es va cridar la consulta actual (en el cas d'utilitzar pl/pgsql)


Llista completa de camps pg_active_session_history:

      columna | Tipus ------------------+------------------------- ash_time | marca de temps amb la zona horària datada | nom de dades oid | text pid | enter usesysid | oid nom d'ús | text nom_aplicació | text client_addr | text client_hostname | text client_port | enter backend_start | marca de temps amb zona horària xact_start | marca de temps amb la zona horària query_start | marca de temps amb la zona horària state_change | marca de temps amb zona horària wait_event_type | text wait_event | estat del text | text backend_xid | xid backend_xmin | xid consulta_de_nivell_superior | consulta de text | text queryid | bigint backend_type | text                     

Encara no hi ha cap paquet preparat per a la instal·lació. Es proposa descarregar el codi font i crear la biblioteca tu mateix. Primer heu d'instal·lar el paquet "devel" per al vostre servidor i establir el camí a pg_config a la variable PATH. Recollim:

cd pgsentinel/src
fer
make install

Afegiu paràmetres a postgres.conf:

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

# nombre de registres recents conservats a la memòria
pgsentinel_ash.max_entries = 10000

Torneu a carregar PostgreSQL i creeu una extensió:

crear l'extensió pgsentinel;

La informació acumulada ens permet respondre preguntes com ara:

  • En quines expectatives van passar més temps les sessions?
  • Quines sessions van ser les més actives?
  • Quines peticions van ser les més actives?

Per descomptat, podeu obtenir respostes a aquestes preguntes mitjançant consultes SQL, però és més convenient veure-ho clarament al gràfic, destacant els intervals de temps d'interès amb el ratolí. Podeu fer-ho amb un programa gratuït Visor PASH (podeu descarregar els binaris recollits a la secció Estrenes).

A l'inici, PASH-Viewer (a partir de la versió 0.4.0) comprova la presència de la vista pg_active_session_history i, si existeix, en carrega tot l'historial acumulat i continua llegint noves dades entrants, actualitzant el gràfic cada 15 segons.

Historial de sessions actives de PostgreSQL: nova extensió pgsentinel

Font: www.habr.com

Afegeix comentari