События мониторинга#
Archiving реализует метрики, которые отражают общие показатели работы сервиса и отдельных модулей Archiving в контексте определенного источника. Для передачи метрик конечной системе используется Kafka — метрики публикуются в специальном топике либо компонентом «Объединенный мониторинг Unimon» (MONA) продукта Platform V Monitor (OPM) либо системой Custodian.
Все метрики всегда формируются в разрезе источника данных и, в зависимости от метрики, добавляются дополнительные разрезы, которые делятся на следующие типы:
source — источник (мнемоника источника, эквивалентна наименованию);
channel — модуль Archiving, соответствующий потоку данных (Init, ТКД online, ТКД offline, DRP);
type — тип данных (класс Java);
loadingId — уникальный идентификатор сеанса загрузки;
ЕrrorClass — класс по классификатору ошибок.
Подключение компонента «Объединенный мониторинг Unimon» (MONA) продукта Platform V Monitor (OPM)#
Для интеграции с компонентом MONA:
Настройте endpoind — в конфигурационный файл добавьте свойтва:
management: endpoints: web: exposure: include: prometheus,health,info metrics: export: prometheus: enabled: trueВ конфигурационном файле prometheus.yaml заполните параметры:
global.scrape_interval — частота забора метрик (в секундах) по умолчанию;
scrape_configs.metrics_path — HTTP путь до endpoint. Всегда равен
/actuator/prometheus;scrape_configs.scrape_interval — частота забора метрик (в секундах);
scrape_configs.static_configs.targets — массив, содержащий IP адреса и порты модулей Archiving, отправляющих метрики.
Для сбора метрик добавьте Bean в spring-boot контекст приложения:
@Bean public TsaMonitoringService tsaMonitoringService(MeterRegistry meterRegistry) { return new MicrometerMonitoringService(meterRegistry); }
Базовые метрики (все модули и потоки)#
ID |
Тип |
Описание |
Разрезы |
|---|---|---|---|
|
|
Количество переданных объектов за 15с |
channel, source, type |
|
|
Длительность отправки в ФД |
channel, source |
|
|
Transactions per second - количество контейнеров в секунду |
channel, source |
|
|
Количествво ошибок репликации за 15с по Init и потоку |
channel, source |
|
|
Время последнего отправленного сообщения |
channel, source |
|
|
Время последнего получения коммита от ФД (КАП) |
channel, source |
|
|
Длительность ответа Kafka - показывает наличие (большое значение) или отсутствие (малое значение) проблем с Kafka |
channel, source |
|
|
Количество ошибочных коммитов от КАП при получении журналов |
channel, source |
Метрики offline ТКД и DRP#
Метрики формируют модули ТКД и DRP: pprbod-data-quality-processor, pprbod-offline-dq-collector-v4.
ID |
Тип |
Описание |
Разрезы |
|---|---|---|---|
|
|
Количество ключей в одном запросе КАП |
channel, source, type |
|
|
Общее количество запрошенных объектов |
channel, source, type |
|
|
Общее количество полученных объектов от источника |
channel, source, type |
|
|
Общее количество отправленных в КАП объектов |
channel, source, type |
|
|
Время выполнения запроса в ММТ и источнике (синхронный sender) |
channel, source, type |
|
|
Время выполнения запроса в ММТ и источнике (асинхронный sender) |
channel, source, type |
|
|
Время между получением запроса КАП и отправкой ответа (контейнера) в КАП, включая время на стороне источника |
channel, source, type |
|
|
Время между получением ответа источника и отправкой ответа (контейнера) в КАП |
channel, source, type |
|
|
Время записи одного data container в Kafka |
channel, source, type |
|
|
Количество повторных попыток отправки запроса в сторону источника |
channel, source, type |
|
|
Количество ошибок |
channel, source, type, ЕrrorClass |
|
|
Количество ошибок |
channel, source, type |
|
|
Количество ошибок |
channel, source, type |
Примечание:
Метрики arch-journal.dq.objects_received и arch-journal.async_process_object.count, означающие количество запрошенных объектов от источника и количество отправленных контейнеров КАП в разрезе ТКД, могут отличаться. Основной причиной является получение пустого списка объектов после фильтрации по исходным ключам (запрошенным КАП) и неотправка в КАП пустого контейнера. Также возможно получение пустого списка объектов после фильтрации по белому списку с аналогичным действием. Другая возможная причина — закрытие сессии ТКД по таймауту до обработки всех данных, полученных от источника, что может случиться только в результате сбоя или плохой работоспособности трактов.
Init в любом модуле (универсальные модули Init или модули конкретных источников)#
ID |
Тип |
Описание |
Разрезы |
|---|---|---|---|
|
|
Время подготовки пачек |
source, type, loadingId |
|
|
Количество подготовленных пачек при загрузке |
source, type, loadingId |
|
|
Число пачек с ошибками (при обработке которых была ошибка) |
source, type, loadingId |
|
|
Количество успешно полученных элементов (сущностей) |
source, type, loadingId |
|
|
Количество ошибок обработки в ходе Init |
source, type, loadingId, errorClass |
|
|
Время получения одной пачки |
source, type, loadingId |
|
|
Время обработки одной пачки в ТСА |
source, type, loadingId |