[Системное администрирование, PostgreSQL, Администрирование баз данных] Grafana дашборды для pgSCV

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
04-Июн-2021 11:33

Неделю назад я делал анонс про pgSCV новом экспортере метрик для PostgreSQL. После анонса мне ожидаемо стали писать читатели с намеком что неплохо бы и дашборды сделать. Эта задача есть у меня в списке и этот запрос не оказался для меня сюрпризом. Оно и понятно, метрик ого-го сколько и даже продвинутому DBA понадобится довольно много времени чтобы разобраться в них и соорудить более-менее вменяемый дашборд.Я занялся вопросом и сделал базовые дашборды которые покрывают некий (но не весь) объем метрик которые есть в pgSCV. А в этом посте я сделаю быстрый обзор и расскажу что там есть.Хотел бы сделать акцент, что это именно начальные версии и 146% что они будут дополняться и изменяться. Дашбордов получилось несколько, т.к. pgSCV умеет отдавать метрики не только о Postgres'е, но и о Pgbouncer и даже системные метрики. При развитии pgSCV планируется добавлять поддержку других около-Postgres'овых инструментов поэтому и список дашбордов тоже будет пополняться.Как следует из заголовка, дашборды сделаны для Grafana. Я довольно неплохо знаком с ней и на мой взгляд это довольно широко распространенный инструмент для визуализации метрик. Все дашборды используют Prometheus datasource. Если честно, дашборды делались поверх Victoriametrics хранилища, но я старался использовать везде PromQL в запросах, что сказалось на качестве некоторых графиков. Если вдруг звезды сойдутся и дашборды станут богатыми и знаменитыми сделаю аналогичные с MetricsQL. Пока есть три дашборда:
Что есть в 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 спрятанных графиков.Что есть в Pgbouncer.Utilization - утилизация пулов (чтоб понимать насколько хватает их вообще). По графику утилизации можно определить насколько эффктивно используются пулы и хватает ли их.Connections - клиентские и серверные соединения. Сводные графики по соединениям, помогают более подробно увидеть как работает pgbouncer.Processing - здесь графики по обработке транзакций, запросов, сетевому трафику и ожидающим клиентам. Здесь обычно хорошо видно всплески трафика и просадку производительности. Хотелось бы чтобы аналогичные метрики умел бы отдавать и Postgres.Что есть в System.Здесь искушенный пользователь не сделает для себя открытий - в этом дашборде я постарался собрать только минимально нужные графики которые помогают поверхностно оценить все ли в порядке с системой. Для более глубокого анализа можно сходить в графановский Explore и сделать ad-hoc графики.Overview - общая сводка об утилизации ресурсов хостом - CPU, диски, сеть, память - ничего лишнего.CPU, Storage utilization - утилизация процессора и дисковой подсистемы - обычно их производительность наиболее важна в работе БД.Storage - графики отзывчивости, пропускной способности в IOPS и байтах (включая discards и flushes если таковые поддерживаются ядром).Network - графики сетевых интерфейсов, пропускная способности в пакетах и байтах, ошибки при обработке пакетов.Memory, swap - графики использования памяти и подкачки.Disk space - графики утилизации места на файловых системах.
всё ок, но проц довольно хорошо нагруженВот собственно и всё. Как я уже отметил выше, это первые наброски, дашборды будут редактироваться и дополняться.Спасибо за внимание.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_sistemnoe_administrirovanie (Системное администрирование), #_postgresql, #_administrirovanie_baz_dannyh (Администрирование баз данных), #_postgresql, #_monitoring (мониторинг), #_grafana, #_pgscv, #_pgbouncer, #_sistemnoe_administrirovanie (
Системное администрирование
)
, #_postgresql, #_administrirovanie_baz_dannyh (
Администрирование баз данных
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 10-Май 01:49
Часовой пояс: UTC + 5