簡體   English   中英

如何在 CloudWatch Insights 查詢中獲取額外的上下文行?

[英]How to get additional lines of context in a CloudWatch Insights query?

我通常運行一個查詢

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

如果我願意,可以選擇獲取更多上下文行。

您實際上也可以查詢@logStream ,它在結果中將是指向匹配的相應日志流中確切位置的鏈接:

fields @timestamp, @message, @logStream
| filter @message like /ERROR/
| sort @timestamp desc
| limit 20

這將為您提供一個類似於此屏幕截圖中最右側的列:

在此處輸入圖片說明

單擊右側的鏈接將帶您到並突出顯示匹配的日志行。 我喜歡在新選項卡中打開它並查看突出顯示的行以了解上下文。

希望有幫助!

我發現最有用的解決方案是執行查詢並搜索錯誤並從“requestId”字段中獲取請求 ID,然后打開第二個瀏覽器選項卡。 在第二個選項卡中對該請求 ID 執行搜索。

例子:

fields @timestamp, @message
| filter @requestId like /fcd09029-0e22-4f57-826e-a64ccb385330/ 
| sort @timestamp asc
| limit 500

通過上述查詢,您可以按照發生錯誤的請求的正確順序獲取所有日志消息。 這是一個使用 lambda 開箱即用的示例。 但是,如果您以不同的方式將日志推送到 CloudWatch 並且沒有 requestId,我建議為每個請求創建一個 requestId 或另一個對您的用例更有用的標識符,並將其與您的日志事件一起推送。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM