Расширение уведомлений для клиентов ClickHouse Managed Postgres

Источник: ClickHouse•

Расширение уведомлений для клиентов ClickHouse Managed Postgres

ClickHouse Managed Postgres добавляет пять новых уведомлений для клиентов: неактивные слоты репликации, плановые переключения, внеплановые отработки отказов, долго выполняющиеся транзакции и приближение соединений к лимиту.

В августе мы представили уведомления для клиентов ClickHouse Managed Postgres, начав с предупреждения при превышении использования хранилища на 85%. Мы хотели заранее предупреждать вас, когда что-то требует внимания, избавив вас от необходимости постоянно держать открытой панель мониторинга.

Предупреждение о хранилище, отображенное из полученного внутреннего тестового письма. В этом примере сообщалось о 95% использования.

Эти оповещения о хранилище уже помогают клиентам принимать меры. Например, клиенты связывались с нами после получения оповещения, и мы помогали вернуть использование диска в норму.

Клиент подтверждает, что оповещение о хранилище привлекло его внимание к проблеме. Данные клиента скрыты.

Подобные беседы помогли нам понять, где мы можем действовать более проактивно. Мы добавляем более конкретные уведомления, чтобы у вас было более четкое представление о том, что происходит и что нужно проверить в первую очередь. Для этого клиента неиспользуемый слот репликации удерживал около 650 ГБ логов транзакций — проблему, которую поможет выявить грядущее уведомление о неактивном слоте.

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

Приложения часто передают изменения из Postgres в нижестоящие системы с помощью CDC-инструментов, таких как Debezium. Эти конвейеры используют слоты логической репликации для отслеживания того, какие изменения все еще необходимы их потребителям.

Слот остается в Postgres даже после отключения его потребителя. По мере того как ваше приложение записывает все больше данных, Postgres может сохранять данные уходящего вперед журнала (WAL) для этого потребителя. Приостановленный конвейер или заброшенная настройка репликации могут привести к тому, что объем используемого хранилища будет расти, в то время как приложение работает нормально.

Предстоящее уведомление будет выявлять слоты, которые считаются неактивными и имеют по крайней мере 10 ГиБ неподтвержденных данных WAL в течение двухчасового периода наблюдения. Оно будет включать имена слотов, чтобы вы знали, что именно нужно исследовать. Слоты, идентифицированные как принадлежащие нашему управляемому сервису CDC, будут исключены.

Одним из распространенных вариантов использования является потоковая передача данных из Managed Postgres в ClickHouse для аналитики с помощью ClickPipes, который использует слоты логической репликации. Для такой настройки вы также можете переключиться на WalShadow, который использует физическую репликацию WAL и устраняет необходимость в слотах логической репликации, предотвращая такое накопление WAL.

Иллюстрация: неактивный слот может удерживать WAL по мере поступления новых записей. Предстоящее уведомление идентифицирует этот слот.

Плановое переключение переводит резервный узел в статус основного для вашей службы Postgres. Например, увеличение ресурсов ЦП, памяти или хранилища приводит к созданию запасного экземпляра, который догоняет основной перед тем, как перенять его роль. Автоматическое масштабирование хранилища использует тот же процесс. Существующие соединения прерываются во время переключения.

Предстоящее уведомление сообщит вам о завершении переключения и укажет затронутую службу. Ваша строка подключения останется прежней. Если вы расследуете кратковременное прерывание связи, в уведомлении будет указано время смены основного узла.

Письмо о плановом переключении из внутреннего теста, полученное 21 октября 2026 г., отредактировано для удаления устаревшей родительской вставки.

Если основной узел становится недоступным, служба с резервной копией может восстановиться путем повышения этого резервного узла до основного. Предстоящее уведомление о внеплановом переключении сообщит вам о завершении такого повышения.

Уведомление укажет затронутую службу и объяснит, что основной узел стал недоступен. Ваше приложение сможет переподключиться, используя ту же строку подключения.

Письмо о внеплановом переключении, сгенерированное на основе внутреннего теста, полученного 22 октября 2026 г.

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

Документация по высокой доступности

Иногда транзакция остается открытой долгое время после того, как, по вашим ожиданиям, ее работа должна была завершиться. Она может все еще выполнять запрос или находиться в режиме простоя, пока приложение ожидает перед фиксацией или откатным действием.

В зависимости от выполненных действий открытая транзакция может удерживать блокировки, блокировать другую работу или мешать процессу очистки (vacuum) возвращать освобожденные строки. Это может привести к раздуванию таблиц и замедлению запросов.

Предстоящее уведомление предупредит нас, когда мы обнаружим на вашем основном узле транзакцию, которая остается открытой не менее двух часов. Оно будет охватывать как активные транзакции, так и те, которые находятся в режиме простоя внутри транзакции, и сообщать возраст транзакции на момент проверки.

После этого вы сможете проверить, является ли транзакция ожидаемой или она была непреднамеренно оставлена открытой.

По мере добавления экземпляров приложений или увеличения параллелизма воркеров использование соединений может расти быстрее, чем вы ожидаете. Пул соединений обычно настраивается для каждого экземпляра приложения, поэтому масштабирование приложения может умножить общее количество подключений к базе данных.

Как только доступные соединения будут исчерпаны, новые подключения приложений могут завершиться неудачно. Предстоящее уведомление предупредит вас, когда использование достигнет 95% от лимита, чтобы вы могли разобраться в ситуации до того, как это произойдет.

Начните с проверки того, какие приложения удерживают соединения и являются ли эти сеансы активными или простаивающими. Затем просмотрите настройки пула и найдите соединения, которые приложение перестало использовать, но не закрыло и не вернуло в пул.

Мы хотим, чтобы Managed Postgres сообщал вам, когда что-то требует внимания, и предоставлял достаточно контекста для действий. Мы продолжим расширять уведомления на основе проблем, с которыми сталкиваются наши клиенты.

Вы можете управлять доставкой доступных для вашей службы уведомлений (включая консоль, электронную почту и Slack) в разделе Postgres ваших настроек уведомлений. Подробности см. в документации по уведомлениям.

Есть ли что-то еще, о чем вы хотели бы получать предварительные предупреждения? Дайте нам знать по адресу postgres-team-support@clickhouse.com.

О чём эта статья

Ещё в разделе «Данные и аналитика»

Все →

Ещё от ClickHouse