Logstash-удалить глубокое поле из файла json
у меня есть файл JSON, который я отправляю ES через logstash. Я хотел бы удалить 1 поле (это глубокое поле ) в JSON - только если значение равно NULL.
часть JSON:
"input": {
"startDate": "2015-05-27",
"numberOfGuests": 1,
"fileName": "null",
"existingSessionId": "XXXXXXXXXXXXX",
**"radius": "null",**
"nextItemReference": "51",
"longitude": -99.12,
"endDate": "2015-05-29",
"thumbnailHeight": 200,
"thumbnailWidth": 300,
"latitude": 19.42,
"numOfRooms": "1"
},
входит в - это :
if [input.radius] == "null" {
mutate {
remove_field => [ "input.radius" ]
}
}
Это, конечно, внутри фильтра.
Как удалить это поле, если значение равно null?
1 ответов
вложенные поля не ссылаются на [name.subfield]
но [field][subfield]
. Это должно сработать для вас:
if [input][radius] == "null" {
mutate {
remove_field => [ "[input][radius]" ]
}
}
обратите внимание, что если нет поля" вход", то [input][radius]
ссылка создаст пустой словарь" ввода". Чтобы избежать этого, вы можете сделать следующее:
if [input] and [input][radius] == "null" {
mutate {
remove_field => [ "[input][radius]" ]
}
}
посмотреть документация Logstash более подробную информацию.