6.7. Настройка пула соединений #

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

Коллектор поддерживает отдельные пулы соединений для различных целей: один — для базы данных по умолчанию (всегда открыт, чтобы избежать накладных расходов на управление соединениями), по одному для каждой отслеживаемой базы данных и один — для процессов fetcher, которые собирают статистику раздувания (bloat). Каждый пул может содержать до max_open соединений.

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

Примечание

Если значение параметра max_threads превышает значение max_open, размер пула соединений всё равно ограничивается значением max_open.

Вы можете отслеживать текущее количество активных соединений от коллектора, выполнив следующий SQL-запрос на отслеживаемой базе данных:

SELECT COUNT(*) FROM pg_stat_activity WHERE application_name = 'pgpro-otel-collector';

6.7.1. Параметры #

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

max_idle_time

Максимальное время бездействия для соединения.

По умолчанию: 10 минут.

max_lifetime

Максимальное время жизни соединения независимо от его использования.

По умолчанию: 10 минут.

connect_timeout

Максимальное время ожидания при попытке установить соединение.

По умолчанию: 15 секунд.

max_open

Максимальное число открытых соединений, поддерживаемых в пуле.

По умолчанию: 5.

6.7.2. Пример конфигурации #

Чтобы настроить пул соединений, добавьте следующий раздел в конфигурацию ресивера postgrespro:

receivers:
  postgrespro:
    # ... конфигурация других ресиверов ...
    connection_pool:
      max_idle_time: 10m
      max_lifetime: 10m
      connect_timeout: 15s
      max_open: 5