pattern - Amazon CloudWatch Logs

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

pattern

使用 pattern 自動將您的日誌資料叢集化,以形成模式。

模式是指日誌欄位之間反覆出現的共同文字結構。您可以使用 pattern 來顯示新興趨勢、監控已知錯誤,以及識別經常發生或高成本的日誌行。CloudWatch Logs Insights 也提供主控台體驗,您可以用來尋找並進一步分析日誌事件中的模式。如需詳細資訊,請參閱模式分析

由於 pattern命令會自動識別常見模式,因此您可以使用它做為搜尋和分析日誌的起點。您也可以將 pattern filter parse sort 命令搭配使用,在更多經過微調的查詢中識別模式。

模式命令輸入

pattern 命令需有以下任何一項輸入:@message 欄位、以 parse 命令建立的擷取欄位,或使用一或多個字串函數操控的字串。

如果 CloudWatch Logs 無法推斷動態字符代表的資料類型,則 會顯示為 <Token-number>,而數字指出此字符在模式中與其他動態字符相比的位置。

動態字符的常見範例包括錯誤代碼、IP 地址、時間戳記和請求 IDs。

模式命令輸出

pattern 命令會產生以下輸出:

  • @pattern:日誌事件欄位之間反覆出現的共同文字結構。模式內不同的欄位,例如請求 ID 或時間戳記,會以字符表示。如果 CloudWatch Logs 可以判斷動態字符代表的資料類型,則會將字符顯示為 <string-number>字串是字符所代表資料類型的描述。此數字顯示與其他動態字符相比,此字符在模式中的顯示位置。

    CloudWatch Logs 會根據分析包含該名稱的日誌事件內容來指派名稱的字串部分。

    如果 CloudWatch Logs 無法推斷動態字符所代表的資料類型, 會顯示為 <Token-number>,而數字指出此字符相較於其他動態字符,在模式中出現的位置。

    例如,[INFO] Request time: <Time-1> ms 是日誌訊息 [INFO] Request time: 327 ms 可能的輸出。

  • @ratio:所選期間和指定日誌群組中,符合已識別模式的日誌事件比例。例如,如果選取的日誌群組和期間中有一半的日誌事件符合模式,@ratio 就會傳回 0.50

  • @sampleCount:所選期間和指定日誌群組中,符合已識別模式的日誌事件數量。

  • @severityLabel:日誌嚴重性或層級,指明日誌中的資訊類型,例如 ErrorWarningInfoDebug

範例

以下命令會識別所選時間範圍內指定日誌群組中具有類似結構的日誌,並依模式和數量將其分組

pattern @message

pattern 命令可以與 filter 命令搭配使用

filter @message like /ERROR/ | pattern @message

pattern 命令可與 parse sort 命令搭配使用

filter @message like /ERROR/ | parse @message 'Failed to do: *' as cause | pattern cause | sort @sampleCount asc