Grafana дашборды для pgSCV

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Неделю назад я делал анонс про pgSCV новом экспортере метрик для PostgreSQL. После анонса мне ожидаемо стали писать читатели с намеком что неплохо бы и дашборды сделать. Эта задача есть у меня в списке и этот запрос не оказался для меня сюрпризом. Оно и понятно, метрик ого-го сколько и даже продвинутому DBA понадобится довольно много времени чтобы разобраться в них и соорудить более-менее вменяемый дашборд.

Я занялся вопросом и сделал базовые дашборды которые покрывают некий (но не весь) объем метрик которые есть в pgSCV. А в этом посте я сделаю быстрый обзор и расскажу что там есть.

Хотел бы сделать акцент, что это именно начальные версии и 146% что они будут дополняться и изменяться. Дашбордов получилось несколько, т.к. pgSCV умеет отдавать метрики не только о Postgres'е, но и о Pgbouncer и даже системные метрики. При развитии pgSCV планируется добавлять поддержку других около-Postgres'овых инструментов поэтому и список дашбордов тоже будет пополняться.

Как следует из заголовка, дашборды сделаны для Grafana. Я довольно неплохо знаком с ней и на мой взгляд это довольно широко распространенный инструмент для визуализации метрик. Все дашборды используют Prometheus datasource. Если честно, дашборды делались поверх Victoriametrics хранилища, но я старался использовать везде PromQL в запросах, что сказалось на качестве некоторых графиков. Если вдруг звезды сойдутся и дашборды станут богатыми и знаменитыми сделаю аналогичные с MetricsQL.

Пока есть три дашборда:

  • PostgreSQL метрики

  • Pgbouncer метрики

  • Системные метрики

Что есть в PostgreSQL.

Overview - это обзорная панель с RED метриками - requests, errors, durations - относительно БД это количество обрабатываемых запросов, количество ошибок в журнале и средняя длительность успешно выполненных запросов. Посмотрев на сводную панель в целом можно оценить всё ли в порядке с БД.

Activity - графики с установленными соединениями и транзакционной активностью. Эти графики помогают увидеть вредных клиентов и продолжительную активность которую ой как не любит Postgres.

Logs - графики по ошибкам и размеры журналов Postgres. Графики помогают увидеть возникновение ошибок в журнале и отслеживать размер директории с журналами.

Statements - topN графики по выполняемым запросам на основе pg_stat_statements. Это на мой взгляд одни из самых востребованных графиков, они позволяют увидеть топовые по нагрузке запросы которые нуждаются во внимании DBA.

Графики логов и запросов.
Графики логов и запросов.

Locks and Wait Events - графики по блокировкам и тем wait events которые удалось поймать. Эти графики больше помогают в разборе инцидентов и будут полезны для поиска длительных блокировок которые могли вызвать просадку производительности.

Блокировки и ожидания.
Блокировки и ожидания.

Replication - графики лага репликации. Эти графики нужны для отслеживания что у нас все в порядке с доставкой WAL журналов на реплики.

WAL - графики генерации WAL журнала и размер директории WAL. Эти графики позволяют поверхностно оценить как много генерируется WAL журналов и насколько их много вообще.

Vacuum Maintenance - графики работы autovacuum. Эти графики помогают увидеть то насколько эффективно работает автовакуум и не нуждается ли он в настройке.

Background Writes - графики работы контрольных точек и фоновой записи (включая запись WAL и временных файлов). По большей части графики помогают понять насколько много записи делается базой.

Disk space usage - утилизация места на диске базой, табличными пространствами, таблицами, индексами, временными файлами. Графики помогают в поверхностном понимании того куда и как тратится место на диске.

Tables - рабочая нагрузка на таблицах - topN таблиц нагруженных INSERT/UPDATE/DELETE операциями. Это также очень востребованные графики, которые помогают понять как изменилась нагрузка, очень полезно изучать их после релизов приложений.

WAL Archiving - графики архивирования WAL (если таковой настроен). Графики помогают увидеть ошибки при архивировании и лаг.

System resources usage - здесь карткая сводка по утилизации CPU и дисковой подсистемы.

В сумме получилось 37 спрятанных графиков.
В сумме получилось 37 спрятанных графиков.

Что есть в Pgbouncer.

Utilization - утилизация пулов (чтоб понимать насколько хватает их вообще). По графику утилизации можно определить насколько эффктивно используются пулы и хватает ли их.

Connections - клиентские и серверные соединения. Сводные графики по соединениям, помогают более подробно увидеть как работает pgbouncer.

Processing - здесь графики по обработке транзакций, запросов, сетевому трафику и ожидающим клиентам. Здесь обычно хорошо видно всплески трафика и просадку производительности. Хотелось бы чтобы аналогичные метрики умел бы отдавать и Postgres.

Что есть в System.

Здесь искушенный пользователь не сделает для себя открытий - в этом дашборде я постарался собрать только минимально нужные графики которые помогают поверхностно оценить все ли в порядке с системой. Для более глубокого анализа можно сходить в графановский Explore и сделать ad-hoc графики.

Overview - общая сводка об утилизации ресурсов хостом - CPU, диски, сеть, память - ничего лишнего.

CPU, Storage utilization - утилизация процессора и дисковой подсистемы - обычно их производительность наиболее важна в работе БД.

Storage - графики отзывчивости, пропускной способности в IOPS и байтах (включая discards и flushes если таковые поддерживаются ядром).

Network - графики сетевых интерфейсов, пропускная способности в пакетах и байтах, ошибки при обработке пакетов.

Memory, swap - графики использования памяти и подкачки.

Disk space - графики утилизации места на файловых системах.

всё ок, но проц довольно хорошо нагружен
всё ок, но проц довольно хорошо нагружен

Вот собственно и всё. Как я уже отметил выше, это первые наброски, дашборды будут редактироваться и дополняться.

Спасибо за внимание.

Источник: https://habr.com/ru/post/560952/


Интересные статьи

Интересные статьи

Часто при разговорах с клиентами мы спрашиваем, как они ведут учет различных данных и используют ли они CRM-систему? Популярный ответ — мы работаем с Excel-файлами, а пот...
Многие компании в определенный момент приходят к тому, что ряд процессов в бизнесе нужно автоматизировать, чтобы не потерять свое место под солнцем и своих заказчиков. Поэтому все...
Много всякого сыпется в мой ящик, в том числе и от Битрикса (справедливости ради стоит отметить, что я когда-то регистрировался на их сайте). Но вот мне надоели эти письма и я решил отписатьс...
Компании переполнили рынок товаров и услуг предложениями. Разнообразие наблюдается не только в офлайне, но и в интернете. Достаточно вбить в поисковик любой запрос, чтобы получить подтверждение насыще...
Некоторое время назад мне довелось пройти больше десятка собеседований на позицию php-программиста (битрикс). К удивлению, требования в различных организациях отличаются совсем незначительно и...