Метрики, связанные с БД с точки зрения сервиса DataSpace#

Показатели пула подключения к БД (Hikari)#

Основные показатели утилизации пула соединений к БД:

  • «active» — количество активных соединений в пуле;

  • «idle» — количество idle-соединений в пуле;

  • «pending» — количество потоков, ожидающих подключения из пула.

Далее на снимке показывается время, затраченное на получение соединения к БД из пула соединений:

Длительность исполнения SQL-операций в БД#

Чтобы измерять время работы jdbc-методов и SQL-запросов, источник данных (datasource) приложения оборачивается proxy-объектом.

В качестве прокси используется библиотека https://github.com/ttddyy/datasource-proxy.

    <dependency>
        <groupId>net.ttddyy</groupId>
        <artifactId>datasource-proxy</artifactId>
        <optional>true</optional>
    </dependency>

Время выполнения SQL-запросов и их количество с разделением по типу SQL операций:

Вышеуказанный график выводит «сырые» данные. Далее представлена статистика SQL-операций (95 percentile, среднее время):

Присутствует опция для вывода времени выполнения jdbc-методов и их количества:

Метрика db ping#

Метрика, показывающая длительность исполнения простейшего запроса в памяти СУБД:

  • Oracle select 1 from dual;

  • PostgreSQL select 1.

За счет отсутствия в запросе обращения к дискам БД и т.п., данный показатель хорошо характеризует задержки в сетевой топологии между БД и сервисом DataSpace.

При правильно настроенной облачной среде «db ping» не должен превышать 5 мс.

Метрики буферизации запросов#

Метрики буферизации (накопления и отправки пачками) запросов.

Для просмотра метрик необходимо использовать панель «Buffering Metrics»:

  • bufferQueueSize — количество пакетов в очереди на формировании пачки;

  • packetsInOneTransactionCount — количество пакетов в пачке;

  • batchHandlingTime (95prc ms) — 95 percentile времени обработки пачки в мс;

  • batchHandlingTime (MAX ms) — максимальное значение времени обработки пачки в мс;

  • commitsByBatchSizeCount — количество завершений формирования пачки по причине BatchSize;

  • commitsByEmptyQueueCount — количество завершений формирования пачки по причине EmptyQueue;

  • commitsByTimeWindowCount — количество завершений формирования пачки по причине TimeWindow.