Метрики Gateway
StableКакие метрики Gateway особенно полезны для клиентского входа, pooling, freeze/drain и проблем backend‑маршрутизации.
Обновлено: 21 марта 2026 г.
Gateway — это пользовательская PostgreSQL‑точка входа SPG99, поэтому именно его метрики лучше всего отвечают на вопросы “почему приложение не подключается”, “как ведёт себя pool” и “не мешает ли клиентский трафик autoscale handoff”.
Базовые сигналы живости
upна metrics‑порту — доступен ли сам gateway;/health— быстрый probe для liveness/health.
TLS и backend‑подключение
gw_backend_tls_ok_total
Считает успешные backend TLS‑handshake между Gateway и Compute.
gw_backend_tls_handshake_errors_total
Показывает ошибки backend TLS‑handshake. Полезно при проблемах с CA chain, SNI и пересоздании backend‑сертификатов.
Lease и lifecycle базы
spg99_lease_active
Показывает, активен ли lease для конкретной базы.
spg99_lease_acquire_total
Считает попытки acquire lease, включая ошибки.
Практический смысл: по этим метрикам хорошо видно, будит ли Gateway sleeping‑database, не застревает ли lease path и не удерживается ли база дольше нужного из‑за клиентской активности.
Pooling и pressure на backend
spg99_pool_total_conns
Сколько backend‑соединений открыто в pool.
spg99_pool_idle_conns
Сколько backend‑соединений лежит idle и готово к reuse.
spg99_pool_checkout_wait_seconds
Сколько времени клиенты ждут выдачи backend‑соединения.
spg99_pool_checkout_timeouts_total
Сколько раз checkout упёрся в timeout/exhaustion pool.
spg99_pool_backend_connect_total
Сколько было попыток открыть backend‑соединение, с разбивкой по результату.
spg99_pool_resets_total
Сколько backend‑соединений reset‑илось перед reuse.
Что особенно важно для нового autoscaler
spg99_session_pinned_total
Показывает, как часто сессии переходят в pinned state и по какой причине.
Это особенно полезно, когда:
- приложение неожиданно начало использовать
SET, temp tables, cursors,LISTENили named prepared statements; - transaction pooling перестал давать ожидаемую экономию;
- autoscale handoff не может дойти до безопасного drain.
Freeze и cutover
Когда freeze_new_checkouts=true, Gateway должен перестать выдавать новые checkout'ы на старый writer. В этот момент особенно полезно смотреть:
- checkout waits;
- checkout timeouts;
- pinned sessions;
- общую длительность lease и число активных соединений.
Как интерпретировать метрики на практике
Сценарий 1: подключения медленные только после простоя
Смотрите spg99_lease_acquire_total, spg99_lease_active, spg99_pool_backend_connect_total и длительности checkout. Если старт медленный только на sleeping‑database, это нормальный cold start path.
Сценарий 2: handoff завис на freeze/drain
Смотрите spg99_session_pinned_total, checkout wait и общее число активных/idle клиентских соединений. Часто проблема не в платформе, а в workload, который держит слишком много session‑state.
Сценарий 3: приложение упирается в pool
Смотрите spg99_pool_checkout_timeouts_total, spg99_pool_total_conns, spg99_pool_idle_conns. Если timeout‑ы растут при нулевом idle‑пуле, нужно либо расширять профиль, либо уменьшать fan‑out клиентов, либо разбираться, почему workload pin‑ит сессии.
Сценарий 4: маршрут до backend нестабилен
Смотрите gw_backend_tls_handshake_errors_total и spg99_pool_backend_connect_total{result=...}. Это помогает быстро отделить route/TLS‑проблему от ошибок клиентского логина.
Практический вывод
Для Gateway метрики — это главный способ понять:
- работает ли autostart;
- даёт ли pooling реальную экономию;
- не превратился ли workload из stateless в session‑heavy;
- не мешает ли pinned traffic безопасному autoscale handoff.
