OpenSearch PPL 語言 - Amazon CloudWatch Logs

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

OpenSearch PPL 語言

本節包含使用 查詢 CloudWatch 日誌的基本簡介 OpenSearch PPL。使用 PPL,您可以使用管道整合命令擷取、查詢和分析資料,讓您更輕鬆地了解和編寫複雜的查詢。其語法是以 Unix 管道為基礎,並啟用命令鏈結來轉換和處理資料。透過 PPL,您可以篩選和彙總資料,並使用一組豐富的數學、字串、日期、條件式和其他函數進行分析。

您只能將 OpenSearch PPL 用於標準日誌類別中的日誌群組查詢。

如需 CloudWatch 日誌中支援的所有 OpenSearch PPL查詢命令的相關資訊,以及語法和限制的詳細資訊,請參閱 OpenSearch 服務開發人員指南中的支援PPL命令

命令或函數 查詢範例 描述

fields

fields field1, field2

顯示一組需要投影的欄位。

where

where field1="success" | where field2 != "i-023fe0a90929d8822" | fields field3, field4, field5,field6 | head 1000

根據您指定的條件篩選資料。

統計資料

stats count(), count(field1), min(field1), max(field1), avg(field1) by field2 | head 1000

執行彙總和計算

parse

parse field1 ".*/(?<field2>[^/]+$)" | where field2 = "requestId" | fields field1, field2 | head 1000

從字串擷取規則表達式 (regex) 模式,並顯示擷取的模式。擷取的模式可以進一步用來建立新的欄位或篩選資料。

sort

stats count(), count(field1), min(field1) as field1Alias, max(`field1`), avg(`field1`) by field2 | sort -field1Alias | head 1000

依欄位名稱排序顯示的結果。使用 sort - FieldName 以遞減順序排序。

評估

eval field2 = field1 * 2 | fields field1, field2 | head 20

修改或處理欄位的值,並將其存放在不同的欄位中。這有助於數學修改資料欄、將字串函數套用至資料欄,或將日期函數套用至資料欄。

重新命名

rename field2 as field1 | fields field1;

重新命名搜尋結果中的一或多個欄位。

head

fields `@message` | head 20

將顯示的查詢結果限制為前 N 列。

top

top 2 field1 by field2

尋找欄位最常見的值。

dedup

dedup field1 | fields field1, field2, field3

根據您指定的欄位移除重複的項目。

很少見

rare field1 by field2

尋找欄位清單中所有欄位頻率最低的值。

趨勢線

trendline sma(2, field1) as field1Alias

計算欄位的移動平均值。

eventStats

eventstats sum(field1) by field2

使用計算的摘要統計資料來豐富您的事件資料。它會分析事件中的指定欄位、運算各種統計指標,然後將這些結果附加到每個原始事件做為新的欄位。

欄位摘要

where field1 != 200 | fieldsummary includefields= field1 nulls=true

計算每個欄位的基本統計資料 (計數、相異計數、最小值、最大值、平均值、標準差和平均值)。

grok

grok email '.+@%{HOSTNAME:host}' | fields email, host

使用grok 模式剖析文字欄位,並將結果附加至搜尋結果。

字串函數

eval field1Len = LENGTH(field1) | fields field1Len

中的內建函數PPL,可以操作和轉換PPL查詢中的字串和文字資料。例如,轉換案例、合併字串、擷取部分和清理文字。

數學函數

eval field2 = ACOS(field1) | fields field1

用於在PPL查詢中執行數學計算和轉換的內建函數。例如,abs (絕對值)、圓 (圓數)、sqrt (平方根)、pow (功率計算) 和 ceil (四捨五入至最接近的整數)。

日期函數

eval newDate = ADDDATE(DATE('2020-08-26'), 1) | fields newDate

用於處理和轉換PPL查詢中日期和時間戳記資料的內建函數。例如,date_add、date_format、datediff 和 current_date。

條件函數

eval field2 = isnull(field1) | fields field2, field1, field3

檢查特定欄位條件並依條件評估表達式的內建函數。例如,如果 field1 為 null,則傳回 field2。

數學函數

eval field2 = ACOS(field1) | fields field1

用於在PPL查詢中執行數學計算和轉換的內建函數。例如,abs (絕對值)、圓 (圓數)、sqrt (平方根)、pow (功率計算) 和 ceil (四捨五入至最接近的整數)。

CryptoGraphic 函數

eval crypto = MD5(field)| head 1000

計算指定欄位的雜湊