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>
我正在改变我使用 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>