companhia
Essencialmente, estes são simplesmente instantâneos segundo a segundo do pg_stat_activity, mas há pontos importantes:
- 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.
- O campo queryid é adicionado - o mesmo queryid da extensão pg_stat_statements (pré-instalação necessária).
- 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
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.
Fonte: habr.com