Live Ops
Live Ops — таб для дежурного: что прямо сейчас происходит в базе. Активные сессии, граф блокировок, слот репликации, медленные запросы в реальном времени.
Открыть
⌘+Shift+L — откроется отдельная вкладка.
Внутри — три суб-таба: Sessions, Slow Queries, Replication.
Sessions
Список активных сессий (pg_stat_activity):
| Поле |
Что значит |
| PID |
Процесс на сервере |
| User |
От чьего имени подключение |
| Database |
К какой БД |
| State |
active, idle, idle in transaction, idle in transaction (aborted) |
| Query |
Текущий или последний запрос (укорочён до 200 символов; full — в детальной модалке) |
| Duration |
Сколько уже работает |
| Wait Event |
Если active и ждёт чего-то — что именно (Lock:transactionid, IO:DataFileRead, и т.д.) |
| Client addr |
Откуда |
Граф блокировок
Кнопка Graph в подзаголовке Sessions переключает табличный вид на граф. Каждый узел — сессия, рёбра — кто кого блокирует.
Цвет ребра — режим лока:
- 🟢 AccessShareLock — лёгкий (SELECT)
- 🟡 RowExclusiveLock — INSERT/UPDATE/DELETE
- 🔴 AccessExclusiveLock — DDL, VACUUM FULL
В нижнем углу — легенда. Hover на ребро — покажет в tooltip полное имя лока и таблицу.
Действия на сессию
Правый клик на узел / строку:
- Show full query — модалка с полным SQL
- Copy PID — для использования в
psql
- pg_terminate_backend(PID) — убить сессию. На prod-подключениях требует подтверждение через ввод PID.
- pg_cancel_backend(PID) — мягкая отмена (только текущий запрос, сессия остаётся)
Никогда не убивайте сессии вашего бэкенда наугад. Используйте pg_cancel_backend сначала — это просто отменяет запрос. pg_terminate_backend сбрасывает соединение, и приложение получит ошибку.
Slow Queries
Если установлено расширение pg_stat_statements — список топ-запросов по total_exec_time. Обновляется по нажатию ⌘+R или каждые N секунд (см. ниже).
Если расширение не установлено — показывается инструкция, как включить.
Replication
Таблица из pg_stat_replication:
| Поле |
Что |
| Application |
Имя реплики |
| Client |
IP реплики |
| State |
streaming, catchup, backup |
| Sent LSN / Write LSN / Flush LSN / Replay LSN |
Где находится реплика по WAL |
| Lag (bytes) |
Сколько байт WAL ещё не доставлено |
| Lag (time) |
На сколько секунд позади |
| Sync state |
sync, async, quorum |
Если lag > порога (по умолчанию 10 секунд) — строка подсветится красным.
Replication slots
Дополнительная таблица под главной — pg_replication_slots. Полезно отслеживать неактивные слоты, которые удерживают WAL и забивают диск:
| Slot |
Active |
Restart LSN |
WAL retained |
node1 |
✓ |
0/12345678 |
4 MB |
old_subscriber |
— |
0/A0000000 |
12 GB ⚠ |
Правый клик → Drop slot… удалит неактивный слот (с подтверждением).
Авто-обновление
В шапке таба — переключатель Auto-refresh: off / 5s / 10s / 30s. Для on-call удобно поставить 5s и держать таб открытым.
Нагрузка от Live Ops на БД минимальная — это SELECT-ы по системным view. На prod без опасений.
Что дальше