Много раз нам нужно будет сделать некоторые вычисления для полей, которые уже доступны в событиях Splunk. Мы также хотим сохранить результат этих вычислений в качестве нового поля, которое впоследствии будет использоваться при различных поисках. Это стало возможным благодаря использованию концепции вычисляемых полей в поиске Splunk.
Простейший пример — показать первые три символа дня недели вместо полного названия дня. Нам нужно применить определенную функцию Splunk для достижения этой манипуляции с полем и сохранить новый результат под новым именем поля.
пример
В файле журнала Web_application есть два поля с именами bytes и date_wday. Значение в поле байтов — это количество байтов. Мы хотим отобразить это значение как ГБ. Для этого потребуется разделить поле на 1024, чтобы получить значение в ГБ. Нам нужно применить этот расчет к полю байтов.
Аналогично, date_wday отображает полное название дня недели. Но нам нужно отобразить только первые три символа.
Существующие значения в этих двух полях показаны на рисунке ниже —
Использование функции eval
Для создания вычисляемого поля мы используем функцию eval. Эта функция сохраняет результат расчета в новом поле. Мы собираемся применить следующие два расчета —
# divide the bytes with 1024 and store it as a field named byte_in_GB Eval byte_in_GB = (bytes/1024) # Extract the first 3 characters of the name of the day. Eval short_day = substr(date_wday,1,3)
Добавление новых полей
Мы добавляем новые поля, созданные выше, в список полей, которые мы отображаем как часть результатов поиска. Для этого мы выбираем « Все поля» и ставим галочку напротив названия этих новых полей, как показано на рисунке ниже.
Отображение рассчитанных полей
После выбора полей выше, мы можем увидеть вычисленные поля в результатах поиска, как показано ниже. Поисковый запрос отображает рассчитанные поля, как показано ниже —