我通常会运行类似的查询
fields @timestamp, @message
| filter @message like /ERROR/
| sort @timestamp desc
| limit 20
有没有办法在包含“ ERROR”的消息周围获取更多上下文行?类似于带有grep的A,B和C标志?
例如,如果我有一个包含以下几行的日志
DEBUG Line 1
DEBUG Line 2
ERROR message
DEBUG Line 3
DEBUG Line 4
目前我得到以下结果
ERROR message
但是我想获得更多类似的上下文行
DEBUG Line 2
ERROR message
DEBUG Line 3
如果需要,可以选择获得更多的上下文行。
答案 0 :(得分:9)
我发现最有用的解决方案是进行查询和搜索错误,并从“ requestId”字段中获取请求ID,并打开第二个浏览器选项卡。在第二个标签中,对该请求ID进行搜索。
示例:
fields @timestamp, @message
| filter @requestId like /fcd09029-0e22-4f57-826e-a64ccb385330/
| sort @timestamp asc
| limit 500
通过上述查询,您可以按照发生错误的请求的正确顺序获取所有日志消息。这是一个带有lambda的开箱即用的示例。但是,如果您以不同的方式将日志推送到CloudWatch,并且没有requestId,我建议您为每个请求创建一个requestId或另一个对您的用例更有用的标识符,并将其随日志事件一起推送。
答案 1 :(得分:7)