OpenSearch Piped Processing Language (PPL) - Amazon CloudWatch Logs

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

OpenSearch Piped Processing Language (PPL)

このセクションでは、OpenSearch PPL を使用して CloudWatch Logs をクエリするための基本的な概要を示します。PPL を使用すると、パイプ集計コマンドを使用してデータを取得、クエリ、分析できるため、複雑なクエリの理解と作成が容易になります。その構文は Unix パイプに基づいており、データを変換および処理するためのコマンドの連鎖を可能にします。PPL を使用すると、データをフィルタリングして集計し、豊富な数学、文字列、日付、条件付き、その他の関数のセットを分析に使用できます。

OpenSearch PPL は、標準ログクラスのロググループのクエリにのみ使用できます。

注記

CloudWatch Logs でサポートされているすべての OpenSearch PPL クエリコマンドと構文と制限の詳細については、OpenSearch Service デベロッパーガイドの「サポートされている PPL コマンド」を参照してください。

使用できる他のクエリ言語については、CloudWatch Logs Insights」、OpenSearch Service SQL」、およびCloudWatchMetrics Insights」を参照してください。

コマンドまたは関数 クエリの例 説明

fields

fields field1, field2

射影が必要な一連のフィールドを表示します。

結合

LEFT JOIN left=l, right=r on l.id = r.id `join_right_lg` | fields l.field_1, r.field_2

2 つのデータセットを結合します。

この場合、次のようになります。

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

指定した条件に基づいてデータをフィルタリングします。

stats

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

rename field2 as field1 | fields field1;

検索結果の 1 つ以上のフィールドの名前を変更します。

head

fields `@message` | head 20

表示されるクエリ結果を最初の N 行に制限します。

top

top 2 field1 by field2

フィールドの最も頻繁な値を検索します。

重複排除

dedup field1 | fields field1, field2, field3

指定したフィールドに基づいて重複するエントリを削除します。

まれ

rare field1 by field2

フィールドリスト内のすべてのフィールドの最も頻度の低い値を検索します。

subquery

where field_1 IN [ search source= `subquery_lg` | fields field_2 ] | fields id, field_1

PPL ステートメント内で複雑なネストされたクエリを実行します。

トレンドライン

trendline sma(2, field1) as field1Alias

フィールドの移動平均を計算します。

eventStats

eventstats sum(field1) by field2

計算されたサマリー統計を使用してイベントデータを強化します。イベント内の指定されたフィールドを分析し、さまざまな統計測定値を計算し、これらの結果を各元のイベントに新しいフィールドとして追加します。

拡張

eval tags_array_string = json_extract(`@message`, '$.tags')| eval tags_array = json_array(json_extract(tags_string, '$[0]'), json_extract(tags_string, '$[1]'))| expand tags_array as color_tags

複数の値を含むフィールドを別々の行に分割し、指定されたフィールドの値ごとに新しい行を作成します。

fillnull

fields `@timestamp`, error_code, status_code | fillnull using status_code = "UNKNOWN", error_code = "UNKNOWN"

null フィールドに指定した値を入力します。1 つ以上のフィールドで使用できます。

flatten

eval metadata_struct = json_object('size', json_extract(metadata_string, '$.size'), 'color', json_extract(metadata_string, '$.color')) | flatten metadata_struct as (meta_size, meta_color)

フィールドをフラット化します。フィールドは、 struct<?,?>または のタイプである必要がありますarray<struct<?,?>>

cidrmatch

where cidrmatch(ip, '2003:db8::/32') | fields ip

指定された IP アドレスが指定された CIDR 範囲内にあるかどうかを確認します。

フィールド概要

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

各フィールドの基本統計 (カウント、個別カウント、最小、最大、平均、stddev、平均) を計算します。

Grok

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

grok パターンでテキストフィールドを解析し、検索結果に結果を追加します。

文字列関数

eval field1Len = LENGTH(field1) | fields field1Len

PPL クエリ内の文字列およびテキストデータを操作および変換できる PPL の組み込み関数。たとえば、大文字と小文字の変換、文字列の組み合わせ、パーツの抽出、テキストのクリーニングなどです。

日付/時刻関数

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

PPL クエリで日付とタイムスタンプデータを処理および変換するための組み込み関数。例えば、date_add、date_format、 datediff、date-sub、timestampadd、timestampdiff、current_timezone、utc_timestamp、current_date などです。

条件関数

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

特定のフィールド条件をチェックし、式を条件付きで評価する組み込み関数。たとえば、field1 が null の場合、field2 を返します。

数学関数

eval field2 = ACOS(field1) | fields field1

PPL クエリで数学的計算と変換を実行するための組み込み関数。例えば、abs (絶対値)、round (四捨五入数値)、sqrt (平方根)、pow (電力計算)、ceil (最も近い整数に切り上げ) などです。

CryptoGraphic 関数

eval crypto = MD5(field)| head 1000

指定されたフィールドのハッシュを計算するには

JSON 関数

eval valid_json = json('[1,2,3,{"f1":1,"f2":[5,6]},4]') | fields valid_json

配列、抽出、検証を含む JSON を処理するための組み込み関数。たとえば、json_object、json_array、to_json_string、json_array_length、json_extract、json_keys、json_valid などです。