使用 fluentd 删除嵌套键

Aka*_*wal 3 fluentd

我有一个包含 json 记录的文件,并且想在将它们发送到 fluentd 输出之前从 json 记录中删除一些键。我可以使用“record_transformer Filter Plugin”来删除键,但它只从 json 中删除顶级键。如何使用嵌套键。

样本输入:

{
    "key1": 1,
    "key2": 2,
    "key3": {
        "nested_key1": 1,
        "nested_key2": 1,
        "nested_key3": 1,
        "nested_key4": {
            "double_nested_key1": 1,
            "double_nested_key2": 2
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

输出样本:

{
    "key1": 1,
    "key2": 2,
    "key3": {
        "nested_key1": 1,
        "nested_key2": 1,
        "nested_key4": {
            "double_nested_key2": 2
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

etl*_*lsh 5

1.1版开始,就有了一种删除嵌套的新语法:

remove_keys $.jsonPayload.msg

这将删除 record[jsonPayload][msg]


小智 5

https://docs.fluentd.org/v1.0/articles/api-plugin-helper-record_accessor#syntax

<filter fluentd-log.**>
  @type record_transformer
  remove_keys a, $.b.c, $.b.c.d
</filter>
Run Code Online (Sandbox Code Playgroud)