Исключения
Исключения в алгоритмах нужны для того, чтобы обеспечить гибкость в выборе данных для расчетов. Это позволяет исключать или включать определенные значения в процессе выполнения алгоритмов. В зависимости от алгоритма, поддерживаются два типа исключений: черный список (blacklist) и белый список (whitelist).
Черный список (Blacklist)
Черный список используется для исключения определенных данных из расчетов алгоритма. Если значение соответствует настройкам черного списка, оно не будет участвовать в расчетах.

Черный список применяется в различных алгоритмах и позволяет управлять исключением данных на основе:
- идентификаторов UBA объектов
- полей профилирования
- периодов
Использование в разных алгоритмах
| Алгоритм | Исключаемые элементы |
|---|---|
| Словарь | Идентификаторы UBA объектов, поля профилирования |
| Статистика | Только идентификаторы UBA объектов |
| Частота | Идентификаторы UBA объектов, поля профилирования, периоды |
| Хронология | Идентификаторы UBA объектов, поля профилирования, периоды |
Паттерны
Для идентификаторов UBA объектов и дополнительных полей допускается использование паттернов с применением одного символа *.
Примеры использования паттернов:
Evgeniy*- все значения, начинающиеся наEvgeniy*Garcia- все значения, заканчивающиеся наGarcia*- любое значение
Белый список (Whitelist)
Белый список применяется только для алгоритма Словарь.
Используется для обязательного включения определенных данных в расчет.

В белом списке поддерживаются паттерны только для идентификаторов UBA объектов.
Структура индексов
И для черного списка, и для белого списка используется следующая структура индекса:
_meta.id- идентификатор записи_meta.created- дата и время создания записи_meta.updated- дата и время последнего обновления записиalgorithm_id- идентификатор алгоритма, к которому относится настройка исключенийobject_id- массив идентификаторов UBA объектов, к которым применяются исключенияexclude- массив условий для исключения записи на основе полей, гдеfield- название поля, аvalue- его значениеignored_weekend- флаг, указывающий, нужно ли игнорировать выходные при расчетахperiods- массив периодов времени. Все записи, соответствующие указанным периодам, не участвуют в расчетах алгоритма
Каждый элемент периода имеет формат <число><единица времени>, где:
- Число - определяет порядковую позицию на временной оси
- Единица времени - постфикс:
y- годM- месяцd- день месяцаdw- день неделиh- часm- минутаs- секунда
Примеры значений: 1h - первый час дня, 2M - второй месяц года, 15d - пятнадцатый день месяца.
Пример json-объекта индекса
{
"ignored_weekend": false,
"_meta": {
"created": "2025-04-08T12:23:08.927Z",
"id": "4705d342e4a12262fae710eba12ee8d28df622b9",
"updated": "2025-04-08T12:23:08.927Z"
},
"periods": ["1h","2h","3h","2M","15d"],
"exclude": [
{
"field": "status",
"value": "success*"
},
{
"field": "record",
"value": "*"
}
],
"algorithm_id": "0xGgo5UBPL4WRSl6AKeD",
"object_id": ["Evgeniy*", "AnthonyGarcia", "BarbaraBennett"]
}