Мониторинг кластера PostgreSQL

В Облачных базах данных PostgreSQL можно отслеживать состояние кластера:

Метрики нод кластера и баз данных, доступные в панели управления, можно экспортировать в формате Prometheus.

Посмотреть состояние нод кластера

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Базы данных.
  2. Откройте страницу кластера вкладка Мониторинг.
  3. Нажмите Мониторинг серверов кластера.

Метрики нод кластера

vCPU

На сколько процентов загружены ядра нод кластера.

Load Average

Среднее значение загрузки системы за период времени. Показывает, какое количество процессов обрабатывается ядрами кластера.

Показатель представлен в виде трех значений – за 1 минуту, 5 минут и 15 минут. Эти значения должны быть не больше, чем количество ядер на ноде.

Память

Занятая память без учета кэша и буферов операционной системы (в % или ГБ).

Диск

Занятое место на диске (в % или ГБ).

Посмотреть состояние баз данных

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Базы данных.
  2. Откройте страницу кластера вкладка Мониторинг.
  3. Нажмите Мониторинг баз данных.

Метрики баз данных

Подключения

Количество подключений для каждой базы данных кластера. Также показано суммарное количество подключений ко всем базам данных.

Время выполнения самого долгого запроса

Время выполнения самого долгого запроса за период времени.

Транзакции

Количество транзакций в секунду для каждой базы данных кластера.

Операции со строками

Количество операций над выбранной базой данных в секунду:

  • tup_deleted – количество строк, удалённое запросами в базе данных в секунду;
  • tup_fetched – количество строк, извлеченное запросами в базе данных в секунду;
  • tup_inserted – количество строк, вставленное запросами в базе данных в секунду;
  • tup_returned – количество строк, возвращенное запросами в базе данных в секунду;
  • tup_updated – количество строк, измененное запросами в базе данных в секунду.

Попадание в кэш

Какой процент данных в запросе был прочитан из кэша — отношение blks_hit к сумме blks_hit и blks_read.

Locks

Количество блокировок по каждой базе данных кластера.

Deadlocks

Количество взаимных блокировок, зафиксированное в каждой базе данных.

Метрики пулера соединений

Метрики пулера соединений PgBouncer для выбранной базы данных:

  • количество подключений клиентов к пулу;
  • количество активных подключений к ноде;
  • время ожидания ответа от ноды;
  • максимальное время ожидания клиента в очереди.

Посмотреть статус кластера

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Базы данных.
  2. Посмотрите статус в строке кластера столбец Статус.


Статус Значение
ACTIVE Кластер доступен
CREATING Кластер создается
UPDATING К кластеру применяются изменения
RESIZING Кластер масштабируется
ERROR Произошла ошибка, создайте тикет
DISK FULL Диск заполнен, кластер работает только на чтение. Чтобы кластер работал на чтение и запись, очистите диск или масштабируйте кластер и выберите конфигурацию с бóльшим размером диска
DEGRADED Часть нод кластера недоступна
DELETING Кластер удаляется

Уведомления о заполненности диска

Если диск кластера будет заполнен на 80%, на почту аккаунта автоматически отправится уведомление.

Если диск кластера будет заполнен на 95% и более, кластер перейдет в статус DISK_FULL и будет работать только на чтение. Чтобы кластер работал на чтение и запись, очистите диск или масштабируйте кластер и выберите конфигурацию с бóльшим размером диска.

Очистить диск

Откройте транзакцию transaction_read_only = no и удалите ненужные данные с помощью одного из запросов:

  • DROP TABLE — удаляет структуру (данные, привилегии, индексы, constraints, триггеры). Используйте при полном удалении таблицы с данными и структурой:

    BEGIN;
    SET transaction_read_only = no;
    DROP TABLE table_name;
    COMMIT;
  • TRUNCATE TABLE — удаляет содержимое таблицы, при этом структура сохраняется. Работает быстрее DROP TABLE. Используйте при удалении всех строк таблицы с сохранением структуры таблицы:

    BEGIN;
    SET transaction_read_only = no;
    TRUNCATE TABLE table_name;
    COMMIT;
  • DELETE — используйте для удаления определенных строк.

Мы не рекомендуем использовать запрос DELETE FROM table WHERE ... для очистки диска. Этот запрос может создавать выборки больших размеров на больших таблицах и располагать их на диске. Оставшееся свободное место на диске может полностью закончиться, это приведет к проблемам с PostgreSQL и необходимости восстанавливать его работу вручную.

Экспортировать метрики в формате Prometheus

Вы можете экспортировать метрики в формате Prometheus и затем самостоятельно настроить мониторинг и алерты для кластеров баз данных. Историческая информация для кластеров недоступна — метрики запрашиваются только в режиме реального времени.

Чтобы экспортировать метки, нужно получить токен мониторинга. Токен дает доступ к метрикам всех кластеров в одном пуле проекта.

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Базы данных.
  2. Нажмите Токены для Prometheus ⟶ Создать.
  3. Введите имя токена. Токен будет сгенерирован автоматически. Нажмите Создать.
  4. Добавьте в конфигурационный файл Prometheus:

    scrape_configs:
    - job_name: get-metrics-from-dbaas
    scrape_interval: 1m
    static_configs:
      - targets:
        - '<pool>.dbaas.selcloud.ru'
    scheme: https
    authorization:
      type: Bearer
      credentials: <monitoring_token>

    Укажите:

    • <pool> — пул, в котором действует токен, например ru-3;
    • <monitoring_token> — значение токена мониторинга.
  5. Источник метрик появится по адресу http://localhost:9090/targets.

    Укажите localhost — IP-адрес, на котором установлен Prometheus.