篩選條件 - Amazon CloudWatch 日誌

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

篩選條件

使用 filter 來取得與一個或多個條件相符的日誌事件。

範例:使用一個條件篩選日誌事件

程式碼片段會顯示一個查詢範例,其會傳回 range 的值大於 3000 的所有日誌事件。該查詢將結果限制為 20 筆日誌事件,並按照 @timestamp 依遞減順序對日誌事件進行排序。

fields @timestamp, @message | filter (range>3000) | sort @timestamp desc | limit 20

範例:使用多個條件篩選日誌事件

您可以使用關鍵字 andor 以結合多個條件。

程式碼片段會顯示一個查詢範例,其會傳回 range 的值大於 3000accountId 的值等於 123456789012 的日誌事件。該查詢將結果限制為 20 筆日誌事件,並按照 @timestamp 依遞減順序對日誌事件進行排序。

fields @timestamp, @message | filter (range>3000 and accountId=123456789012) | sort @timestamp desc | limit 20

filter 命令中的比對和規則表達式

篩選命令支援使用規則表達式。您可以使用下列比較運算子 (=!=<<=>>=) 和布林值運算子 (andor 以及 not)。

您可以使用關鍵字 in 來測試設定的成員資格並檢查陣列中的元素。若要檢查陣列中的元素,將陣列放在 in 之後。您可以搭配 in 使用布林運算子 not。您可以建立查詢来使用 in 傳回欄位為字串相符的日誌事件。欄位必須是完整的字串。例如,下列程式碼片段會顯示查詢使用 in 来傳回欄位 logGroup 是完整的字串 example_group 的日誌事件。

fields @timestamp, @message | filter logGroup in ["example_group"]

您可以使用關鍵字詞 likenot like 來比對子字串。您可以使用規則表達式運算子 =~ 來比對子字串。若要比對帶有 likenot like 的子字串,請將要比對的子字串放在單引號或雙引號中。您可以搭配 likenot like 使用規則表達式模式。若要使用規則表達式運算子來比對子字串,請以斜線括住想要比對的子字串。下列範例包含程式碼片段,示範如何使用 filter 命令來比對子字串。

範例:比對子字串

以下範例會傳回 f1 含有單字 Exception 的日誌事件。所有三個範例都會區分大小寫。

第一個範例比對帶有 like 的子字符。

fields f1, f2, f3 | filter f1 like "Exception"

第二個範例比對帶有 like 和規則表達式模式的子字串。

fields f1, f2, f3 | filter f1 like /Exception/

第三個範例會比對子字串與規則表達式。

fields f1, f2, f3 | filter f1 =~ /Exception/

範例:比對子字串與萬用字元

您可以使用句點符號 (.) 作為規則表達式中的萬用字元來比對子字串。在下列範例中,查詢會傳回與以字串 ServiceLog 開始的 f1 的值相符項目。

fields f1, f2, f3 | filter f1 like /ServiceLog./

您可以在句點符號 (.*) 後面放置一個星號符號,來建立窮盡數量詞,窮盡數量詞會傳回儘可能多的相符項目。例如,以下查詢會傳回與以字串 ServiceLog 開始而且還包含字串 ServiceLogf1 的值相符項目。

fields f1, f2, f3 | filter f1 like /ServiceLog.*/

可能的相符項目格式如下所示:

  • ServiceLogSampleApiLogGroup

  • SampleApiLogGroupServiceLog

範例:從相符項目中排除子字串

以下範例會顯示會傳回日誌事件的查詢,傳回的日誌事件中 f1 不會含有單字 Exception。這個範例區分大小寫。

fields f1, f2, f3 | filter f1 not like "Exception"

範例:比對區分大小寫的子字串

您可以比對帶有 like 和規則表達式且區分大小寫的子字串。請將下列參數 (?i) 放置在想要比對的子字串之前。下列範例會顯示會傳回日誌事件的查詢,傳回的日誌事件中 f1 會含有單字 Exceptionexception

fields f1, f2, f3 | filter f1 like /(?i)Exception/