Мы представили Query Insights, чтобы помочь вам находить ресурсоемкие запросы и понимать стоящие за ними показатели CPU, чтении и записи. Но поиск медленного запроса — это лишь часть картины. База данных может тратить время на дисковый ввод-вывод, ожидать блокировку или просто быть занятой процессором. Функция Query Insights для ClickHouse Managed Postgres теперь включает метрики событий ожидания, поэтому вы можете видеть, чего ждут активные сеансы и как это меняется со временем. Детализация показывает среднее число активных сеансов по категориям ожидания и долю каждой категории в общей нагрузке. Наряду с метриками запросов и ресурсов это помогает сузить круг вопросов для дальнейшего анализа.
В Query Insights график «Активные сеансы по типу ожидания» группирует активность на вашей первичной базе данных по параметру wait_event_type. Каждый столбец показывает среднее количество активных клиентских сеансов за этот интервал с разбивкой по категориям, таким как IO и Lock. Подробную информацию о значении каждого типа и события ожидания см. в документации PostgreSQL.
На приведенном ниже графике ожидания блокировок составляют наибольшую долю активности, за ними следуют Timeout и CPU. В данном контексте CPU означает, что сеанс активен без зарегистрированного события ожидания; это не является прямым измерением использования процессора.
Если вы хотите рассмотреть детали ближе, наведите указатель мыши на любой столбец, чтобы увидеть конкретные события, формирующие каждый тип ожидания.
В выделенном интервале в среднем зафиксировано 25 активных сеансов, из них 13 ожидают блокировок. Во всплывающей подсказке эти ожидания блокировок детализируются: 4.5 для tuple, 3.5 для transactionid, 3 для relation и 2 для advisory.
Нажмите на карточку, чтобы открыть таблицу «Ожидания» (Waits). Здесь вы найдете индивидуальные значения wait_event, среднее количество активных сеансов для них и их долю в общей нагрузке.
За выбранный диапазон четыре строки блокировок составляют около 42% нагрузки. Блокировки отношений (relation) составляют 15.2%, а блокировки кортежей (tuple) — 12.4%, что делает их крупнейшими вкладами в этой категории.
Рядом с разбивкой по ожиданиям расположены два графика. Заблокированные сеансы (Blocked sessions) показывают среднее количество сеансов, ожидающих блокировок. Время ожидания блокировки (Lock wait time) отражает, сколько времени эти сеансы ожидали на момент выборки, с указанием значений p50, p95 и максимум.
На этих графиках примерно 9–12 сеансов заблокированы на большей части периода высокой нагрузки, достигая пика примерно в 13. Максимальное время ожидания блокировок неоднократно превышает 100 секунд, в то время как p50 остается ниже 10 секунд. В совокупности эти графики показывают, сколько сеансов затронуто и как долго они удерживаются.
Недавно мы добавили метрики Query Insights в конечную точку Prometheus для Managed Postgres. Сюда входят количество запросов и общее время их выполнения для расчета пропускной способности и средней задержки, а также неудачные запросы, возвращенные или затронутые строки, активность буферов и генерация WAL. Количество запросов разбито по операциям, что позволяет отслеживать изменения входящего трафика чтения и записи.
События ожидания также доступны через Prometheus. Вы можете строить графики активных сеансов по событиям ожидания и максимальному времени ожидания блокировки рядом с метриками запросов в Grafana, а также настраивать оповещения о постоянной борьбе за блокировки.
Руководство по интеграции с Prometheus охватывает аутентификацию и настройку сбора данных (скрейпинга). Это позволяет создавать собственные дашборды и системы оповещения под ваши нужды.
ClickHouse Agents могут анализировать события ожидания наряду с шаблонами медленных запросов и метриками службы, чтобы помочь вам решить, что именно следует исследовать. Попробуйте задать следующие вопросы:
Чего ждет моя база данных Postgres и что мне исследовать дальше?
Чего ждет моя база данных Postgres и что мне исследовать дальше?
Вот пример отладки событий ожидания с помощью ClickHouse Agents:
Вы найдете новые графики в разделе Query Insights в вашей службе Managed Postgres. Дополнительную информацию о Query Insights см. в документации.
Попробуйте и дайте нам знать, что вы думаете.











