Условные операции
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()