O Pgsentinel lançou a extensão
pgsentinel com o mesmo nome (
repositório github ), que adiciona a visualização pg_active_session_history ao PostgreSQL, o histórico de sessões ativas (semelhante ao Oracle v $ active_session_history).
Na verdade, esses são simplesmente instantâneos a cada segundo de pg_stat_activity, mas existem pontos importantes:
- Todas as informações acumuladas são armazenadas apenas na RAM, e a quantidade consumida de memória é controlada pelo número de últimos registros armazenados.
- O campo queryid é adicionado - o mesmo queryid da extensão pg_stat_statements (é necessária uma instalação preliminar).
- O campo top_level_query é adicionado - o texto da consulta a partir do qual a consulta atual foi chamada (no caso de usar pl / pgsql)
Lista completa dos campos pg_active_session_history: Coluna | Tipo ------------------ + -------------------------- ash_time | timestamp com fuso horário datid | oid datname | texto pid | número inteiro usesysid | nome de usuário oid | texto application_name | texto client_addr | texto client_hostname | texto client_port | número inteiro backend_start | registro de data e hora com fuso horário xact_start | registro de data e hora com fuso horário query_start | registro de data e hora com fuso horário state_change | registro de data e hora com fuso horário wait_event_type | texto wait_event | estado do texto | texto backend_xid | xid backend_xmin | xid top_level_query | consulta de texto | texto queryid | bigint backend_type | texto
Ainda não existe um pacote pronto para instalação. Propõe-se baixar as fontes e construir a biblioteca você mesmo. Primeiro, você precisa instalar o pacote “devel” no seu servidor e escrever o caminho para pg_config na variável PATH. Nós coletamos:
cd pgsentinel / src
fazer
faça instalar
Adicione parâmetros ao postgres.conf:
shared_preload_libraries = 'pg_stat_statements, pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = all
# número de entradas recentes mantidas na memória
pgsentinel_ash.max_entries = 10000
Reinicie o PostgreSQL e crie a extensão:
criar extensão pgsentinel;
As informações acumuladas permitem responder perguntas como:
- Em quais expectativas as sessões passavam mais tempo?
- Quais sessões foram mais ativas?
- Quais consultas foram mais ativas?
Você pode obter respostas para essas perguntas, é claro, com consultas SQL, mas é mais conveniente ver isso claramente no gráfico, destacando os intervalos de tempo com o mouse. Você pode fazer isso usando o programa
PASH-Viewer gratuito (você pode baixar os binários coletados na seção
Versões ).
No início, o PASH-Viewer (a partir da versão 0.4.0) verifica a presença da visualização pg_active_session_history e, se houver, carrega todo o histórico acumulado e continua a ler novos dados recebidos, atualizando a programação a cada 15 segundos.
