我正在改变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对象。
任何朝着正确方向的指针将不胜感激。
答案 0 :(得分:1)
您可以格式化记录,并使用以下配置用所需的键将其包装
<filter gcp.logs>
@type record_transformer
enable_ruby true
renew_record true
<record>
message ${ {data: record } }
</record>
</filter>