- PVSM.RU - https://www.pvsm.ru -
Пару-тройку лет назад, разбираясь с очередной проблемой в производительности постгреса, мне надо было покопаться в постгресовой статистике. Копаясь во вьюхах и функциях я поймал себя на мысли что работать с тем что есть по дефолту, довольно не удобно.
И в самом деле, в постгресе довольно большая куча всяких метрик, все они представлены в виде представлений и функций. С одной стороны это очень удобно, написал SELECT и получил данные. С другой стороны, такая периодическая писанина слегка утомляет.
В тот же раз, мне нужно было не просто так разово посмотреть на какую-то стату, мне нужно было отслеживать её изменение. Не помню что это было точно, возможно надо было смотреть на изменение лага репликации, или с какой частотой вызывался какой-то конкретный запрос…
Так вот, поймав себя на мысли что мне мне хватает инструмента я начал поиски утилит под свою задачу, но увы, не нашел ничего того что мне бы зашло. Так появился pgCenter [1].
Изначально это была консольная утилита и задумывалась она как простая в использовании штука, которая в top-подобном интерфейса выводила бы изменения постгресовой статистики. Однако учитывая, что во время траблшутинга постгреса нужно еще иметь перед глазами системные метрики, туда добавилась еще и системная статистика… cpu, память, своп, утилизация дисков и сетевых интерфейсов. Уже потом добавились другие админские функции, типа просмотр конфигурации и правка конфигов, работа с логами, возможность отстрела запросов и клиентов. В общем, постепенно количество функций росло… да и пользователи предлагали разные идеи как сделать инструмент еще лучше. Сегодня после некоторой разработки, я наконец готов представить новый релиз, в котором pgCenter очень сильно изменился.
Основное и пожалуй самое главное изменение, это то что pgCenter теперь написан на Go. Изначально он был на С, но честно говоря, на Go мне проще реализовывать идеи и добавлять новые функции. Другая положительная особенность это дистрибуция — исполняемый файл представляет собой один бинарник которые нужно лишь скачать, распаковать и можно пользоваться.
Другое большое нововведение это то что pgСenter это теперь не только top-like viewer для статистики. Теперь статистику можно дампить в локальные файлы и затем просматривать при необходимости. Применяется когда нет вменяемого мониторинга или надо пособирать статку в процессе бенчмаркинга на временной виртуалке или контейнере. В итоге, получилась штука которая напоминает оракловый statspack или например sar из пакета sysstat. При этом не нужно ничего городить на уровне базы, никаких дополнительных функций и т.п.
По итогу получилось 3 утилитки в одном бинарнике и все они вызываются как отдельные подкоманды наподобие того как это выглядит в git или perf.
На этом крупные новшества заканчиваются и остаются небольшие улучшения. В основном они связаны с top просмотрщиком:
Вполне вероятно что я забыл упомянуть еще какие-то фичи, но самые интересные на мой взгляд я перечислил.
Вот вроде бы и все, всех тех кто уже пользуется утилитой призываю обновиться, а всех кто слышит впервые, призываю попробовать или посмотреть небольшое демо.
Автор: lesovsky
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/postgresql/294590
Ссылки в тексте:
[1] pgCenter: https://github.com/lesovsky/pgcenter
[2] Источник: https://habr.com/post/425083/?utm_campaign=425083
Нажмите здесь для печати.