问题描述
我在将JSON解析为仅时遇到困难,无法显示消息的ingestId。我上传到CloudWatch的JSON文件如下:
{
"message": "changeStatus ingestId=2343d8sf-etc,status=UPLOADING","level": "info"
}
我的CloudWatch Log Insight代码如下:
filter level = "error"
| filter @message like /([-\w]{25,})/
| filter strcontains(@logStream,'ingest-')
| fields @timestamp,@message,@logStream,level
| sort @logStream,@timestamp asc
Insight会产生一个新列,其中没有我想要的ID信息。我在做错什么,所以我至少可以知道摄取的ID?
非常感谢您的帮助。
编辑(v2): 我可以使用以下正则表达式代码找到获取Ingest ID所需的正则表达式:
/([-\w]{25,})/
这是代码。它使用新的ingestId列成功运行,但仍然没有我正在寻找的摄取ID:
filter level = "error"
| filter strcontains(@logStream,'ingest-')
| filter @message like /(ingestId)/
| parse @message "\"ingestId\": \"/([-\w]{25,})/\"" as ingestId
| fields @timestamp,@timestamp asc
该怎么办,以便我可以显示收到的每条消息的提取ID?谢谢大家。
解决方法
我能够解决此问题,以在该列中显示提取ID。我希望这将帮助遇到此问题的任何人都能从您的消息中获取信息:
obj