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

bin

Описание

Помещает непрерывные числовые значения в дискретные наборы(ячейки) по заданному полю <field>.

Синтаксис

| bin [<bin-options>...] <field> [AS <newfield>]

Обязательные аргументы

ПараметрСинтаксисОписание
field<field>Название поля, по которому данные разделяются на ячейки.

Опциональные аргументы

Определение лимитов и параметров для разделения данных при анализе:

ПараметрСинтаксисПо умолчаниюОписание
binsbins=<int>100Максимальное количество отрезков для расчета.
spanspan = (+|-)<int>(s|m|h|d|w|month)См. Предопределенные значения span.Интервал для распределения отрезков.
newfieldas <field>Новое название для поля.

Допустим следующий формат временных параметров: (+|-)<int>(s|m|h|d|w|month):

  • s/sec/secs/second/seconds - секунды
  • m/min/mins/minute/minutes - минуты
  • h/hr/hrs/hour/hours - часы
  • d/day/days - дни
  • w/week/weeks - недели
  • mon/month/months - месяцы
Предопределенные значения span

Если не указан параметр span для временного поля, будут действовать предопределенные параметры.

Перечень предопределенных параметров:

Временной интервалspan
последние 15 минут10 секунд
последние 60 минут1 минута
последние 4 часа5 минут
последние 24 часа30 минут
последние 7 дней1 день
последние 30 дней1 день
последний год1 месяц

Если не указан параметр span для числового поля, он рассчитывается как (максимальное значение поля) / (максимальное количество bins).

предупреждение

Нельзя указывать временной span (<int>(s|m|h|d|w|month)) для числового поля и числовой span (<int>) для временного поля.


Примеры запросов

В следующих примерах используется индекс auth_sessions:

@timestampuserhostactionbytes
2026-06-24T08:00:00Zadmindc-01logged-in1500
2026-06-24T08:15:00Zadmindc-01file-access3200
2026-06-24T08:30:00Zadminsrv-01logged-in800
2026-06-24T09:00:00Zjohn.doeworkstation-01logged-in1200
2026-06-24T09:10:00Zjohn.doeworkstation-01file-access4500
2026-06-24T09:20:00Zjohn.doeworkstation-02logged-in950
2026-06-24T10:00:00Zguestkiosk-01logged-in300

Пример 1

В данном примере bin округляет временное поле @timestamp вниз до ближайших 30 минут. stats подсчитывает количество событий в каждом интервале.

source auth_sessions
| bin span=30m @timestamp
| stats count by @timestamp

События 08:00 и 08:15 попадают в один интервал 08:00, события 09:00, 09:10 и 09:20 - в интервал 09:00:

@timestampcount
2026-06-24T08:00:00.000Z2
2026-06-24T08:30:00.000Z1
2026-06-24T09:00:00.000Z3
2026-06-24T10:00:00.000Z1

Пример 2

В данном примере bin разбивает числовое поле bytes на интервалы шириной 1000. stats подсчитывает количество событий в каждом диапазоне.

source auth_sessions
| bin span=1000 bytes
| stats count by bytes
bytescount
0 - 10003
1000 - 20002
3000 - 40001
4000 - 50001

Пример 3

В данном примере результат округления сохраняется в новое поле bytes_bucket через as, исходное поле bytes остается без изменений.

source auth_sessions
| bin span=1000 bytes as bytes_bucket
| table @timestamp, user, bytes, bytes_bucket
@timestampuserbytesbytes_bucket
2026-06-24T08:00:00Zadmin15001000 - 2000
2026-06-24T08:15:00Zadmin32003000 - 4000
2026-06-24T08:30:00Zadmin8000 - 1000
2026-06-24T09:00:00Zjohn.doe12001000 - 2000
2026-06-24T09:10:00Zjohn.doe45004000 - 5000
2026-06-24T09:20:00Zjohn.doe9500 - 1000
2026-06-24T10:00:00Zguest3000 - 1000

Пример 4

В данном примере параметр bins=3 задает максимальное количество интервалов. Ширина интервала рассчитывается автоматически как max_value / bins - для поля bytes это 4500 / 3 = 1500.

source auth_sessions
| bin bins=3 bytes
| stats count by bytes
bytescount
0 - 15004
1500 - 30001
3000 - 45001