Транспортные метрики
Введение
Этот дашборд предназначен для мониторинга HTTP-запросов, соединений с базой данных PostgreSQL и анализа SQL-запросов. Используется Prometheus в качестве источника данных, а отображение производится через панели Grafana.
Общее описание дашборда
Дашборд состоит из нескольких секций:
- HTTP — Клиенты и пользователи
- Postgres — Транзакции, соединения
- Postgres — Анализ запросов
- Postgres — Топ запросов и детализация
Каждый раздел содержит метрики в формате Time Series или Stat с метками, легендами и пороговыми значениями. Все панели обновляются каждые 10 секунд.
Раздел: HTTP — Клиенты и пользователи

Active Connections Over Time
Показывает количество соединений:
public_active_connectionsinternal_active_connections
Используйте для отслеживания нагрузки от внешних и внутренних пользователей.
Users HTTP Request Duration
Гистограмма p95 и p50 по времени ответа на внутренних HTTP-запросы.
Поиск аномалий:
- Если
p95стабильно >1 сек — вероятная перегрузка.
Users Request Rate by Endpoint
Показывает частоту внутренних HTTP-запросов к endpoint'ам.
Clients HTTP Request Duration
То же самое, но для внешних пользователей (public).
Clients Request Rate by Endpoint
Частота обращений клиентов по методам и endpoint'ам.
Раздел: Postgres — Транзакции, соединения

Макс. возраст подключения
Метрика pg_max_connection_age_seconds. Может свидетельствовать о висящих соединениях.
Всего подключений, неактивные, ожидающие
Панели:
pg_total_connectionspg_idle_connectionspg_waiting_connections
Цветовая кодировка помогает визуально отличать аномалии.
Транзакции
Панель с pg_active_transactions и pg_hanging_transactions. Висящие транзакции указывают на ошибки в коде или локации.
Current Active Connections
Stat-панель с текущим числом активных соединений (public + internal).
Current PostgreSQL Transactions
Stat-панель с текущими активными и зависшими транзакциями.
Connection States
Объединяет Active tx, Hanging tx, Idle conn, Waiting conn.
Раздел: Postgres — Анализ запросов

Обработанные строки / Rows Processed per Second
Панели:
sum by (query)(rate(pg_query_rows_total[5m]))rate(pg_query_rows_total[$__interval])
Общее время выполнения запросов
Панель topk(5) — отображает топ-5 самых долгих запросов.
Ошибки запросов
rate(pg_query_errors_total[5m]) по типу ошибки.
Количество вызовов запросов
Показывает нагрузку по числу вызовов.
Среднее время выполнения
avg by (query)(pg_query_avg_time_seconds) — помогает выявить медленные запросы.
Раздел: Postgres — Топ запросов и детализация

Top Queries by Call Rate (таблица)
Позволяет отсортировать SQL-запросы по количеству вызовов, среднему времени и строкам/сек.
Удобно для быстрого выявления "горячих" запросов.
Детализация по запросу
Фильтрация по переменной $query. Показывает вызовы и строки конкретного запроса.
Как искать уязвимые места
- Просадки по
p95времени ответа — указывают на "узкие горлышки". - Висящие транзакции (
pg_hanging_transactions) — потенциальные deadlocks. - Высокий процент неактивных/ожидающих соединений — возможны утечки или неосвобожденные ресурсы.
- Частые ошибки SQL-запросов — сигнализируют о баге или некорректной логике.
- Топ-5 долгих запросов — кандидаты на оптимизацию индексов или плана выполнения.
Как сравнивать дашборды
- Временной интервал: Убедитесь, что сравнение идет по одинаковому периоду.
- Конфигурация панелей: Сравните Prometheus выражения (expr), используемые метрики и уровни порогов.
- Показатели "до и после": Применяйте при оптимизациях, чтобы видеть эффект.