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

timechart

Описание

Выполняет поиск и генерацию массива данных, распределенных по временной шкале.

Синтаксис

timechart [<timefield>] [<limit>] [<span>] [<bins>] [<useother>] <functions-expression> ["," <functions-expression>] [<by_expression>]

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

functions-expression Обязательно использование хотя бы одной из функций:

ПараметрСинтаксисОписание
countcount | count(<field>)Вычисляет количество событий, содержащих поле. Если поле не указано, рассчитывает общее количество событий.
avgavg(<field>)Вычисляет среднее значение по заданному полю.
dcdc(<field>)Вычисляет количество уникальных значений в заданном поле.
maxmax(<field>)Вычисляет максимальное значение по заданному полю.
minmin(<field>)Вычисляет минимальное значение по заданному полю.
sumsum(<field>)Вычисляет сумму значений по заданному полю.
percperc(<field>, <percent>)Вычисляет персентиль по заданному полю и проценту.
medianmedian(<field>)Вычисляет медиану по заданному полю.

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

ПараметрСинтаксисПо умолчаниюОписание
spanspan=<span>см. Предопределенные значения spanОпределяет интервал для распределения отрезков.
timefieldtimefield=<field>@timestampИмя поля в котором хранится временная метка.
binsbins=<int>100Максимальное количество отрезков для расчета.
limitlimit=<int>10Максимальное количество уникальных значений by_field, которые будут использоваться в названии столбцов результата. Остальные значения объединятся в поле OTHER.
useotheruseother=<boolean>trueПри значении false параметр limit не учитывается.
by_expressionby <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 месяц

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

Пример 1

Расчет среднего количества сообщений для каждого пользователя по часовым интервалам:

Пример №1
... | timechart limit=5 span=1h avg(msgNums) by user

Пример 2

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

Пример №2
... | timechart bins=15 span=15m count by event.outcome

Для входных данных, представленных ниже в качестве примера, строится столбчатая диаграмма c группировкой серий:

usernamerequestpathstatusevent.outcome
IvanovGET/veil200success
PetrovGET/cherry200success
IvanovPOST/fuel403failure
AndreevGET/quilt200success

Столбчатая диаграмма


Пример 3

Подсчет общего количества событий и максимального смещения лога по 3-часовым интервалам:

Пример №3
... | timechart span=3h count(log.offset), max(log.offset) by event

Пример 4

В данном примере для каждого часового интервала система вернет значение поля msgNums, которое встречается в 95 процентах случаев:

Пример №4
... | timechart span=1h perc(msgNums, 95)

Пример 5

Динамика объемов ответа сетевого трафика для каждой операционной системы по 30-минутным интервалам с ограничением на количество уникальных хостов:

Пример №5
| timechart span=30m sum(http.response.body.bytes) as 'Объем, КБ' by user_agent.os.full
| eval 'Объем, КБ'=round('Объем, КБ'/1024)

В данном примере создается новое поле Объем, КБ, которое преобразует значения поля http.response.body.bytes в килобайты, команда round округляет килобайты до 2 значащий цифр и сохраняет в новое поле Объем, КБ.

Для каждого уникального значения хоста user_agent.os.full рассчитывается динамика объемов ответа сетевого трафика Объем, КБ за 30-минутный интервал.

Пример входных данных:

user.namehttp.response.body.bytesuser_agent.os.full@timestamp
Ivanov50988Mac OS X2025-05-26T15:25:39.697685Z
Petrov10772Windows 82025-05-26T15:25:33.003472Z
Borisov51954Windows 102025-05-26T15:25:24.338701Z
Ermolov10541iPhone OS 4.2.62025-05-26T15:25:24.290198Z
Andreev10646Android 2.3.32025-05-26T15:25:25.223198Z

Результатом выполнения запроса может быть следующая таблица:

Android 2.3.3Mac OS XWindows 10Windows 8iPhone OS 4.2.6@timestamp
1813001332571362025-05-26T16:00:00.000Z
2303502332372832025-05-26T16:30:00.000Z
5685033882883782025-05-26T17:00:00.000Z

Линейная диаграмма