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

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:

  1. Настройте endpoind — в конфигурационный файл добавьте свойтва:

    management:
    ⁣ ⁣endpoints:
    ⁣ ⁣ ⁣ ⁣web:
    ⁣ ⁣ ⁣ ⁣ ⁣ ⁣exposure:
    ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣include: prometheus,health,info
    ⁣ ⁣metrics:
    ⁣ ⁣ ⁣ ⁣export:
    ⁣ ⁣ ⁣ ⁣ ⁣ ⁣prometheus:
    ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣enabled: true
    
  2. В конфигурационном файле prometheus.yaml заполните параметры:

    • global.⁣scrape_interval — частота забора метрик (в секундах) по умолчанию;

    • scrape_configs.⁣metrics_path — ⁣HTTP путь до endpoint. Всегда равен /actuator/prometheus;

    • scrape_configs.⁣scrape_interval — частота забора метрик (в секундах);

    • scrape_configs.⁣static_configs.targets — массив, содержащий IP адреса и порты модулей Archiving, отправляющих метрики.

  3. Для сбора метрик добавьте Bean в spring-boot контекст приложения:

    @Bean
    public TsaMonitoringService tsaMonitoringService(MeterRegistry meterRegistry) {
       return new MicrometerMonitoringService(meterRegistry);
    }
    

Базовые метрики (все модули и потоки)#

ID

Тип

Описание

Разрезы

arch-journal.async_process_object.count

counter

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

channel, source, type

arch-journal.async_process_object.duration

stopwatch

Длительность отправки в ФД

channel, source

arch-journal.async_process_object.frequency

counter

Transactions per second - количество контейнеров в секунду

channel, source

arch-journal.errors.count

counter

Количествво ошибок репликации за 15с по Init и потоку

channel, source

arch-journal.timestamp_of_last_sent_journal.timestamp

gauge

Время последнего отправленного сообщения

channel, source

arch-journal.timestamp_of_last_sent_journal.commit_timestamp

gauge

Время последнего получения коммита от ФД (КАП)

channel, source

arch-journal.duration_of_response_kafka.timestamp

stopwatch

Длительность ответа Kafka - показывает наличие (большое значение) или отсутствие (малое значение) проблем с Kafka

channel, source

arch-journal.error_sending.count

counter

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

channel, source

Метрики offline ТКД и DRP#

Метрики формируют модули ТКД и DRP: pprbod-data-quality-processor, pprbod-offline-dq-collector-v4.

ID

Тип

Описание

Разрезы

arch-journal.dq.one_request_key_count

gauge

Количество ключей в одном запросе КАП

channel, source, type

arch-journal.dq.objects_requested

counter

Общее количество запрошенных объектов

channel, source, type

arch-journal.dq.objects_received

counter

Общее количество полученных объектов от источника

channel, source, type

arch-journal.dq.objects_sent

counter

Общее количество отправленных в КАП объектов

channel, source, type

arch-journal.dq.execute_time_sync

stopwatch

Время выполнения запроса в ММТ и источнике (синхронный sender)

channel, source, type

arch-journal.dq.execute_time_async

stopwatch

Время выполнения запроса в ММТ и источнике (асинхронный sender)

channel, source, type

arch-journal.dq.full_processing_time

stopwatch

Время между получением запроса КАП и отправкой ответа (контейнера) в КАП, включая время на стороне источника

channel, source, type

arch-journal.dq.tsa_processing_time

stopwatch

Время между получением ответа источника и отправкой ответа (контейнера) в КАП

channel, source, type

arch-journal.dq.kafka_time

stopwatch

Время записи одного data container в Kafka

channel, source, type

arch-journal.dq.retry_sent_count

counter

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

channel, source, type

arch-journal.dq.error_catch_count

counter

Количество ошибок

channel, source, type, ЕrrorClass

arch-journal.dq.ts_error_count

counter

Количество ошибок ts_error транспортного слоя

channel, source, type

arch-journal.dq.object_not_found_count

counter

Количество ошибок object_not_found

channel, source, type

Примечание:

Метрики arch-journal.dq.objects_received и arch-journal.async_process_object.count, означающие количество запрошенных объектов от источника и количество отправленных контейнеров КАП в разрезе ТКД, могут отличаться. Основной причиной является получение пустого списка объектов после фильтрации по исходным ключам (запрошенным КАП) и неотправка в КАП пустого контейнера. Также возможно получение пустого списка объектов после фильтрации по белому списку с аналогичным действием. Другая возможная причина — закрытие сессии ТКД по таймауту до обработки всех данных, полученных от источника, что может случиться только в результате сбоя или плохой работоспособности трактов.

Init в любом модуле (универсальные модули Init или модули конкретных источников)#

ID

Тип

Описание

Разрезы

arch-journal.init.estimate_time

stopwatch

Время подготовки пачек

source, type, loadingId

arch-journal.init.batch_count

gauge

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

source, type, loadingId

arch-journal.init.batch_error_count

counter

Число пачек с ошибками (при обработке которых была ошибка)

source, type, loadingId

arch-journal.init.items_count

counter

Количество успешно полученных элементов (сущностей)

source, type, loadingId

arch-journal.init.error_count

counter

Количество ошибок обработки в ходе Init

source, type, loadingId, errorClass

arch-journal.init.batch_load_time

stopwatch

Время получения одной пачки

source, type, loadingId

arch-journal.init.data_container_accept_time

stopwatch

Время обработки одной пачки в ТСА

source, type, loadingId