【发布时间】:2019-09-26 16:29:39
【问题描述】:
我有如下日志:
{
"log": {
"header": {
"key": "value",
"nested": "{\"key1\":\"value\",\"key2\":\"value\"}",
"dateTime": "2019-05-08T20:58:06+00:00"
},
"body": {
"path": "/request/path/",
"method": "POST",
"ua": "curl/7.54.0",
"resp": 200
}
}
}
我正在尝试使用 fluentd 聚合日志,并且我希望整个记录都是 JSON。具体问题是“$.log.header.nested”字段,它是一个 JSON 字符串。如何解析并用其内容替换该字符串?
为了清楚起见,我希望 fluentd 输出的日志如下所示:
{
"log": {
"header": {
"key": "value",
"nested": {
"key1": "value",
"key2": "value"
},
"dateTime": "2019-05-08T20:58:06+00:00"
},
"body": {
"path": "/request/path/",
"method": "POST",
"ua": "curl/7.54.0",
"resp": 200
}
}
}
我找到了一种将嵌套字段解析为 JSON 的方法,但存储到解析它的同一个键并不清楚。 hash_value_field 似乎不支持存储到嵌套键。有没有其他方法可以做到这一点?
【问题讨论】:
-
要保留原来的key和value吗?
-
我想把这个值解析成一个合适的对象/哈希值,然后用解析后的值替换原来的值。