События мониторинга#
В процессе разработки или тестирования может возникнуть потребность в анализе численных метрик работы приложения.
Для данных целей 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 |