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