Перейти к основному содержимому
Версия: 4.7

Транспортные метрики

Введение

Этот дашборд предназначен для мониторинга HTTP-запросов, соединений с базой данных PostgreSQL и анализа SQL-запросов. Используется Prometheus в качестве источника данных, а отображение производится через панели Grafana.


Общее описание дашборда

Дашборд состоит из нескольких секций:

  • HTTP — Клиенты и пользователи
  • Postgres — Транзакции, соединения
  • Postgres — Анализ запросов
  • Postgres — Топ запросов и детализация

Каждый раздел содержит метрики в формате Time Series или Stat с метками, легендами и пороговыми значениями. Все панели обновляются каждые 10 секунд.


Раздел: HTTP — Клиенты и пользователи

image-2023-11-27_10-47-59.png

Active Connections Over Time

Показывает количество соединений:

  • public_active_connections
  • internal_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 — Транзакции, соединения

image-2023-11-27_10-47-59.png

Макс. возраст подключения

Метрика pg_max_connection_age_seconds. Может свидетельствовать о висящих соединениях.

Всего подключений, неактивные, ожидающие

Панели:

  • pg_total_connections
  • pg_idle_connections
  • pg_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 — Анализ запросов

image-2023-11-27_10-47-59.png image-2023-11-27_10-47-59.png

Обработанные строки / 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 — Топ запросов и детализация

image-2023-11-27_10-47-59.png

Top Queries by Call Rate (таблица)

Позволяет отсортировать SQL-запросы по количеству вызовов, среднему времени и строкам/сек.

Удобно для быстрого выявления "горячих" запросов.

Детализация по запросу

Фильтрация по переменной $query. Показывает вызовы и строки конкретного запроса.


Как искать уязвимые места

  1. Просадки по p95 времени ответа — указывают на "узкие горлышки".
  2. Висящие транзакции (pg_hanging_transactions) — потенциальные deadlocks.
  3. Высокий процент неактивных/ожидающих соединений — возможны утечки или неосвобожденные ресурсы.
  4. Частые ошибки SQL-запросов — сигнализируют о баге или некорректной логике.
  5. Топ-5 долгих запросов — кандидаты на оптимизацию индексов или плана выполнения.

Как сравнивать дашборды

  • Временной интервал: Убедитесь, что сравнение идет по одинаковому периоду.
  • Конфигурация панелей: Сравните Prometheus выражения (expr), используемые метрики и уровни порогов.
  • Показатели "до и после": Применяйте при оптимизациях, чтобы видеть эффект.