Мониторинг#

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

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

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

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

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

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

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

Настройка#

Программный продукт не имеет собственные встроенные средства мониторинга.

Метрики#

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

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

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

Название

Описание

Размерность

Основные атрибуты

Метрики по задачам (task)

idm_task_processed_items

Обработка задачи IDM

Untyped

application, cluster, instance, job, namespace, outcome, pod_ip, pod_port, root_task_name, root_task_oid, task_name, task_oid

Метрики производительности операций

idm_perf_count_total

Количество выполненных операций IDM. Атрибут type определяет, для какого «региона» отбрасывается метрика: для методов, работающих с БД, используется лейбл SQL, для остальных методов ядра IDM используется Method.

Untyped

application, cluster, instance, job, key, namespace, pod_ip, pod_port, type

idm_perf_sum_total

Общее количество операций IDM. Атрибут type определяет, для какого «региона» отбрасывается метрика: для методов, работающих с БД, используется лейбл SQL, для остальных методов ядра IDM используется Method.

Untyped

application, cluster, instance, job, key, namespace, pod_ip, pod_port, type

idm_counters_total

Счетчик событий IDM

Untyped

application, cluster, instance, job, key, namespace, pod_ip, pod_port

Метрики взаимодействия с внешними ресурсами (provisioning)

idm_ucf_operation_count_total

Количество обработанных операций коннекторов IDM

Untyped

application, cluster, connector_name, connector_oid, instance, job, namespace, objectClass, operation, pod_ip, pod_port, resource_name, resource_oid, success

idm_ucf_operation_sum_total

Общее время обработки операций коннекторов IDM

Untyped

application, cluster, connector_name, connector_oid, instance, job, namespace, objectClass, operation, pod_ip, pod_port, resource_name, resource_oid, success

Метрики по потокам обработки задач

idm_tasks_threads_root

Потоки обработки задач IDM

Untyped

application, cluster, instance, job, namespace, pod_ip, pod_port

idm_tasks_threads_workers

Воркеры обработки задач IDM

Untyped

application, cluster, instance, job, namespace, pod_ip, pod_port

Метрики Quartz

idm_quartz_jobs_executed_total

Общее количество обработанных Quartz job IDM

Untyped

application, cluster, instance, job, key, name, namespace, oid, pod_ip, pod_port

idm_quartz_jobs_running

Количество обрабатываемых Quartz job в данный момент

Untyped

application, cluster, instance, job, key, name, namespace, oid, pod_ip, pod_port

Метрики healthcheck IDM

idm_repo_healthcheck_time

Время до получения ответа healthcheck IDM

Untyped

application, cluster, instance, job, namespace, pod_ip, pod_port

up

Состояние приложения (live-ness check)

Untyped

application, cluster, instance, job, namespace, pod_ip, pod_port

count_active_work_process_info

Количество активных потоков-обработчиков

Gauge

—

Диагностические метрики мониторинга IDM

idm_metrics_scrape_size

Размер собираемых метрик IDM

Untyped

application, cluster, instance, job, namespace, pod_ip, pod_port

scrape_series_added

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

Counter

instance

scrape_duration_seconds

Время сборки метрик, в мс

Gauge

instance

scrape_samples_scraped

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

Counter

instance

Метрики Connector Server

server_messages_sent_total

Общее количество отправленных через Connector Server сообщений

Untyped

application, cluster, instance, job, key, namespace, pod_ip, pod_port

server_connections_closed_total

Общее количество закрытых соединений с Connector Server

Untyped

application, cluster, instance, job, key, namespace, pod_ip, pod_port

server_connections_lifetime_seconds_sum

Общее время соединений с Connector Server

Untyped

application, cluster, instance, job, key, namespace, pod_ip, pod_port

server_connections_lifetime_seconds_count

Общее количество соединений с Connector Server

Untyped

application, cluster, instance, job, key, namespace, pod_ip, pod_port

server_connections_current

Количество текущих (активных в данный момент) соединений с Connector Server

Untyped

application, cluster, instance, job, key, namespace, pod_ip, pod_port

server_connections_waiting

Количество соединений, ожидающих в очереди Connector Server

Untyped

application, cluster, instance, job, key, namespace, pod_ip, pod_port

server_messages_received_total

Общее количество сообщений, полученных Conenctor Server

Untyped

application, cluster, instance, job, key, namespace, pod_ip, pod_port

server_connections_opened_total

Общее количество соединений, открытых Connector Server

Untyped

application, cluster, instance, job, key, namespace, pod_ip, pod_port

Метрики фреймворков и вспомогательные метрики:

Название

Описание

Размерность

Основные атрибуты

disk_free_bytes

Свободное место в контейнере

Gauge

path

disk_total_bytes

Общее место в контейнере

Gauge

path

hikaricp_connections

Количество подключений HikariCP

Gauge

pool

http_server_requests

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

Gauge

exception, method, outcome, status, uri

jvm_buffer_count_buffers

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

Gauge

id

jvm_buffer_memory_used_bytes

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

Gauge

id

jvm_buffer_total_capacity_bytes

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

Gauge

id

jvm_classes_loaded_classes

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

Gauge

—

jvm_classes_loaded_classes_total

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

Gauge

—

jvm_classes_unloaded

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

Counter

—

jvm_compilation_time_ms_total

Общее количество времени, затраченное виртуальной машиной на компиляцию

Untyped

jvm_gc_live_data_size_bytes

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

Gauge

—

jvm_gc_max_data_size_bytes

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

Gauge

—

jvm_gc_memory_allocated_bytes_total

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

Counter

—

jvm_gc_memory_promoted_bytes_total

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

Counter

—

jvm_gc_pause

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

Gauge

action, cause

jvm_memory_committed

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

Gauge

area, id

jvm_memory_max

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

Gauge

area, id

jvm_memory_used

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

Gauge

area, id

jvm_threads_daemon

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

Gauge

—

jvm_threads_peak

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

Gauge

—

jvm_threads_states

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

Gauge

state

process_files_max

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

Gauge

—

process_files_open

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

Gauge

—

process_uptime

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

Gauge

—

system_cpu_count

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

Gauge

—

system_cpu_usage

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

Gauge

—

system_load_average_1m

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

Gauge

—

tomcat_cache_access

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

Counter

—

tomcat_cache_hit

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

Counter

—

tomcat_connections_config_max_connections

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

Gauge

name

tomcat_connections_current_connections

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

Gauge

name

tomcat_connections_keepalive_current_connections

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

Gauge

name

tomcat_global_error

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

Counter

name

tomcat_global_received

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

Counter

name

tomcat_global_request

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

Gauge

name

tomcat_global_sent

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

Counter

name

tomcat_servlet_error

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

Counter

name

tomcat_servlet_request

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

Gauge

name

tomcat_sessions_active

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

Gauge

—

tomcat_sessions_alive

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

Gauge

—

tomcat_sessions_created

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

Counter

—

tomcat_sessions_expired

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

Gauge

—

tomcat_sessions_rejected

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

Counter

—

tomcat_threads_busy

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

Gauge

name

tomcat_threads_config_max_threads

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

Gauge

name

tomcat_threads_current

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

Gauge

name

errors_timeout

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

Counter

—

logback_events

Количество событий системного журнала

Counter

level

max_requests_size_bytes

Максимальный размер запроса

Gauge

quantile

pull_size_ratio

Коэффициент утилизации пула БД (занятые соединения / общие соединения)

Gauge

pool_name

response_time_seconds

Время ответа на HTTP-запросы

Gauge

quantile

requests_active

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

Gauge

—

requests_failed

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

Counter

—

request_total

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

Counter

—