流利的record_transformer-将$ [record]包装在其他json对象中

时间:2020-06-06 20:35:43

标签: fluentd

我正在改变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对象。

任何朝着正确方向的指针将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以格式化记录,并使用以下配置用所需的键将其包装

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