Há alguns anos, lidando com outro problema no desempenho do postgres, tive que me aprofundar nas estatísticas do postgres. Examinando as visões e funções, me peguei pensando que trabalhar com o que é padrão não é muito conveniente.
De fato, no postgres, em muitos tipos de métricas, elas são apresentadas na forma de representações e funções. Por um lado, é muito conveniente, escreveu SELECT e recebeu os dados. Por outro lado, esses escritos periódicos são um pouco cansativos.
Ao mesmo tempo, eu precisava não apenas olhar para uma estátua por uma única vez; eu precisava acompanhar sua mudança. Não me lembro com certeza, talvez você tenha observado a alteração no atraso da replicação ou com que frequência uma solicitação específica foi chamada ...
Então, tendo me pego pensando que tenho ferramentas suficientes para mim, comecei a procurar utilitários para minha tarefa, mas, infelizmente, não encontrei nada que fosse adequado para mim. Foi assim que o
pgCenter surgiu.
Inicialmente, era um utilitário de console e foi concebido como uma coisa fácil de usar que, em uma interface de primeira linha, exibia alterações nas estatísticas pós-estatísticas. No entanto, considerando que durante a solução de problemas do postgres, você ainda precisa ter métricas do sistema diante de seus olhos, as estatísticas do sistema também foram adicionadas ... utilização da CPU, memória, troca, disco e interface de rede. Somente então outras funções administrativas foram adicionadas, como visualizar a configuração e editar as configurações, trabalhar com logs, a capacidade de disparar solicitações e clientes. Em geral, gradualmente, o número de funções aumentou ... e os usuários ofereceram idéias diferentes sobre como tornar a ferramenta ainda melhor. Hoje, depois de algum desenvolvimento, finalmente estou pronto para apresentar uma nova versão na qual o pgCenter mudou muito.
A principal e talvez a mais importante mudança é que o pgCenter agora está escrito em Go. Era originalmente em C, mas, para ser sincero, no Go é mais fácil implementar idéias e adicionar novos recursos. Outra característica positiva é a distribuição - o arquivo executável é um binário que você só precisa baixar, descompactar e usar.
Outra grande inovação é que o pgenter agora não é apenas um visualizador top de estatísticas. Agora, as estatísticas podem ser despejadas em arquivos locais e visualizadas, se necessário. É usado quando não há monitoramento imputado ou é necessário coletar as estatísticas durante o benchmarking em uma máquina virtual ou contêiner temporário. Como resultado, resultou em algo que se assemelha a um
pacote de estatísticas do oracle ou, por exemplo,
sar do
pacote sysstat . Nesse caso, você não precisa cercar nada no nível base, nenhuma função adicional etc.
Como resultado, temos três utilitários em um binário e todos são chamados como subcomandos separados, como no
git ou no
perf .
Com isso, grandes inovações terminam e pequenas melhorias permanecem. Eles estão relacionados principalmente ao visualizador superior:
- Agora, por padrão, em vez de estatísticas nos bancos de dados, as estatísticas de atividades são exibidas - quem está conectado, quais solicitações são executadas, quanto tempo e assim por diante. A experiência mostra que na maioria das vezes é necessário avaliar a atividade atual; portanto, provavelmente faz sentido mostrar imediatamente essa estátua em particular.
- Nas estatísticas de atividades, agora você pode ver os processos em segundo plano (adicionados no postgres 10) e os clientes inativos que não fazem nada (ativado pela tecla de atalho). Anteriormente, o modo inativo não era mostrado devido à sua inutilidade, mas poucas pessoas precisavam dele de repente.
- As estatísticas associadas às tabelas costumavam ser mostradas em duas visualizações separadas, agora todas as estatísticas são combinadas e mostradas em uma visualização.
- A função de filtragem agora suporta expressões regulares, e você pode definir com mais flexibilidade os parâmetros do que exatamente deseja ver ... nomes de tabelas, índices, funções, consultas, etc.
É provável que eu tenha esquecido de mencionar alguns outros recursos, mas listei os mais interessantes na minha opinião.
Isso parece ser tudo, todos aqueles que já usam o utilitário que eu desejo atualizar, e todos que ouvem pela primeira vez, peço que você tente ou veja uma pequena demonstração.

Também há uma
apresentação do relatório, embora a versão antiga seja descrita lá, mas faz sentido dar uma olhada também.
E, claro, estou aguardando feedback e relatórios de erros. Tenham um bom dia a todos!