fluentd динамически удалять ключи

Мне нужно удалить ключи из сообщений json, довольно просто с помощью record_transformer и keep_keys или remove_keys. Но ключи, которые я хочу удалить, являются значениями из определенного ключа (например, фильтр)

введите как:

{"message":"hello world!", "key1":"test1", "key2"="test2", "key3"="test3", "**filter**"="message,key3"}

хочу превратиться в:

{"message":"hello world!", "key3"="test3"}

Я хочу, чтобы параметр keep_keys был динамическим для каждого сообщения. Как этого можно добиться? только с конфигурацией или с модификацией плагина?

Какие-либо предложения ?


person jcde    schedule 04.07.2020    source источник


Ответы (1)


Вы можете попробовать использовать логику на основе ruby ​​с полем записи для удаления, как показано ниже.

Пример 1: https://github.com/repeatedly/fluent-plugin-record-modifier/issues/15

Пример реализации ruby:

<filter kubernetes.**>
   @type record_transformer
   enable_ruby
   <record>
      log ${record["message"] or record["log"]}
   </record>
   remove_keys message
</filter>
person Anurag Jain    schedule 08.08.2020