使用 CloudWatch Insight Logs 解析 JSON
Parsing JSON with CloudWatch Insight Logs
我在解析我的 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):
我能够使用此正则表达式代码找到获取摄取 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, @message, @logStream, level
| sort @logStream, @timestamp asc
如何才能显示每条传入消息的摄取 ID?谢谢大家
我能够解决在列中显示摄取 ID 的问题。我希望这将帮助遇到此问题的任何人能够从您的消息中获取信息:
filter level = "error"
| filter strcontains(@logStream, 'ingest-')
| parse message /ingestId=(?<ingestId>[-\w]+)/
| display ingestId
| fields @timestamp, message, level, @logStream
| sort @logStream, @timestamp asc
我在解析我的 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): 我能够使用此正则表达式代码找到获取摄取 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, @message, @logStream, level
| sort @logStream, @timestamp asc
如何才能显示每条传入消息的摄取 ID?谢谢大家
我能够解决在列中显示摄取 ID 的问题。我希望这将帮助遇到此问题的任何人能够从您的消息中获取信息:
filter level = "error"
| filter strcontains(@logStream, 'ingest-')
| parse message /ingestId=(?<ingestId>[-\w]+)/
| display ingestId
| fields @timestamp, message, level, @logStream
| sort @logStream, @timestamp asc