Фильтр JSON
Фильтрующее выражение в формате JSON для отбора записей журнала.
string JsonFilter
|
Фильтрация возможна только для столбцов с идентификаторами (переменными): source, timestamp, severity, message, pid и machine.
Условие фильтрации представляет собой одиночный ({"ключ": "значение"}) или составной (состоящий из нескольких объектов) объект JSON.
Составной объект формируется с помощью:
логических операций:
конъюнкция - "and"
дизъюнкция - "or"
инверсия - "not"
операций сравнения:
больше - ">"
больше либо равно - ">="
меньше - "<"
меньше либо равно - "<="
соответствует - "=="
не соответствует - "!="
В зависимости от используемой операции составной объект JSON может иметь вид:
{
"and": [ARRAY]
}
{
"or": [ARRAY]
}
{
"not": { OBJECT }
}
{
"операция сравнения": { VARIABLE }
}
|
(операцию сравнения "==" можно не указывать, т.е. вид объекта - { VARIABLE })
где:
VARIABLE - переменная. Обозначается структурой <имя переменной>: <значение переменной>
OBJECT - переменная или составной объект JSON любого из указанных выше форматов
ARRAY - массив. Может состоять из переменных и составных объектов JSON (любого формата) в различных комбинациях
Примеры
Отфильтровать записи с важностью (severity) равной 2 (ошибка):
{
ㅤㅤ"severity": 2
}
|
Отфильтровать записи, где поле message содержит подстроку Exception:
{
"message": "*Exception*"
}
|
Выбрать записи, где важность (severity) равна 2 и выполняется одно из условий: сообщение содержит подстроку поставлен или источник (source) не равен TU_212.
{
"and":[
{
"severity":2
},
{
"or":[
{
"message":"*поставлен*"
},
{
"not":{
"source":"TU_212"
}
}
]
}
]
}
|
