Условные операции
cidrmatch
Описание: Возвращает true или false в зависимости от того, попадает ли значение в условие выборки
В примере ret будет присвоено значение true
... | eval ipa="192.168.3.2", ret=cidrmatch("192.0.0.0/8", ipa)
В примере ret будет присвоено значение false
... | eval ipa="10.22.3.2", ret=cidrmatch("192.0.0.0/8", ipa)
coalesce
Описание: Возвращает первое не нулевое (null) значение из списка переменных. Перебор осуществляется в порядке перечисления полей в запросе
В примере res будет первое не нулевое (null) значение одной переменных user, message, message2
... | eval res=coalesce(user,message,message2)
in
Описание: Возвращает true, если в поле найдено искомое значение (значения) или false, если не было найдено ни одного совпадения
В примере user имеет значение "Alexander", res будет присвоено значение true
... | eval res=in(user, "Aleksey", "Ilya", "Alexander")
В примере user имеет значение "Alexander", res будет присвоено значение false
... | eval res=in(user, "Aleksey", "Ilya")
like
Описание: Возвращает true, если в поле найдено совпадение с паттерном или false, если не было найдено ни одного совпадения
В примере user имеет значение "Alexander", res будет присвоено значение true
... | eval res=like(user, "Ale%")
В примере user имеет значение "Alexander", res будет присвоено значение false
... | eval res=like(user, "Alek%")
match
Описание: Возвращает true,если в поле найдено совпадение с java regexp или false, если не было найдено ни одного совпадения
В примере testVal имеет значение "hello wolrd", res будет присвоено значение true
... | eval res=match(testVal, "^([a-zA-Z].*)")
В примере testVal имеет значение "hello wolrd", res будет присвоено значение false
... | eval res=match(testVal, "^([a-zA-Z]*)")
nullif
Описание: Принимает на вход два значения/поля. Если поля совпадают, возвращает null, если не совпадают, возвращает значение первого поля
В примере testVal имеет значение "hello wolrd", testVal2 имеет значение "hello wolrd". res будет присвоено значение null
... | eval res=nullif(testVal, testVal2)
В примере testVal имеет значение "hello wolrd", testVal2 имеет значение "test case". res будет присвоено значение "hello wolrd"
... | eval res=nullif(testVal, testVal2)
case
Описание: Принимает на вход пары условие - значение, в случае выполнения условия, возвращает значение. Перебор пар идет в порядке написания и возвращается первое успешное условие
В примере 'type' имеет значение "vpn", extended_status будет присвоено значение "VirtualPN"
... | eval extended_status=case('type' == "vpn", "VirtualPN", 'type' == "", "NA")
В примере 'type' имеет пустое значение, extended_status будет присвоено значение "NA"
... | eval extended_status=case('type' == "vpn", "VirtualPN", 'type' == "", "NA")
if
Описание: Выполняет проверку на совпадение условия, в случае совпадения возвращает первое значение, в случае не совпадения - второе
В примере errNo имеет значение -1, res будет присвоено значение "OK"
... | eval res = if(errNo == -1, "OK", "NOTOK")
В примере errNo имеет значение 503, res будет присвоено значение "NOTOK"
... | eval res = if(errNo == -1, "OK", "NOTOK")
validate
Описание: Принимает на вход пары условие - значение, в случае первого не выполнения условия, возвращает значение. Перебор пар идет в порядке написания и возвращается первое успешное условие
В примере log.offset имеет значение 3090005, validate_result будет присвоено значение "MIN"
... | eval validate_result=validate(log.offset < 3090000, "MIN", (log.offset >= 3090001 AND log.offset <= 3100000), "MEDIUM", log.offset > 3100000, "MAX")
В примере log.offset имеет значение 3080000, validate_result будет присвоено значение "MEDIUM"
... | eval validate_result=validate(log.offset < 3090000, "MIN", (log.offset >= 3090001 AND log.offset <= 3100000), "MEDIUM", log.offset > 3100000, "MAX")
TRUE, FALSE, NULL
Описание: Присваивает полю значение true, false, null
В примере res будет присвоено значение true
... | eval res = TRUE()
В примере res будет присвоено значение false
.. | eval res = FALSE()
В примере res будет присвоено значение null
... | eval res = NULL()