Fluentd - добавляет новые атрибуты в данные JSON - PullRequest
0 голосов
/ 19 марта 2019

Используя Fluentd, я отправляю журналы в Splunk и ES в формате JSON, как указано ниже:

{
    "object1": {
            "obj1_key1": "value_xyz"
     }
     "object2": {
            "obj2_key1": "value_abc"
     }
}

Перед отправкой журналов на сервер я хочу добавить несколько полей в качестве метаданных в Object1 и Object2, например.

{
    "object1": {
            "obj1_key1": "value_xyz"
            "metadata": "constant_value"
     }
     "object2": {
            "obj2_key1": "value_abc"
            "metadata": "constant_value"
     }
}

Я знаю, что с помощью плагина fluentd "record_transformer" мы можем добавлять новые поля, но вопрос в том, как добавить поля внутри объектов или вложенных объектов?

1 Ответ

0 голосов
/ 25 марта 2019

Вы можете использовать встроенный фильтр record_transformer плагин, как указано ниже:

<source>
  @type dummy
  tag dummy
  dummy [
    {"message": "dummy", "json": {"log": "log"}}
  ]
</source>

<filter dummy>
  @type record_transformer
  enable_ruby true
  <record>
    json ${record["json"].merge({key: "key", value: "value"})}
  </record>
</filter>

<match dummy>
  @type stdout
</match>
...