elasticsearch - 如何使用 fluent-bit 解析/过滤嵌套的 json 属性?
问题描述
在一些流利的解析器和过滤器之后,我得到了以下 json:
{
"date":1628534756.632903,
"text":"2021-08-09 18:45:56.632 | INFO | asgi:main:30 - {'version': '1', 'deploymentid': '73d37bf2-2af9-4f78-b7d5-92ccc0a41652', 'time': '2021-08-09T18:45:59.510822907Z'}\n",
"record":{
"elapsed":{
"repr":"3 days, 0:53:36.716614",
"seconds":262416.716614
},
"exception":null,
"extra":{
},
"file":{
"name":"asgi.py",
"path":"/app/asgi.py"
},
"function":"main",
"level":{
"icon":"ℹ️",
"name":"INFO",
"no":20
},
"line":30,
"message":"{'version': '1', 'deploymentid': '73d37bf2-2af9-4f78-b7d5-92ccc0a41652', 'time': '2021-08-09T18:45:59.510822907Z'}",
"module":"asgi",
"name":"asgi",
"process":{
"id":15,
"name":"MainProcess"
},
"thread":{
"id":140294663935808,
"name":"MainThread"
},
"time":{
"repr":"2021-08-09 18:45:56.632046+00:00",
"timestamp":1628534756.632046
}
}
}
我想应用另一组解析器和/或过滤器以得到以下 json:
{
"date":1628534756.632903,
"message":"{'version': '1', 'deploymentid': '73d37bf2-2af9-4f78-b7d5-92ccc0a41652', 'time': '2021-08-09T18:45:59.510822907Z'}"
}
我的意思是,提升message
一个级别并删除所有其他键,除了date
.
我尝试使用一些过滤器grep
,nest/lift
但没有成功。
怎么可能做到?
解决方案
推荐阅读
- javascript - 如何处理“未捕获(承诺)DOMException:play() 失败,因为用户没有先与文档交互。”?
- android - 在 ImageView 中居中图像的问题
- python - 如何在pygame中创建再次播放按钮
- java - 如何在 PDFBox 中使用不同的字体编写多个字符串
- r - 如何在 R 中绘制回归线分析
- laravel - 尝试将 TLD 从 .test 更改为 .dev 后如何恢复 Laravel Valet?
- sql-server - SQL Server Graph:如何识别子图?
- python - 将 Python 与 Google People API otherContacts.copyOtherContactToMyContactsGroup 方法一起使用
- arrays - 仅当在 if 语句颤动中返回多个时才限制为 1
- javascript - @typescript-eslint/no-unused-vars 类型声明中的误报