Compañía
De feito, estas son instantáneas de cada segundo de pg_stat_activity, pero hai puntos importantes:
- Toda a información acumulada gárdase só na memoria RAM, e a cantidade de memoria consumida está regulada polo número dos últimos rexistros almacenados.
- Engádese o campo queryid: o mesmo queryid da extensión pg_stat_statements (requírese a instalación previa).
- Engádese o campo top_level_query: o texto da consulta desde a que se chamou a consulta actual (no caso de usar pl/pgsql)
Lista completa de campos pg_active_session_history:
columna | Tipo ------------------+------------------------- ash_time | marca de tempo coa zona horaria datada | oid nome de datos | texto pid | enteiro usesysid | oid nome de uso | texto nome_aplicación | texto cliente_addr | texto cliente_hostname | texto cliente_port | enteiro backend_start | marca de tempo co fuso horario xact_start | marca de tempo co fuso horario query_start | marca de tempo coa zona horaria state_change | marca de tempo co fuso horario wait_event_type | texto wait_event | estado do texto | texto backend_xid | xid backend_xmin | consulta_de_nivel_superior xid | consulta de texto | ID de consulta de texto | bigint tipo_backend | texto
Aínda non hai ningún paquete preparado para a instalación. Proponse descargar o código fonte e construír vostede mesmo a biblioteca. Primeiro cómpre instalar o paquete "devel" para o seu servidor e establecer o camiño para pg_config na variable PATH. Recollemos:
cd pgsentinel/src
facer
make install
Engade parámetros a postgres.conf:
shared_preload_libraries = 'pg_stat_statements, pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = todos# número de rexistros recentes gardados na memoria
pgsentinel_ash.max_entries = 10000
Recarga PostgreSQL e crea unha extensión:
crear extensión pgsentinel;
A información acumulada permítenos responder preguntas como:
- En que expectativas dedicaron máis tempo as sesións?
- Que sesións foron as máis activas?
- Que solicitudes foron as máis activas?
Por suposto, pode obter respostas a estas preguntas mediante consultas SQL, pero é máis conveniente ver isto claramente no gráfico, destacando os intervalos de tempo de interese co rato. Podes facelo cun programa gratuíto
No inicio, PASH-Viewer (a partir da versión 0.4.0) comproba a presenza da vista pg_active_session_history e, se existe, carga dela todo o historial acumulado e segue lendo novos datos entrantes, actualizando o gráfico cada 15 segundos.
Fonte: www.habr.com