empresa
De fet, aquestes són només instantànies de cada segon de pg_stat_activity, però hi ha punts importants:
- 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.
- S'afegeix el camp queryid: el mateix queryid de l'extensió pg_stat_statements (necessita instal·lació prèvia).
- 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
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.
Font: www.habr.com