【发布时间】:2022-01-20 13:33:45
【问题描述】:
**@message
{ "level": "INFO", "message": "User 2c5e2225-0037-4a0f-b87a-405d8b4f8fe8 has successfully downloaded the file IT_1994_December_ConditionSets_CardioSets,release 1994_December and file type .xlsx" }**
我想从上面的日志中提取用户的值:2c5e2225-0037-4a0f-b87a-405d8b4f8fe8,文件名:IT_1994_December_ConditionSets_CardioSets,文件类型:.xlsx。
这里的复杂性是消息字段没有 key: value 格式数据,而是有纯文本。
有人可以帮助我形成查询以从消息中提取数据并在 cloudwatch 搜索结果中显示为别名。
我创建了正则表达式来提取这些值并在线测试。正则表达式:
To extract User : /(?<=User\s).*(?=\shas)/
To extract filename : /(?<=file\s).+(?=,)/
To extract file type : /(?<=type\s).+(?=")/
我创建了下面的查询来解析和返回数据:
fields user, fileName, fileType
| filter @message like /downloaded/
| parse @message /(?<user>^(?<=User\s).*(?=\shas))/
| parse @message /(?<fileName>^(?<=file\s).+(?=,))/
| parse @message /(?<fileType>^(?<=type\s).+(?="))/
它没有按预期返回结果。如果需要任何改进,任何人都可以查看此查询吗??
感谢您对此的任何帮助。
【问题讨论】:
-
你能澄清一下你想要的预期结果是什么吗?
-
嗨@Omar,我已经更新了所有附加细节的帖子。请您仔细阅读并提供您的意见。
标签: amazon-web-services aws-lambda amazon-cloudwatch aws-cloudwatch-log-insights