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

eventstats

Описание

Выполняет статистические операции над данными. Сохраняет результаты в новом поле каждого события.

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

Синтаксис

eventstats <functions-expression> ["," <functions-expression>]  [<by_expression>]

Аргументы

Подробное описание см. в команде stats.


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

В следующих примерах используется индекс 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

В данном примере eventstats добавляет к каждому событию количество сессий пользователя. Все 7 исходных событий сохраняются - в отличие от stats, строки не схлопываются.

source auth_sessions
| eventstats count by user
@timestampuserhostactionbytescount
2026-06-24T08:00:00Zadmindc-01logged-in15003
2026-06-24T08:15:00Zadmindc-01file-access32003
2026-06-24T08:30:00Zadminsrv-01logged-in8003
2026-06-24T09:00:00Zjohn.doeworkstation-01logged-in12003
2026-06-24T09:10:00Zjohn.doeworkstation-01file-access45003
2026-06-24T09:20:00Zjohn.doeworkstation-02logged-in9503
2026-06-24T10:00:00Zguestkiosk-01logged-in3001

Пример 2

В данном примере сначала вычисляется средний трафик avg(bytes) по каждому пользователю, затем where оставляет только события, в которых трафик превышает среднее значение по группе. Это позволяет выявить аномально высокие сессии относительно поведения конкретного пользователя.

source auth_sessions
| eventstats avg(bytes) by user
| where bytes > 'avg(bytes)'

Среднее по admin - 1833.33, по john.doe - 2216.67. В результате остаются только события, где трафик превышает это значение:

@timestampuserhostactionbytesavg(bytes)
2026-06-24T08:15:00Zadmindc-01file-access32001833.333333
2026-06-24T09:10:00Zjohn.doeworkstation-01file-access45002216.666667

Пример 3

В данном примере eventstats собирает все уникальные хосты пользователя в multivalue-массив values(host). Поле добавляется к каждой строке, что позволяет видеть полный список хостов прямо в контексте каждого события.

source auth_sessions
| eventstats values(host) by user
@timestampuserhostactionbytesvalues(host)
2026-06-24T08:00:00Zadmindc-01logged-in1500["dc-01", "srv-01"]
2026-06-24T08:15:00Zadmindc-01file-access3200["dc-01", "srv-01"]
2026-06-24T08:30:00Zadminsrv-01logged-in800["dc-01", "srv-01"]
2026-06-24T09:00:00Zjohn.doeworkstation-01logged-in1200["workstation-01", "workstation-02"]
2026-06-24T09:10:00Zjohn.doeworkstation-01file-access4500["workstation-01", "workstation-02"]
2026-06-24T09:20:00Zjohn.doeworkstation-02logged-in950["workstation-01", "workstation-02"]
2026-06-24T10:00:00Zguestkiosk-01logged-in300["kiosk-01"]