События мониторинга#

В процессе разработки или тестирования может возникнуть потребность в анализе численных метрик работы приложения.

Для данных целей IDMX предоставляет метрики для анализа работы узлов.

Метрики предоставляются компонентом idmx-engine в формате Prometheus по пути <URL до idmx-engine>/midpoint/actuator/prometheus. Подробнее о Prometheus читайте в документации. Компоненты idmx-ui и idmx-connector-server не поставляют метрик. Метрики БД поставляются (если поставляются) используемой СУБД (Platform V Pangolin SE или PostgreSQL), подробнее о методах поставки этих метрик смотрите в документации на соответствующую СУБД.

IDMX не предоставляет средства для сбора и отображения метрик. Для сбора метрик может быть использовано любое ПО, работающее с форматом Prometheus, например, как указано выше, Prometheus. Для отображения метрик в средствах визуализации (например, Grafana) клиентам необходимо самостоятельно настроить интерфейс для визуализации и анализа информации (dashboard), используя выбранное ПО для сбора метрик.

Обратите внимание! Частота сбора метрик задается пользователем самостоятельно при конфигурировании Prometheus.

Интеграция с Platform V Monitor#

Непосредственной интеграции с компонентом MONA (Объединенный мониторинг Unimon) продукта Platform V Monitor нет. IDMX предоставляет метрики в формате Prometheus, и обеспечивает возможность их сбора средствами компонента MONA. Подробнее о подключении интеграции IDMX с MONA смотрите в документе Руководство по установке.

Основные метрики IDM#

В соответствии с форматом Prometheus в таблице ниже представлены не конкретные метрики, а названия категорий.

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

Метрика

Описание

http.server.requests

Количество запросов, обработанных Spring MVC

jvm.buffer.count

Оценка количества буферов в пуле

jvm.buffer.memory.used

Оценка памяти в байтах, которую виртуальная машина Java использует для этого буферного пула

jvm.buffer.total.capacity

Оценка общей емкости в байтах буферов в этом пуле

jvm.classes.loaded

Количество классов, которые в настоящее время загружены в виртуальную машину Java

jvm.classes.unloaded

Общее количество классов, выгруженных с момента начала выполнения виртуальной машины Java.

jvm.gc.live.data.size

Размер в байтах пула памяти старого поколения после полной сборки мусора

jvm.gc.max.data.size

Максимальный размер в байтах пула памяти старого поколения

jvm.gc.memory.allocated

Увеличивается для увеличения размера пула памяти молодого поколения после одного сборщика мусора до следующего

jvm.gc.memory.promoted

Подсчет положительных увеличений в размере пула памяти старого поколения перед сборкой мусора и сборкой мусора после сборки мусора.

jvm.gc.pause

Время в секундах, проведенное в паузе сборщика мусора

jvm.memory.committed

Объем памяти в байтах, выделенный виртуальной машине Java для использования

jvm.memory.max

Максимальный объем памяти в байтах, который можно использовать для управления памятью

jvm.memory.used

Количество используемой памяти в байтах

jvm.threads.daemon

Текущее количество живых потоков демона

jvm.threads.live

Текущее количество живых потоков, включая как демонические, так и недемонические потоки

jvm.threads.peak

Пиковое количество живых потоков с момента запуска виртуальной машины Java или сброса пикового значения

jvm.threads.states

Текущее количество потоков, имеющих состояние NEW

process.cpu.usage

«Недавнее использование процессора» в секундах для процесса виртуальной машины Java

process.files.max

Максимальное количество дескрипторов файла

process.files.open

Количество дескрипторов открытого файла

process.start.time

Время начала процесса с эпохи unix в секундах

process.uptime

Время безотказной работы виртуальной машины Java в секундах

system.cpu.count

Количество процессоров, доступных виртуальной машине Java

system.cpu.usage

"Недавнее использование процессора" для всей системы в секундах

system.load.average.1m

Сумма количества запускаемых сущностей, поставленных в очередь на доступные процессоры, и количества запускаемых сущностей, запущенных на доступных процессорах, усредненная за период времени

tomcat.cache.access

Количество событий доступа к кэшу

tomcat.cache.hit

Количество событий нахождения данных в кэше

tomcat.connections.config.max.connections

Максимальное количество возможных подключений к источнику данных

tomcat.connections.current.connections

Количество активных подключений к источнику данных

tomcat.connections.keepalive.current.connections

Количество существующих но неактивных подключений к источнику данных

tomcat.global.error

Количество ошибок для каждого обработчика запросов

tomcat.global.received

Количество данных в байтах полученных каждым обработчиком запросов

tomcat.global.request

Время обработки запросов (в мс) для каждого глобального обработчика запросов

tomcat.global.sent

Количество данных в байтах отправленных каждым обработчиком запросов

tomcat.servlet.error

Количество запросов с ошибками, полученных сервлетом

tomcat.servlet.request

Время (в мс), потраченное на обработку запросов сервлетом

tomcat.sessions.active

Количество активных сессий для каждого приложения

tomcat.sessions.alive

Количество существующих но неактивных сессий для каждого приложения

tomcat.sessions.created

Количество созданных сессий

tomcat.sessions.expired

Количество сессий, завершившихся по таймауту, для каждого приложения

tomcat.sessions.rejected

Количество сессий отвергнутых каждым приложением

tomcat.threads.busy

Количество занятых потоков в контейнере Apache Tomcat

tomcat.threads.config.max.threads

Максимально возможное количество потоков в контейнере Apache Tomcat

tomcat.threads.current

Текущее количество потоков в контейнере Apache Tomcat