我正在改变我消费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>