ХабрПостыНовостиМегапосты?

pgSCV — экспортер метрик для PostgreSQL

Всем привет. В этом посте я расскажу про pgSCV - новый экспортер метрик для PostgreSQL (и не только), чем он так хорош и какие проблемы решает.

Наверняка все кто используют Prometheus и PostgreSQL сталкивались и с postgres_exporter. Этот экспортер довольно легко запустить и начать им пользоваться. Также у него есть возможности для расширения, на основе своего запроса можно описать метрики и снимать их. Если есть хорошие знания о том как устроена постгресовая статистика можно собрать довольно большое количество метрик. Но как известно кроме метрик самого Postgres, еще желательно собирать метрики системы, а если в инфраструктуре есть вспомогательные сервисы, например пулеры соединений (pgbouncer, odyssey и т.п.), то и с них также нужно снимать метрики. Выходит что нужно поставить еще экспортеров.

В pgSCV я постарался решить обе этих проблемы.

Решение первое. pgSCV сразу умеет снимать очень большое количество метрик с PostgreSQL без необходимости дополнительной настройки. На мой взгляд это сильно облегчает задачу первоначального запуска. Вместо траты времени на написание кастомной конфигурации для съема дополнительных метрик их сразу можно получить из коробки. Возможности конфигурации кастомных метрик также присутствует. Возникает резонный вопрос - а что если метрик слишком много и не все они нужны? В таком случае, можно отключить сбор метрик или ограничить список БД с которых требуется снимать метрики.

Второе решение. На данный момент pgSCV умеет снимать метрики с системы, PostgreSQL и Pgbouncer. Для этого он автоматически ищет эти сервисы и начинает собирать с них метрики. Очевидно что для сбора метрик с сетевых служб нужны реквизиты для подключения. Съем метрик не ограничивается только локальными службами. При желании можно указать сбор метрик и с сервисов размещенных на других узлах.

Типовой сценарий использования заключается в том чтобы просто запустить pgSCV. В примере ниже, предполагается что пользователь уже создан.

curl -O -L https://github.com/weaponry/pgscv/releases/download/v0.5.0/pgscv_0.5.0_linux_amd64.tar.gz
tar xvzf pgscv_0.5.0_linux_amd64.tar.gz
cat << EOF > pgscv.yaml
defaults:
    postgres_username: "monitoring"
    postgres_password: "supersecretpassword"
EOF
./pgscv --config-file pgscv.yaml

После запуска можно открыть вторую консоль и с помощью curl -s 127.0.0.1:9890/metrics получить список метрик.

Отмечу, что pgSCV создавался для нужд Weaponry (проект по мониторингу PostgreSQL и всего вокруг него), теперь pgSCV на мой взгляд стабилизировался и мне не стыдно его показать.

На этом всё, спасибо за внимание! Если есть идеи, пожелания или нашлись баги, то пишите в discussions или issues. Напоследок немного ссылок:

@lesovsky
27.05.2021 13:46 UTC
Первоисточник

Комментарии

@Sleuthhound
28.05.2021 05:36 UTC
0

Спасибо Алексей, будем тестировать..

Планируется ли расширить список пулеров, например добавить одисей?

Есть ли готовый дашборд для прометея или шаблон для заббикс?

Спасибо!

28.05.2021 06:08 UTC
0
Планы расширения конечно есть, на очереди odyssey, patroni и pgbackrest (потом wal-g, и возможно pg_probackup т.к. с ним меньше всего опыта).
Дашбордов нет, пока руки не дошли. Первым по плану для графаны, потом возможно для заббикса. С последним сложно, т.к. у меня вообще его нигде нет.
04.06.2021 06:08 UTC
+1
дашборды habr.com/ru/post/560952
@leokem
03.06.2021 16:56 UTC
0
получаю ошибку при попытке обратиться по урлу
[root@vmTestDB01 leo]# curl -s 127.0.0.1:9890/metrics
An error has occurred while serving metrics:

collected metric postgres_bgwriter_maxwritten_clean_total label:<name:«instance» value:«vmTestDB01» > label:<name:«service_id» value:«postgres:5432» > counter:<value:1075 > has help «Total number of times bgwriter have to be paused.» but should have «Total number of
times the background writer stopped a cleaning scan because it had written too many buffers.»
03.06.2021 17:00 UTC
0
Заведите issue тут. Там есть шаблон для bug report. Там нужно будет приложить чуть больше данных.