View a markdown version of this page

CloudWatch Logs Insights 語言查詢語法 - Amazon CloudWatch Logs

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

CloudWatch Logs Insights 語言查詢語法

本節提供有關 Logs Insights QL 的詳細資訊。查詢語法支援不同的函式和運算,包含但不限於一般函式、算術和比較運算,以及正規表達式。

重要

為了避免因執行大型查詢而產生過多費用,請記住下列最佳實務:

  • 為每個查詢僅選取必要的日誌群組。

  • 一律為您的查詢指定最窄的可能時間範圍。

  • 當您使用主控台執行查詢時,請先取消所有查詢,再關閉 CloudWatch Logs Insights 主控台頁面。否則,查詢會繼續執行,直到完成為止。

  • 當您將 CloudWatch Logs Insights 小工具新增至儀表板時,請確定儀表板不會以高頻率重新整理,因為每次重新整理都會啟動新的查詢。

若要建立包含多個命令的查詢,請使用直立線符號字元 (|) 分隔命令。

若要建立包含註解的查詢,請使用雜湊字元 (#) 作為註解的開頭。

注意

CloudWatch Logs Insights 會自動探索不同日誌類型的欄位,並產生以 @ 字元開頭的欄位。如需進一步了解這些自動產生的欄位,請參閱《Amazon CloudWatch 使用者指南》中的支援的日誌和探索的欄位

下表簡要描述每個命令。此資料表下面是每個命令的詳細說明,並附有範例。

注意

標準日誌類別中的日誌群組支援所有 Logs Insights QL 查詢命令。不常存取日誌類別中的日誌群組支援所有 Logs Insights QL 查詢命令diff,但 pattern、 和 除外unmask

addtotals

計算數值欄位的資料列總計和資料欄總計。

anomaly

使用機器學習識別日誌資料中的異常模式。

display

在查詢結果中顯示一個或多個特定欄位。

fields

在查詢結果中顯示特定欄位,並支援可用於修改欄位值和建立要在查詢中使用之新欄位的函數和操作。

filter

篩選查詢以僅傳回符合一個或多個條件的日誌事件。

filterIndex

強制查詢只嘗試掃描在欄位索引中提到的欄位上編製索引的日誌群組,並同時包含該欄位索引的值。這透過嘗試僅掃描這些日誌群組中包含此欄位索引查詢中指定值的日誌事件來減少掃描的磁碟區。

不常存取日誌類別中的日誌群組不支援此命令。

pattern

自動將您的日誌資料叢集化,以形成模式。模式是指日誌欄位之間反覆出現的共同文字結構。CloudWatch Logs Insights 可讓您分析日誌事件中找到的模式。如需詳細資訊,請參閱模式分析

diff

將請求時段中找到的日誌事件與先前相同長度時段的日誌事件進行比較,以便您可以尋找趨勢並了解特定日誌事件是否為新的。

parse

從日誌欄位擷取資料,建立一個您可在查詢中處理的擷取欄位。parse 支援使用萬用字元的 glob 模式和規則運算式。

sort

以遞增 (asc) 或遞減 (desc) 方式顯示傳回的日誌事件。

SOURCE

將 包含在查詢SOURCE中是一種有用的方法,可根據日誌群組名稱字首、帳戶識別符、日誌群組類別、資料來源或日誌群組標籤,指定要包含在查詢中的大量日誌群組。只有在您在 中 AWS CLI 或以程式設計方式建立查詢時,才支援此命令,而不是在 CloudWatch 主控台中。

stats

使用日誌欄位值計算彙總統計數字。

limit

指定您希望查詢傳回的日誌事件數目上限。使用 sort 可傳回「前 20 個」或「最近 20 個」結果。一旦找到足夠的結果,請使用 提早limit any停止掃描。

dedup

根據您指定之欄位中的特定值移除重複的結果。

unmask

顯示因為資料保護政策而遮罩某些內容的某個日誌事件的全部內容。如需有關日誌群組中資料保護的詳細資訊,請參閱 使用遮罩功能協助保護敏感日誌資料

unnest

扁平化做為輸入的清單,以針對清單中的每個元素產生具有單一記錄的多個記錄。

lookup

透過比對欄位值,使用查詢資料表中的資料來豐富日誌事件。使用查詢資料表將參考資料,例如使用者詳細資訊、應用程式名稱或產品資訊新增至查詢結果。

join

將來源日誌群組的日誌事件與另一個日誌群組的事件結合,或根據相符欄位查詢結果。使用聯結命令,使用相符的請求識別符或交易 IDs 等常見金鑰來關聯不同來源之間的相關日誌事件。

subqueries

子查詢是巢狀 Logs Insights 查詢,可做為另一個查詢的輸入。子查詢可用來衍生後續命令使用的中繼結果集。

autoregress

建立欄位值的延遲 (上一列) 複本。

logcompare

比較目前時段與移返持續時間的基準時段。

filldown

將最後一個非空值向前移動以填補間隙。

fillmissing

依 bin() 插入 stats 後空時間儲存貯體的資料列,選擇性地以常數填入欄位。

cidrlookup

透過比對 IP 欄位與查詢資料表中的 CIDR 範圍來豐富事件。

outlier

根據四分位數範圍 (IQR) 偵測統計極端值,並可以移除或轉換極端值資料列。

accum

計算數值欄位的執行中累積總和。

appendcols

透過位置資料列比對,將資料欄從子查詢附加到目前結果。

sessionize

依身分欄位和閒置差距將事件分組為工作階段。

countFrequent

傳回每個唯一欄位值組合的近似計數,依遞減順序排序。

where

做為filter命令的文法別名,並接受相同的語法。

其他操作和函數

CloudWatch Logs Insights 也支援許多比較、算術、日期時間、數值、字串、IP 地址以及一般函數和操作。

以下各節提供有關 CloudWatch Logs Insights 查詢命令的詳細資訊。