Исключения
Исключения в алгоритмах нужны для того, чтобы обеспечить гибкость в выборе данных для расчетов. Это позволяет исключать или включать определенные значения в процессе выполнения алгоритмов. В зависимости от алгоритма, поддерживаются два типа исключений: черный список (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"]
}