fluentd record_transformer - 在额外的 json 对象中包装 $[record]

fluentd record_transformer - wrapping $[record] in additional json objects

我正在改变我使用 GCP 日志的方式,从接收 PubSub 订阅直接推送到我的日志分析工具到使用 Fluentd 提取 PubSub 订阅,然后将日志推送到日志分析工具。问题是现在我没有在日志数据周围获得一些额外的 json 包装器对象,我需要将它们放回去,否则更改将破坏我们所有的仪表板和计划的搜索。

我正在尝试使用 record_transformer 添加包装器对象,但不清楚如何执行此操作。

收到这样的消息:

{"foo": "bar"}

我需要它像这样出来:

{
  "message": {
     "data": {
        "foo": "bar"
      }
   }
}

(我不需要格式化,只是为了这里的可读性。)

我试过这个:

<filter gcp.logs>
  @type record_transformer
  <record>
    message data $[record]
  </record>
</filter>

但这并没有实现我希望的 json 对象的嵌套。

任何正确方向的指示都将不胜感激。

您可以使用以下配置格式化记录并用所需的密钥包装它

<filter gcp.logs>
  @type record_transformer
  enable_ruby true
  renew_record true
  <record>
    message ${ {data: record } }
  </record>
</filter>