Перейти к основному содержимому
Версия: 2.5

События обогащения

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

Конвейер событий​

Обменник srm_exchange — типа topic, durable. Все события публикуются в него; потребители подписываются по маске ключа маршрутизации.

Что происходит по пути в журнал:

  1. Logstash забирает события по маске srm.statistic.*.
  2. Подставляет в текст сообщения значения из msg_vars: Found {count_cis} ci(s). превращается в Found 12 ci(s)..
  3. Переводит тип события и статус на русский — поля event_type_ru, status_ru.
  4. Приводит список ошибок к структуре errors.items.
  5. Убирает служебные поля timestamp, caller_id, notification_id, msg_vars, debug.
  6. Складывает результат в посуточный индекс событий OpenSearch.

Раз в минуту фоновая свёртка группирует события по root_task_id и считает по каждому запуску сводку: время начала и окончания, длительность, число уникальных КЕ, разбивку по статусам, итоговый статус и признак завершённости. Именно эту сводку показывает таблица запусков.

Пользовательские события​

Публикуются для оповещения пользователя о начале и завершении обогащения.

Начало обогащения​

Ключ маршрутизации: srm.enrichment.Started Время публикации: в момент начала обогащения

{
"notification_id": "UUID", // Идентификатор для доставки уведомления пользователю
"ci_id": "UUID", // Идентификатор обогащаемой КЕ
"ci_type_name": "string" // Системное имя типа КЕ
}

Завершение обогащения​

Ключ маршрутизации: srm.enrichment.Finished Время публикации: после окончания всех операций обогащения

{
"notification_id": "UUID", // Идентификатор уведомления
"target_ci_id": "UUID", // Стартовая КЕ запуска
"target_ci_name": "string", // Имя стартовой КЕ
"target_ci_type": "string", // Системное имя типа стартовой КЕ
"target_ci_type_label": "string", // Отображаемое имя типа стартовой КЕ

"start_time": "datetime", // Начало запуска
"end_time": "datetime", // Окончание запуска
"duration_ms": 0, // Длительность запуска в миллисекундах
"updated_at": "datetime", // Время формирования события

"summary_status": "OK", // Итоговый статус запуска: OK | WARNING | ERROR
"enrichment_metrics": {
"total_ci_count": 0, // Всего обработано КЕ
"enriched_successfully": 0, // Из них без замечаний
"enriched_with_warning": 0, // Из них с предупреждениями
"enriched_with_error": 0 // Из них с ошибками
},
"by_ci_type": [ // Разбивка по типам КЕ
{
"ci_type_name": "string", // Системное имя типа КЕ
"ci_type_label": "string", // Отображаемое имя типа КЕ
"doc_count": 0, // Количество событий по типу
"ci_count": 0 // Количество КЕ этого типа
}
]
}

События статистики​

Публикуются на каждом шаге обогащения — из них складывается журнал обогащения.

Общие поля​

Эти поля есть у всех событий статистики:

ПолеТипОписание
messagestringТекст сообщения с плейсхолдерами вида {name}
msg_varsobjectЗначения для подстановки в message
errorsarrayСписок ошибок: тип исключения, заголовок, детализация, контекст
statusstringOK, WARNING или ERROR
task_idUUIDИдентификатор задачи — обогащения одной КЕ
root_task_idUUIDИдентификатор запуска обогащения
ci_idUUIDИдентификатор КЕ
ci_type_namestringСистемное имя типа КЕ
ci_type_labelstringОтображаемое имя типа КЕ
timestampdatetimeВремя события
примечание

Поле errors заполняется автоматически из текущего исключения. Если исключение не является ошибкой приложения, в errors попадает его тип и последние строки трассировки — именно они видны в столбце Ошибки журнала.

События по КЕ​

Ключи маршрутизации: srm.statistic.CIEnrichmentSuccess, srm.statistic.CIEnrichmentWarning, srm.statistic.CIEnrichmentError

К общим полям добавляется:

ПолеТипОписание
ci_namestringИмя КЕ

Когда публикуются:

  • Success — начало и завершение обогащения КЕ, завершение этапа атрибутов, завершение этапа связей, начало и завершение обработки дополнительных связей.
  • Warning — идентификация переопределила КЕ; не удалось подготовить TQL-фильтр дополнительной связи.
  • Error — критический сбой обогащения КЕ; ошибка подготовки фильтра для поиска КЕ.

События по атрибутам​

Ключи маршрутизации: srm.statistic.AttrEnrichmentSuccess, srm.statistic.AttrEnrichmentWarning, srm.statistic.AttrEnrichmentError

К общим полям добавляется:

ПолеТипОписание
attr_namestringСистемное имя атрибута
attr_labelstring | nullОтображаемое имя атрибута
attr_typestringТип значения атрибута

Когда публикуются:

  • Success — после сохранения значения атрибута.
  • Warning — не удалось получить данные для атрибута.
  • Error — полученные данные не удалось сохранить в атрибут.
примечание

У событий по атрибутам нет поля ci_name: на момент их публикации имя КЕ ещё не присвоено — это происходит позже, на этапе присвоения имени.

События по связям​

Ключи маршрутизации: srm.statistic.LinkEnrichmentSuccess, srm.statistic.LinkEnrichmentWarning, srm.statistic.LinkEnrichmentError

К общим полям добавляется:

ПолеТипОписание
ci_namestringИмя КЕ
cit_link_idUUIDИдентификатор настройки связи в ТКЕ
link_type_namestringСистемное имя типа связи
link_type_labelstringОтображаемое имя типа связи
dst_ci_type_namestringСистемное имя типа связанного КЕ
dst_ci_type_labelstringОтображаемое имя типа связанного КЕ

Когда публикуются:

  • Success — после обработки связи и после обработки дополнительной связи.
  • Warning — повторное обогащение КЕ в рамках запуска; несколько элементов конфигурации схлопнулись в одну КЕ; связанную КЕ пришлось пропустить; не удалось заполнить атрибуты связи.
  • Error — не удалось получить или разобрать конфигурацию связи; не удалось создать связанную КЕ.

Завершение запуска​

Ключ маршрутизации: srm.statistic.AdditionalLinkFinished Время публикации: после обработки дополнительных связей по всему запуску

ПолеТипОписание
messagestringТекст сообщения
msg_varsobjectЗначения для подстановки
root_task_idUUIDИдентификатор запуска обогащения
statusstringOK или ERROR

По этому событию запуск переходит в статус Завершено в таблице запусков.