Historial de sesións activas de PostgreSQL: nova extensión pgsentinel

Compañía pgsentinel lanzada a extensión pgsentinel co mesmo nome (repositorio github), que engade a vista pg_active_session_history a PostgreSQL: o historial de sesións activas (semellante ao v$active_session_history de Oracle).

De feito, estas son instantáneas de cada segundo de pg_stat_activity, pero hai puntos importantes:

  1. 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.
  2. Engádese o campo queryid: o mesmo queryid da extensión pg_stat_statements (requírese a instalación previa).
  3. 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 Visor PASH (podes descargar os binarios recollidos na sección Lanzamentos).

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.

Historial de sesións activas de PostgreSQL: nova extensión pgsentinel

Fonte: www.habr.com

Engadir un comentario