Хронология
Вычисляет информацию о характерном, исторически сложившемся, поведении объекта в определенный промежуток времени. Используется для обнаружения аномалий, таких как:
- данное время входа необычно для пользователя
- данное время подключения необычно для пользователя
Описание алгоритма
- К данным индексов источников применяется общий и временной фильтры
- Каждая запись данных приводится к общему виду согласно настройкам обрабатываемых полей
- Данные разбиваются по уникальным сочетаниям значений обрабатываемых полей
- Каждая часть данных полученная на шаге 3 разбивается на сегменты в рамках периода расчета, каждому сегменту назначается идентификатор.
- Для каждого сегмента считается количество событий.
- По всем сегментам с одним идентификатором считается статистика.
Входные параметры
- Фильтр - общий фильтр источников (используются выражения из команды search)
- Индекс для результатов - индекс в который записываются результаты выполнения
- Обрабатываемые поля - маппинг полей источников на поля результата
- Период расчета - основной временной диапазон, в котором будут рассматриваться определенные сегменты
- Сегмент - сегмент временного интервала, в течении которого будет произведен расчет метрик
Примеры заполнения периода расчетов и сегмента:примечаниеПериод расчетоврекомендуется задавать кратнымСегменту. Чтобы избежать не полных сегментов на границах периода расчетов.1yгод,1Mмесяц,1dдень,1Hчас,1mминута,1sсекунда
- Пропускать интервалы без данных - пустые интервалы не учитываются в расчете статистики

Настройка обрабатываемого поля
- Название - название поля в индексе с результатами
- Шаблон индекса / Название поля в источнике - список шаблонов индексов и соответствующих полей в них, которые будут извлекаться в результат
Входные данные
Входные данные определяются индексами и временным интервалом в общих настройках.
Выходные данные
В результате выполнения алгоритма в индексе результатов появляется несколько записей. Каждая запись содержит статистику по одному из сегментов по всем периодам расчетов.
- _meta.calculation.id- идентификатор настройки алгоритма в политике профилирования
- _meta.calculation.type- тип алгоритма
- _meta.calculation.start_time- левая граница временного фильтра источников данных на момент запуска
- _meta.calculation.end_time- правая граница временного фильтра источников данных на момент запуска
- _meta.execution.start_time- время запуска политики профилирования
- _meta.execution.id- идентификатор запуска политики профилирования
- _meta.object.identity- массив идентификаторов UBA объекта
- _meta.object.id- технический идентификатор UBA объекта
- _calculation.extended_stats- расширенная статистика по всем интервалам
- _calculation.percentiles- процентиль по всем интервалам
- _calculation.big_span- величина периода расчета
- _calculation.small_span- величина сегмента в периоде расчета
- _calculation.small_span_id- идентификатор сегмента в периоде расчета
- _calculation.by_fields- сочетание значений обрабатываемых полей для которых рассчитана статистика
Пример json-объекта результата
{
  "_index": "uba-temporal-event-code-by-host-10m-per-hour",
  "_id": "lwCOmY4BcdU8iNUUPAhd",
  "_score": 4.820416,
  "_source": {
    "_meta": {
      "calculation": {
        "start_time": "2024-03-25T12:06:58.400Z",
        "end_time": "2024-04-01T12:06:58.400Z",
        "id": "ETf5gI4B6hVcVe8zFzxS",
        "type": "temporal"
      },
      "execution": {
        "start_time": "2024-04-01T12:06:58.380Z",
        "id": "kQCOmY4BcdU8iNUUOAhM"
      },
      "object": {
        "identity": [
          "ACME-001"
        ],
        "id": "ecac9328ce53b5405729ff983dff22a6adde6ab4"
      }
    },
    "_calculation": {
      "extended_stats": {
        "count": 169,
        "min": 0,
        "max": 1,
        "avg": 0.04142011834319527,
        "sum": 7,
        "sum_of_squares": 7,
        "variance": 0.03970449213963097,
        "variance_population": 0.03970449213963097,
        "variance_sampling": 0.03994082840236687,
        "std_deviation": 0.19925986083411523,
        "std_deviation_population": 0.19925986083411523,
        "std_deviation_sampling": 0.19985201625794738,
        "std_deviation_bounds": {
          "upper": 0.4399398400114257,
          "lower": -0.3570996033250352,
          "upper_population": 0.4399398400114257,
          "lower_population": -0.3570996033250352,
          "upper_sampling": 0.44112415085909,
          "lower_sampling": -0.3582839141726995
        }
      },
      "percentiles": {
        "values": {
          "1.0": 0,
          "5.0": 0,
          "25.0": 0,
          "50.0": 0,
          "75.0": 0,
          "95.0": 0,
          "99.0": 1
        }
      },
      "small_span": "10m",
      "big_span": "1h",
      "small_span_id": "4",
      "by_fields": {
        "event_code": "4723"
      }
    }
  }
}