Как работать с различными типами структурированных данных в ElasticSearch

#elasticsearch #structured-logging

Вопрос:

У меня есть два приложения, сначала регистрируйте сообщения в формате:

 {  "property": "foo" }  

в то время как второй:

 {  "property": { "bar": "baz" } }  

Elastic отбрасывает такие журналы, потому что не может определить сопоставление для поля «свойство» (иногда это строка, а иногда вложенный объект).

Проблема все еще сохраняется, даже если я решу записать все вложенные json в виде строк:

 {  "baz": 5 }  

и из другого приложения:

 {  "baz": "whatever" }  

Как правильно вести структурированное ведение журнала здесь? Я должен проверять и управлять типом каждого возможного параметра?

Комментарии:

1. Даже в моем собственном приложении трудно гарантировать, что параметр с определенным именем всегда будет иметь определенный тип.