Historial de sesiones activas de PostgreSQL - nueva extensión pgsentinel

Inmobiliaria centinela lanzó la extensión pgsentinel del mismo nombre (repositorio de github), que agrega la vista pg_active_session_history a PostgreSQL: el historial de sesiones activas (similar a v$active_session_history de Oracle).

De hecho, estas son instantáneas cada segundo de pg_stat_activity, pero hay puntos importantes:

  1. Toda la información acumulada se almacena solo en la RAM, y la cantidad de memoria consumida está regulada por el número de los últimos registros almacenados.
  2. Se agrega el campo queryid: el mismo queryid de la extensión pg_stat_statements (se requiere preinstalación).
  3. Se agrega el campo top_level_query: el texto de la consulta desde la que se llamó a la consulta actual (en el caso de usar pl/pgsql)


Lista completa de campos pg_active_session_history:

      columna | Escriba ------------------+-------------------------- ash_time | marca de tiempo con zona horaria con fecha | nombre de datos oid | pid de texto | entero usesysid | nombre de uso oid | texto application_name | texto client_addr | texto nombre_host_del_cliente | texto puerto_cliente | entero backend_start | marca de tiempo con zona horaria xact_start | marca de tiempo con zona horaria query_start | marca de tiempo con zona horaria state_change | marca de tiempo con zona horaria wait_event_type | texto espera_evento | estado del texto | texto backend_xid | xid backend_xmin | xid top_level_query | consulta de texto | ID de consulta de texto | bigint backend_tipo | texto                     

Todavía no hay un paquete listo para la instalación. Se propone descargar el código fuente y construir la biblioteca usted mismo. Primero debe instalar el paquete "devel" para su servidor y establecer la ruta a pg_config en la variable PATH. Nosotros coleccionamos:

cd pgsentinel/src
para lograr
make install

Agregue parámetros a postgres.conf:

shared_preload_libraries = 'pg_stat_statements,pgsentinel'
seguimiento_actividad_consulta_tamaño = 2048
pg_stat_statements.track = todos

# número de registros recientes guardados en la memoria
pgsentinel_ash.max_entries = 10000

Vuelva a cargar PostgreSQL y cree una extensión:

crear extensión pgsentinel;

La información acumulada nos permite responder preguntas como:

  • ¿A qué expectativas dedicaron la mayor parte del tiempo las sesiones?
  • ¿Qué sesiones fueron las más activas?
  • ¿Qué solicitudes fueron las más activas?

Por supuesto, puede obtener respuestas a estas preguntas mediante consultas SQL, pero es más conveniente ver esto claramente en el gráfico, resaltando los intervalos de tiempo de interés con el mouse. Puedes hacerlo con un programa gratuito. Visor de PASH (puede descargar los binarios recopilados en la sección Estrenos).

Al inicio, PASH-Viewer (a partir de la versión 0.4.0) verifica la presencia de la vista pg_active_session_history y, si existe, carga todo el historial acumulado y continúa leyendo los nuevos datos entrantes, actualizando el gráfico cada 15 segundos.

Historial de sesiones activas de PostgreSQL - nueva extensión pgsentinel

Fuente: habr.com

Añadir un comentario