Мониторинг транзакций
Страница Monitoring → Transactions в web-интерфейсе ADB Control предназначена для вывода транзакций, которые выполняются в кластерах ADB, подключенных для мониторинга. Страница состоит из двух вкладок Online и History, которые подробно описаны ниже.
Список транзакций
Online
На вкладке Monitoring → Transactions → Online выводятся транзакции, которые выполняются в текущий момент времени (в статусе Active
).
В верхней части вкладки содержится поле Current count, показывающее общее число активных транзакций во всех кластерах ADB, подключенных для мониторинга.


Таблица, расположенная на вкладке Monitoring → Transactions → Online, выводит следующую информацию о транзакциях.
Поле | Описание |
---|---|
Transaction ID |
Уникальный идентификатор транзакции |
Status |
Статус транзакции. Возможные значения см. выше |
Cluster |
Название кластера, в котором запущена транзакция |
Database |
Название базы данных, в которой запущена транзакция |
Resource group |
Название ресурсной группы, которая используется для транзакции |
Username |
Имя пользователя, запустившего транзакцию |
Started |
Дата и время запуска транзакции в формате |
Tags |
Теги транзакции |
Возможно добавление дополнительных столбцов в таблицу с транзакциями для отображения метрик, описание которых представлено ниже. Для добавления новых столбцов нажмите Customize table и отметьте столбцы в выпадающем списке.


Над таблицей со списком транзакций расположен фильтр Cluster, в котором можно выбрать кластер ADB и его базы данных, для которых требуется вывести данные в таблице. По умолчанию выбраны все БД кластера, отмеченного как дефолтный в настройках ADB Control.


В заголовках столбцов таблицы со списком транзакций
расположены фильтры, которые можно использовать для отбора необходимых данных. Для открытия фильтра необходимо нажать на иконку
. Для тех столбцов, где набор возможных значений ограничен (например, Status), в фильтре можно выбрать значение из выпадающего списка.
Для некоторых столбцов (например, Username) требуется ввести искомое значение.
Для столбцов, показывающих дату и время (например, Started), временной диапазон можно выбрать из календаря.
Иконка
означает, что для столбца определен фильтр. Для сброса всех фильтров нажмите Reset.
History
На вкладке Monitoring → Transactions → History выводятся транзакции в следующих статусах:
-
Committed
— успешно завершенные транзакции. -
Aborted
— прерванные транзакции. -
Unknown
— транзакции, итоговый статус которых не был получен. Устанавливается по тайм-ауту для транзакций в статусеActive
, по которым не оказалось соответствующих записей в системном представленииpg_stat_activity
.


Большая часть полей в таблице со списком транзакций на вкладке History совпадает с полями, описанными выше для вкладки Online. Добавляется только одно поле Ended — дата и время завершения транзакции в формате DD/MM/YYYY HH:mm:ss
. Поле заполняется как в результате успешного выполнения, так и в случае ошибки или отмены выполнения.
Как и на вкладке Online, есть возможность добавления дополнительных столбцов в таблицу с транзакциями — путем нажатия на кнопку Customize table.
Детали транзакции
Чтобы просмотреть детальную информацию о транзакции, нажмите на ее идентификатор (Transaction ID) в таблице на вкладке Monitoring → Transactions → Online либо Monitoring → Transactions → History.


Следующая страница содержит несколько секций, описанных ниже.
Заголовок
В верхней части страницы выводится следующая информация о транзакции:
-
Уникальный идентификатор (см. Transaction ID выше). В примере ниже —
696994
. -
Статус (см. Status выше). В примере ниже —
Active
. -
Составной идентификатор транзакции (в примере ниже —
1695219736-11866-12-7156—209077013
), включающий:-
временную метку старта кластера;
-
номер сессии;
-
номер транзакции в рамках сессии;
-
lxid
транзакции на мастере; -
хеш-код от имени кластера (может быть отрицательным).
-
-
Run time — время выполнения транзакции в часах, минутах, секундах.
-
Кнопки Cancel и Terminate для отмены выполняющихся транзакций. Подробную информацию можно получить в разделе Отмена транзакции.


Overview
Секция Overview показывает базовую информацию о транзакции. В дополнение к полям, описанным выше, выводятся:
-
Ended — дата и время завершения транзакции в формате
DD/MM/YYYY HH:mm:ss
. Для еще не завершенных транзакций в поле выводится-
. -
Session ID — идентификатор сессии, в рамках которой запущена транзакция.
-
Process ID — идентификатор процесса, в рамках которого запущена транзакция.


ПРИМЕЧАНИЕ
Нажав на название ресурсной группы в секции Overview, можно перейти в отдельное окно, где доступна смена ресурсной группы. |
Performance
Секция Performance показывает статистику потребления системных ресурсов выбранной транзакцией. Метрики, используемые для мониторинга, приведены в разделе Метрики, собираемые для транзакций.
В верхней части секции Performance показываются текущие и усредненные значения по всем сегментам кластера с выводом "перекосов" (skew).


Можно перейти к альтернативному варианту показа метрик, переведя переключатель под названием секции Performance в активное состояние. В результате отобразится таблица, где по каждой метрике выводится не только текущее значение, но и подробное описание.


В нижней части секции Performance показываются значения метрик отдельно для каждого сегмента кластера, включая master-сегмент seg-1
(где Segment ID равен -1
).
Поле | Описание |
---|---|
Segment ID |
Идентификатор сегмента. Ссылается на |
Hostname |
Название хоста |
CPU |
Объем потребляемого CPU в сегменте (в процентах). На основе значений метрики для всех сегментов рассчитывается средняя величина CPU avg usage % |
RAM |
Объем потребляемой памяти RAM в сегменте (в байтах). На основе значений метрики для всех сегментов рассчитывается средняя величина RAM average |
Read (per sec) |
Скорость чтения данных в секунду в сегменте (в байтах). На основе значений метрики для всех сегментов рассчитывается средняя величина Read avg per sec |
Write (per sec) |
Скорость записи данных в секунду в сегменте (в байтах). На основе значений метрики для всех сегментов рассчитывается средняя величина Write avg per sec |
Virtual memory |
Объем выделенной виртуальной памяти в сегменте (в байтах). На основе значений метрики для всех сегментов рассчитывается средняя величина Virtual memory average |


ВАЖНО
Запрос системных метрик на сегментах ADB производится агентами ADB Control только для транзакций с продолжительностью дольше 15 секунд. Поэтому для транзакций, которые успевают завершиться быстрее этого времени, секция с метриками будет пустой. |
Commands
В секции Commands выводится информация о командах, созданных внутри текущей транзакции.
Поле | Описание |
---|---|
Command ID |
Уникальный идентификатор команды, включающий:
При нажатии на идентификатор можно перейти на страницу с детальной информацией о команде |
SQL ID |
Идентификатор, являющийся общим для SQL-команд с одинаковой структурой |
Command text |
Первые символы текста команды. Для вывода текста полностью (в случае длинных запросов) наведите курсор мыши на ячейку таблицы со значением |
CCNT |
Порядковый номер команды в рамках сессии |
Status |
Статус команды. Возможные значения:
|
Planner |
Название оптимизатора запросов, используемого для построения плана выполнения команды. Возможные значения:
|
Resource group |
Название ресурсной группы, которая используется для команды |
Run time |
Время выполнения команды в часах, минутах, секундах |


Над таблицей со списком команд расположены фильтры, которые можно использовать для отбора необходимых данных:
-
Search command text… — фильтрация по тексту команды (см. Command text выше). Поиск возможен по любой подстроке исходного SQL-запроса.
-
Search CCNT… — фильтрация по номеру команды в рамках сессии (см. CCNT выше). Искомое значение вводится полностью.
-
Search SQL ID… — фильтрация по идентификатору, объединяющему SQL-команды с одинаковой структурой (см. SQL ID выше). Искомое значение вводится полностью.
-
Status — фильтрация по статусу команды (см. Status выше). Значение следует выбрать из выпадающего списка.
Отмена транзакции
На странице с детальной информацией о выполняющейся транзакции существует возможность ее отмены путем нажатия на одну из следующих кнопок:
-
Cancel — вызывает функцию
pg_cancel_backend
, отменяющую транзакцию в обслуживающем процессе. -
Terminate — вызывает функцию
pg_terminate_backend
, завершающую обслуживающий процесс, в котором выполняется транзакция.
После нажатия на кнопку требуется подтвердить операцию во всплывающем окне.




После успешной отмены транзакция приобретает статус Aborted
, а входящие в ее состав команды — Cancelled
.
ВАЖНО
|
Смена ресурсной группы для транзакции
Чтобы изменить ресурсную группу для выбранной транзакции, выполните следующие шаги:
-
Перейдите в окно с детальной информацией о транзакции, как описано выше.
-
Нажмите на название ресурсной группы в секции Overview.
Переход к смене ресурсной группыПереход к смене ресурсной группы -
В открывшемся модальном окне выберите ресурсную группу из выпадающего списка Select resource group. При выборе ресурсной группы ее конфигурационные параметры отображаются в основной части окна.
-
Нажмите Apply.


ПРИМЕЧАНИЕ
Смена ресурсной группы фиксируется в рамках аудита операций под именем |
Метрики, собираемые для транзакций
Обе рассмотренные выше вкладки Online и History позволяют посмотреть статистику потребления системных ресурсов запущенными транзакциями (на вкладке Performance в деталях транзакции). Доступные для транзакций метрики описаны ниже.
ПРИМЕЧАНИЕ
На вкладке Online значения метрик выводятся на текущий момент времени, на вкладке History — на момент завершения транзакции. |
Группа | Метрика | Описание |
---|---|---|
CPU |
CPU usage total |
Общее время потребления CPU по сегментам кластера (в секундах) |
CPU avg usage % |
Среднее потребление CPU (в процентах) процессами, участвующими в выполнении запроса на сегментах кластера. Рассчитывается как результат деления суммарного потребления CPU на всех сегментах кластера (исключая мастер и standby) на общее число процессов, обрабатывающих запрос на сегмент-хостах (исключая мастер и standby) |
|
CPU skew |
Показатель, отражающий "перекос" (skew) в потреблении CPU по сегментам кластера (в процентах). Значение, отличное от нуля, говорит о том, что один из сегментов использует больший объем CPU, чем остальные |
|
RAM |
RAM current |
Текущая величина общего объема памяти RAM, потребляемого на уровне кластера (в байтах) |
RAM max |
Максимальная величина общего объема памяти RAM, использованного на уровне кластера за время выполнения транзакции (в байтах) |
|
RAM average |
Средний объем потребляемой памяти RAM по сегментам кластера (в байтах). Потребление RAM в каждый конкретный момент рассчитывается на основе метрики rss (Resident Set Size) из операционной системы |
|
RAM skew |
Показатель, отражающий "перекос" (skew) в потреблении RAM по сегментам кластера (в процентах). Значение, отличное от нуля, говорит о том, что один из сегментов использует больший объем RAM, чем остальные |
|
Virtual memory |
Virtual memory current |
Текущая величина общего объема виртуальной памяти, выделенного на уровне кластера (в байтах) |
Virtual memory max |
Максимальная величина общего объема виртуальной памяти, выделенного на уровне кластера за время выполнения транзакции (в байтах) |
|
Virtual memory average |
Средний объем выделенной виртуальной памяти по сегментам кластера (в байтах). Потребление виртуальной памяти в каждый конкретный момент рассчитывается на основе метрики vsize (Virtual Memory Size) из операционной системы |
|
Virtual memory skew |
Показатель, отражающий "перекос" (skew) в выделении виртуальной памяти по сегментам кластера (в процентах). Значение, отличное от нуля, говорит о том, что один из сегментов использует больший объем виртуальной памяти, чем остальные |
|
Read |
Read per sec |
Текущий показатель скорости чтения данных в секунду на уровне кластера (в байтах) |
Read total |
Общий объем прочитанных данных по сегментам кластера (в байтах). Для расчета используется следующая формула: |
|
Read avg per sec |
Усредненный показатель скорости чтения данных в секунду по сегментам кластера (в байтах). Скорость чтения в каждый конкретный момент рассчитывается на основе информации об I/O Read из /proc/[pid]/stat операционной системы как дельта между текущим и предыдущим значением |
|
Read skew |
Показатель, отражающий "перекос" в чтении данных по сегментам кластера (в процентах). Значение, отличное от нуля, говорит о том, что один из сегментов считывает больший объем с диска, чем остальные |
|
Write |
Write per sec |
Текущий показатель скорости записи данных в секунду на уровне кластера (в байтах) |
Write total |
Общий объем записанных данных по сегментам кластера (в байтах). Для расчета используется следующая формула: |
|
Write avg per sec |
Усредненный показатель скорости записи данных в секунду по сегментам кластера (в байтах). Скорость записи в каждый конкретный момент рассчитывается на основе информации об I/O Write из /proc/[pid]/stat операционной системы как дельта между текущим и предыдущим значением |
|
Write skew |
Показатель, отражающий "перекос" (skew) в записи данных по сегментам кластера (в процентах). Значение, отличное от нуля, говорит о том, что один из сегментов записывает на диск больший объем, чем остальные |