Histórico de sessões ativas do PostgreSQL - nova extensão pgsentinel

companhia pgsentinel lançou a extensão pgsentinel de mesmo nome (repositório do github), que adiciona a visualização pg_active_session_history ao PostgreSQL — o histórico de sessões ativas (semelhante ao v$active_session_history da Oracle).

Essencialmente, estes são simplesmente instantâneos segundo a segundo do pg_stat_activity, mas há pontos importantes:

  1. Todas as informações acumuladas são armazenadas apenas na RAM, e a quantidade de memória consumida é regulada pelo número dos últimos registros armazenados.
  2. O campo queryid é adicionado - o mesmo queryid da extensão pg_stat_statements (pré-instalação necessária).
  3. O campo top_level_query é adicionado - o texto da consulta a partir da qual a consulta atual foi chamada (se estiver usando pl/pgsql)


Lista completa de campos pg_active_session_history:

      Coluna | Digite ------------------+------------------------- ash_time | carimbo de data/hora com dados de fuso horário | oid nomedadata | texto pid | número inteiro usesysid | nome de usuário oid | texto nome_aplicativo | texto cliente_addr | texto nome_host_cliente | texto porta_cliente | inteiro backend_start | carimbo de data/hora com fuso horário xact_start | carimbo de data/hora com fuso horário query_start | carimbo de data / hora com fuso horário state_change | carimbo de data/hora com fuso horário wait_event_type | texto wait_event | estado do texto | texto backend_xid | backend_xmin | xid top_level_query | consulta de texto | ID de consulta de texto | bigint backend_type | texto                     

Ainda não existe um pacote pronto para instalação. Sugere-se baixar os fontes e montar você mesmo a biblioteca. Primeiro você precisa instalar o pacote “devel” para o seu servidor e definir o caminho para pg_config na variável PATH. Nós coletamos:

cd pgsentinel/src
fazer
make install

Adicione parâmetros ao postgres.conf:

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

# número de registros recentes mantidos na memória
pgsentinel_ash.max_entries = 10000

Reinicie o PostgreSQL e crie uma extensão:

crie a extensão pgsentinel;

A informação acumulada permite-nos responder a questões como:

  • Em quais sessões de espera você passou mais tempo?
  • Quais sessões foram mais ativas?
  • Quais solicitações foram mais ativas?

É claro que você pode obter respostas a essas perguntas usando consultas SQL, mas é mais conveniente ver isso visualmente em um gráfico, destacando os intervalos de tempo de interesse com o mouse. Você pode fazer isso com um programa gratuito Visualizador PASH (você pode baixar os binários coletados na seção Releases).

Ao iniciar, o PASH-Viewer (a partir da versão 0.4.0) verifica a presença da visualização pg_active_session_history e se existir, carrega todo o histórico acumulado dela e continua lendo novos dados recebidos, atualizando o gráfico a cada 15 segundos.

Histórico de sessões ativas do PostgreSQL - nova extensão pgsentinel

Fonte: habr.com

Adicionar um comentário